我正在用 SystemVerilog 编写代码,并尝试使用三元运算符在两个函数调用之间做出选择。这是我的代码:
module tb;
int a = 1, b = 4;
initial begin
b > a ? $display("%0d", b) : $display("Value: %0d", a); // Syntax error
$display("%0d", b > a ? b : a); // This works correctly
end
endmodule
在行中b > a ? print(b) : print(a);
,我收到语法错误,但该行print(b > a ? b : a);
运行正常。我不明白为什么在函数调用中直接使用三元运算符会导致语法错误。
有人能解释为什么会发生这种情况以及如何解决它吗?