2017-05-05 24 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つのエラー取得しています:スコープで見て 2.(VLOG-13205)構文エラーの後に2行目に 1(VLOG-13069)構文エラー、予期しない '< ='あなたには「::」がありません::

答えて

1

あなたは余分な「終わり」があります。

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

また、 'always @ *' – Greg

関連する問題