我是 Verilog 及其工具的新手,我正在 Quartus prime 中进行模拟/编译。在这个特定的代码中,它显示了一个错误,该错误应该是该语言的语法。
代码:
module conditional_op();
int result;
int a = 9;
int b = 31;
reg c = 0;
initial begin
#1; result = (a == 9) ? 1:0;
$display("result=%0d",result);
#1; result = ((a+b) == 40) ? 1:0;
$display("result=%0d",result);
#1; result = (b == 30) ? 678 : -99;
$display("result=%0d",result);
#1; c = (b ==31)? 1'bz : 1'b0;
$display("c=%b",c);
end
endmodule
我尝试重新定位括号中模块名称旁边的所有输入和输出,但它不起作用。
您必须使用
integer
,而不是int
。将 int 替换为 integer
。
module conditional_op();
integer result;
integer a = 9;
integer b = 31;
reg c = 0;
initial begin
#1; result = (a == 9) ? 1:0;
$display("result=%0d",result);
#1; result = ((a+b) == 40) ? 1:0;
$display("result=%0d",result);
#1; result = (b == 30) ? 678 : -99;
$display("result=%0d",result);
#1; c = (b ==31)? 1'bz : 1'b0;
$display("c=%b",c);
end
endmodule