我对Verilog有一个不可避免的Quartus语法错误

时间:2016-05-24 00:04:34

标签: verilog

这是我写的代码:

5.*.*

我在每行说

时都会收到一个错误
  

"错误(10170):在文本" h";附近的test.v(181)处的Verilog HDL语法错误;   期待";""

我是Verilog的新手,所以我想问一下我是否有任何明显的错误以及我如何解决这个错误,谢谢!

2 个答案:

答案 0 :(得分:1)

您需要为number指定位宽;它目前是1位宽,你可能想要32位。您需要为每个案例项添加大小和基数(3'b):

reg [31:0] number;
always @(posedge clk)
begin
case(SW[3:1])
        3'b000: number <= 32'hA65D;
        3'b001: number <= 32'hBAB9;
        3'b010: number <= 32'h9430;
        3'b011: number <= 32'h8BEB;
        3'b100: number <= 32'h7CB8;
        3'b101: number <= 32'h62F1;
        3'b110: number <= 32'h6EF9;
        3'b111: number <= 32'h5D5C;
        default: number <= 32'h0000;
endcase
end

您应该对顺序逻辑使用非阻塞分配(<=)。

更新:...当然在看到Eugenio Lyatte的答案后,也修复了'h语法错误。

答案 1 :(得分:1)

您需要32'hA65D更改reg [31:0]number always @(posedge clk) begin case(SW[3:1]) 3'b000: number <= 32'hA65D; 3'b001: number <= 32'hBAB9; 3'b010: number <= 32'h9430; 3'b011: number <= 32'h8BEB; 3'b100: number <= 32'h7CB8; 3'b101: number <= 32'h62F1; 3'b110: number <= 32'h6EF9; 3'b111: number <= 32'h5D5C; endcase enter code here 。这将解决您的错误。

else if