procedural continuous assignment to register is not supported报错怎么解决
时间: 2024-03-06 21:47:54 浏览: 446
procedural-to-oo-javascript
这个错误通常是因为在连续赋值语句中使用了寄存器变量,但在过程块中定义寄存器变量是不允许的。解决方法是将寄存器变量定义在模块的作用域中,或者将连续赋值语句中的寄存器变量改为线网变量。例如:
```
module test;
reg a, b;
wire c;
always @* begin
a = b;
end
assign c = a & b;
endmodule
```
在这个例子中,连续赋值语句中的变量a和b都是寄存器变量,而过程块中定义寄存器变量是不允许的,因此会出现报错。解决方法是将a和b定义在模块的作用域中,例如:
```
module test;
reg a, b;
wire c;
always @* begin
a = b;
end
assign c = a & b;
endmodule
```
或者将连续赋值语句中的a和b改为线网变量,例如:
```
module test;
wire a, b;
wire c;
assign a = ...;
assign b = ...;
assign c = a & b;
endmodule
```
阅读全文