2017-05-05 48 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 

我正在2級中的錯誤的ModelSim: 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