quartus for verilog 语言编译错误

问题描述 投票:0回答:1

我是 Verilog 及其工具的新手,我正在 Quartus prime 中进行模拟/编译。在这个特定的代码中,它显示了一个错误,该错误应该是该语言的语法。

Error Message Screenshot

代码:

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

我尝试重新定位括号中模块名称旁边的所有输入和输出,但它不起作用。

verilog quartus
1个回答
0
投票

您必须使用

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
© www.soinside.com 2019 - 2024. All rights reserved.