这是我写的代码:
5.*.*
我在每行说
时都会收到一个错误"错误(10170):在文本" h";附近的test.v(181)处的Verilog HDL语法错误; 期待";""
我是Verilog的新手,所以我想问一下我是否有任何明显的错误以及我如何解决这个错误,谢谢!
答案 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