2020-02-04 10:24发布
waiter 发表于 2016-7-1 07:49 “不能直接赋值”,是指不能在always中赋值。比如下面的写法肯定是错误的: wire a; always @ (*)
最多设置5个标签!
wire a;
always @ (*)
a = `C;
你这种 wire [3:0] a='C; 的写法,叫做声明变量时赋初值,是可以的。
多谢高手,请问:
- module test;
- reg[7:0] a;
- a<=8'b1001_0010;
- endmodule
复制代码那这种描述应该是不合法的吧
定义个变量a为reg后,要在 always 语句块中进行赋值(或者也可以在 initial 中赋值)。
修改为如下就可以:
module test;
reg[7:0] a;
always @ (*)
a=8'b1001_0010;
endmodule
或者:
修改为如下就可以:
module test;
reg[7:0] a;
initial begin
// 其他语句:
a=8'b1001_0010;
// 其他语句:
end
endmodule
一周热门 更多>