4赋值语句赋值语句•连续性赋值语句:assign语句•过程赋值语句:阻塞和非阻塞6
1连续赋值语句连续赋值语句•VerilogHDL语言中的连续赋值语句与过程块一样也是一种行为描述语句
它主要用来对组合逻辑电路的行为进行描述
•连续赋值语句只能用来对连线型变量进行驱动(赋值),而不能对寄存器型变量进行赋值,它的格式如下(简单形式):•AssignLHS_target=RHS_expressio;n•例如,•Wire[3:0]Z,Preset,Clear;//线网说明•assignZ=Preset&Clear;//连续赋值语句•连续赋值的目标为Z,表达式右端为“Preset&Clear”
•注意连续赋值语句中的关键词assign
•连续赋值语句在什么时候执行呢
只要在右端表达•式的操作数上有事件(事件为值的变化)发生时,表•达式即被计算;如果结果值有变化,新结果就赋给•左边的线网
•在上面的例子中,如果Preset或Clear变化,就计•算右边的整个表达式
如果结果变化,那么结果即•赋值到线网Z
连续赋值的目标类型连续赋值的目标类型•在在实际使用中,连续赋值语句的赋值目标可•以是如下几种:•(1)标量连线型变量
如•wirea,b;•assigna=b;•(2)向量连线型变量
如•wire[7:0]a,b;•assigna=b;•(3)向量连线型变量中的某一位
如•wire[7:0]a,b;•assigna[3]=b[3];••(4)向量连线型变量中的某几位
如:•wire[7:0]a,b;•assigna[3:2]=b[3:2];•(5)上面几种类型的任意拼接运算结果
如•wirea,c;•wire[2:1]b;•assign{a,c}=b;•(6)在需要对多个连线型变量进行连续赋值时,•还可以采用如下形式的连续赋值语句,它可以实•现对多个变量进行连