4、赋值
Verilog HDL有两种为变量赋值的方法
一种叫做连续赋值(Continuous Assignment),另一种叫做过程赋值(Procedural Assignment)。
过程赋值又分为阻塞赋值(Blocking Assignment)和非阻塞赋值(Nonblocking Assignment)。
4.1 连续赋值
连续赋值是为线网型变量提供驱动的一种方法,它只能为线网型变量赋值,并且线网型变量也必须用连续赋值的方法赋值。
最基本的格式:assign # [延时量] 线网型变量名 =赋值表达式
赋值表达式可以是 a.标量 b.向量线网 c.向量寄存器 d.函数调用;
执行过程:连续赋值语句总是处于激活状态,只要右侧表达式中的任意一个操作数发生变化,表达式就会被立即重新计算,并且将结果赋值给对象。
wire a,b;
assign a = b;
wire [7:0] a,b;
assign a = b;
wire [7:0] a,b;
assign a[3] =b[1];
wire [7:0] a,b;
assign a[3:0] =b[3:0];
wire a,b;
wire [1:0]c;
assign c = {a,b};
4.2 过程赋值
过程赋值提供了为寄存器型变量赋值的方法,出现的位置是在各种块结构中,例如always块、 initial块等。
经过赋值后,变量(reg,integer,real,time)的取值