为什么iverilog会为always\u ff生成语法错误?

为什么iverilog会为always\u ff生成语法错误?,verilog,system-verilog,iverilog,Verilog,System Verilog,Iverilog,我最近启动了System Verilog,一个语法错误让我有点目瞪口呆。鉴于以下模块: test.sv: module test( input logic clk, output logic out ); always_ff @(posedge clk) begin out = 1'b1; end endmodule 当使用iverilog-g2012 test.sv进行编译时,会生成第5行(始终\u ff)的简单语法错误。我不知道为什么会发生这种情况,因为我的语

我最近启动了System Verilog,一个语法错误让我有点目瞪口呆。鉴于以下模块:

test.sv:

module test(
  input logic clk,  
  output logic out );

  always_ff @(posedge clk) begin
    out = 1'b1;
  end
endmodule

当使用
iverilog-g2012 test.sv进行编译时,会生成第5行(始终\u ff)的简单
语法错误。我不知道为什么会发生这种情况,因为我的语法似乎是正确的。

SystemVerilog的语法是正确的,但并非所有的
iverilog版本都支持这种语法。从

现在支持以下SystemVerilog语言功能:

总是梳、总是ff和总是闩锁构造

如果未使用此版本,则应升级

您的代码在上的其他模拟器上编译

或者,您不需要总是使用
\u ff
。您仍然可以始终使用

  always @(posedge clk) begin
    out <= 1'b1;
  end
始终@(posedge clk)开始
出来