电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

verilog课件赋值语句课件例程VIP专享VIP免费

verilog课件赋值语句课件例程_第1页
verilog课件赋值语句课件例程_第2页
verilog课件赋值语句课件例程_第3页
6.46.4赋值语句赋值语句•连续性赋值语句:assign语句•过程赋值语句:阻塞和非阻塞6.4.16.4.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)在需要对多个连线型变量进行连续赋值时,•还可以采用如下形式的连续赋值语句,它可以实•现对多个变量进行连续赋值:•assignout_and=a&b;•out_or=a|b;•out_xor=a^b;•out_not_a=~a;•out_not_b=~b;•上述语句是下面5条独立的连续赋值语句的简化形式:•assignout_and=a&b;•assignout_or=a|b;•assignout_xor=a^b;•assignout_not_a=~a;•assignout_not_b=~b;•正如“连续赋值”这一名称所表述的含义,连续赋值语句对•连线型变量(wire)进行的是连续的驱动。•与寄存器型变量类型不同,连线型变量(除了trireg类型•外)没有数据保持能力,只有在被连续驱动后才能取得确定值•(而寄存器型变量只要在某一时刻得到一次过程赋值后就能一•直保持其取值),若一个连线型变量没有得到任何连续驱动则•它的取值将为不定态“x”。连续赋值就是实现对连线型变量进行•连续驱动的一种方法(还有一种进行连续驱动的方法是由某个•模块输出端来对连线型变量进行驱动,这归类于结构描述方式)一个连线型变量一旦被连续赋值语句赋值后,赋值语句右端赋值表达式的值将始终对被赋值连线型变量产生驱动(连续驱动)。在仿真执行时,只要右端赋值表达式内的任一操作数发生变化,就会立即触发对被赋值连线型变量的更新操作:重新计算赋值表达式的取值,然后将计算得到的结果赋值给被赋值连线型变量。也就是说赋值表达式内各个信号的变化将随时被反映到赋值表达式和被赋值变量的取值上。比如例6-14所示的模块实现了用输入信号a,b的“按位或”运算结果对连线型变量c进行连续驱动。a或b在任意时刻发生的变化将立即被反映到变量c的取值上。例6-15所示模块和例6-16所示的用过程赋值语句描述的模块是等价的。【例6-15】连续赋值语句的例子。moduleor_by_cont_assignment(c,a,b);inputa,b;outputc;assignc=a|b;endmodule【例6-16】与例6-15等价的描述。moduleor_by_proc_assignment(c,a,b);inputa,b;outputc;regc;initial//initial过程块用于对c赋初值beginc=x;endalways@(aorb)//always过程块用于更新c的取值c=a|b;endmodule在仿真执行时,例6-16所示模块中的always过程块将对输入a和b进行监测,每当a或b的取值发生变化时,过程赋值语句都将通过always的循环控制,启动一次对c的赋值操作过程;而当a和b的取值没有发生变化时,always过程块内的语句得不到执行,输出c将保持原有取值。所以例6-16描述的硬件行为特征是与例6-15所描述的行为特征相一致的。但这种描述方式显然没有例6-14中的描述那么简单明了。如果连续赋值语句带有延时(#delay),则在仿真执行时,只要右端赋值表达式中...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部