2017-05-05 7 views
-1

여러 다른 선택 모듈에 대해 Verilog에서 제로 확인 모듈을 만들려고합니다.제어문 뒤에 Verilog 구문 오류가 발생했습니다.

module check_zero (input [63:0] a, b, [1:0] select, output reg [63:0] out); 

if ((a[51:0] == 0) && (b[51:0] == 0)) begin 
      out <= 0; 
      state <= done; 

end else if (a[51:0]==0 && select==0) begin 
     out <= b; 
      state <= done; 
end else if (b[51:0]==0 && select==0) begin 
     out <= a; 
      state <= done; 

end else if (a[51:0]==0 && select==1) begin 
     out[63] <= ~b[63]; 
     out[62:0] <= ~b[62:0]; 
      state <= done; 
end else if (b[51:0]==0 && select==1) begin 
     out <= a; 
      state <= done; 

end else if (a[51:0]==0 && select==2) begin 
     out <= 0; 
      state <= done; 
end else if (b[51:0]==0 && select==2) begin 
     out <= 0; 
      state <= done; 
end 

end else if (a[51:0]==0 && select==3) begin 
     out <= 0; 
      state <= done; 
end else if (b[51:0]==0 && select==3) begin 
     out[63] <= 1; 
      out[62:52] <= 2047; 
      out[51] <= 1; 
      out[50:0] <= 0; 
      state <= done; 
end 
endmodule 

내가 ModelSim을 2 오류가 점점 오전 : 범위에서 발견 1 (동영상 블로그 13069) 구문 오류, 예기치 않은 '< ='라인 2 아웃 후 2 (동영상 블로그 13205) 구문 오류 다음은 누락 된 '::'입니다.

답변

1

"끝"이 있습니다.

end else if (b[51:0]==0 && select==2) begin 
out <= 0; 
state <= done; 
end // this is extra, delete it 
+0

'always @ *' – Greg