always @(*)块里能使用wire变量吗
时间: 2024-02-17 16:59:48 浏览: 288
FPGA的wire和reg类型变量 fpga开发.pdf
`always @(*)` 块中不能使用 `wire` 变量,因为 `wire` 变量是连续赋值类型的变量,只能在 `assign` 语句中赋值,不能在 `always` 块中赋值。在 `always` 块中,需要使用可寄存器(register)类型的变量,例如 `reg` 变量。
如果需要在 `always @(*)` 块中使用某些 `wire` 类型的变量,可以使用 `assign` 语句将其赋值给 `reg` 类型的变量,例如:
```
wire a, b;
reg c;
assign a = ...;
assign b = ...;
always @(*)
begin
c = a & b;
// ...
end
```
在上面的例子中,`a` 和 `b` 是 `wire` 类型的变量,不能在 `always` 块中直接使用,因此使用 `assign` 语句将其赋值给 `reg` 类型的变量 `c`,然后在 `always @(*)` 块中使用 `c` 变量进行逻辑运算。
阅读全文