无法理解System Verilog中的错误

seg*_*ult 1 verilog system-verilog

我试着编译代码

module counter(
    input clk,
    input upSignal,
    input downSignal,
    output [7:0] count
   );
        always_ff @(posedge clk) begin
          if (upSignal)
              count <= count + 1;
          else if (downSignal)
              count <= count - 1;
        end
    endmodule
Run Code Online (Sandbox Code Playgroud)

但我得到了错误

Error (10170): Verilog HDL syntax error at counter.v(7) near text "@"; expecting ".", or "("

这是什么意思?

Geo*_*rge 7

Quartus确实支持一些systemverilog.有关详细信息,请参阅此链接> Quartus帮助

对于quartus自动识别您正在使用系统verilog,您需要调用您的文件something.sv

所以在这种情况下,可能是counter.sv

如果您的文件名为counter.v,那么您将收到错误.我可以确认确实是用Quartus II v10.0编译的.

我建议将模块输出端口更改为reg,Quartus没有抱怨,但模拟器会.

output reg [7:0] count
Run Code Online (Sandbox Code Playgroud)

让我们知道您的身体情况如何.

干杯