assign在verilog里是什么意思?

reg a;
assign a=20'a10;

reg a;
a=20'a10;
有什么区别?
初学者~~请多多指教~~

第1个回答  2011-11-24
assign表示连续赋值,且被赋值的变量只能是wire型的。
如果变量是reg型的,则只能用在always块内部赋值,例如:
wire [19:0] a;
assign a = 20'b10;
reg [19:0] b;
always@(*)
begin
b = 20'b10;
end追问

reg型能在initial中赋值吗?例如:
reg[19:0] b;
initial
begin
b = 20'b10;
end
这样对吗?

追答

在initial中赋值的,就是要用reg型的。wire型的要在initial块外部用assign赋值。

本回答被提问者采纳
第2个回答  2015-08-05
assign相当于一条连线,将表达式右边的电路直接通过wire(线)连接到左边,左边信号必须是wire型。当右边变化了左边立马变化,方便用来描述简单的组合逻辑。
示例:
wire a, b, y;
assign y = a & b;本回答被网友采纳
相似回答