iverilog错误:赋值语句l-value中的语法

iverilog错误:赋值语句l-value中的语法,verilog,system-verilog,digital-design,Verilog,System Verilog,Digital Design,我是SystemVerilog的新手,我使用Icarus Verilog。 我正试图设计一个简单的FSM来练习,但我不断地得到这个错误: 错误:赋值语句l-value中的语法 模块primoex(输入逻辑时钟、复位、x、, 输出逻辑(y); enum reg[1:0]{S0,S1,S2}stati; 注册号[1:0]stato,statoprox; 始终\u ff@(posedge时钟、posedge重置) 如果(重置)stato=S0; else stato在case语句中,使用default

我是SystemVerilog的新手,我使用Icarus Verilog。 我正试图设计一个简单的FSM来练习,但我不断地得到这个错误:

错误:赋值语句l-value中的语法

模块primoex(输入逻辑时钟、复位、x、,
输出逻辑(y);
enum reg[1:0]{S0,S1,S2}stati;
注册号[1:0]stato,statoprox;
始终\u ff@(posedge时钟、posedge重置)
如果(重置)stato=S0;

else stato在
case
语句中,使用
default
关键字代替其他case项值;不能为其赋值。您仍然需要使用正在分配的信号名称

更改:

    default= S0;
致:

这段代码在几个模拟器上编译。你可以注册一个免费帐户

它不会在Icarus上编译,但您可能有不同的版本。我看到的编译错误与您报告的不同。请记住,Icarus并不支持所有SystemVerilog功能

    default= S0;
    default statoprox = S0;