3.4 赋值基础语句_第1页
3.4 赋值基础语句_第2页
3.4 赋值基础语句_第3页
3.4 赋值基础语句_第4页
3.4 赋值基础语句_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章硬件描述语言VerilogHDL赋值语句04Part4赋值语句VerilogHDL的赋值语句由赋值对象、赋值符号和表达式三部分组成,格式如下:赋值对象<赋值符号>表达式;赋值语句从右往左执行,以分号结束,将表达式的值通过赋值运算送给赋值对象。赋值对象是已经声明过的线网型或寄存器型的变量或变量组合。VerilogHDL赋值分为连续赋值和过程赋值两种类型,可以使用“=”或“<=”两种赋值符号,符号的右边可以是任何可求值的表达式。4赋值语句4.1连续赋值语句连续赋值语句用来驱动net类型的变量,比如wire型。在VerilogHDL中,连续赋值语句使用关键字assign引导。语句格式为:assign变量名=赋值表达式;如:wirea,b;

assigna=b;又如:wire[3:0]A,B;output[3:0]Z;

assignZ=A&B;//端口默认为wire变量4赋值语句4.1连续赋值语句可以指定赋值给变量中的某一位或者某几位。如:wire[3:0]A,B,C,D; assignA[2]=B[3]; assignC[2:0]=D[2:0];也可以在赋值运算中加入拼接运算。如:wirea,b;wire[1:0]w1,w2; assign{a,b}=w1; assignw2={a,b};4赋值语句4.2过程赋值语句过程赋值语句是在initial或者always过程块中使用的赋值语句,不需要另外使用关键字。过程赋值将表达式的值赋给变量,变量将保留该值,直到下一次对该变量赋值时进行更新。过程赋值只能对寄存器型的变量赋值,如reg型等。4赋值语句4.2过程赋值语句过程赋值语句有两类赋值运算:阻塞(blocking)赋值,其运算符为“=”;非阻塞(non-blocking)赋值,其运算符为“<=”。即:阻塞性过程赋值:变量=表达式;非阻塞性过程赋值:变量<=表达式;4赋值语句阻塞性过程赋值阻塞性赋值语句顺序执行。从一条语句内部来看,赋值时‌先计算右边表达式的值,‌然后立即更新左边的变量,‌在这个过程中,‌不允许任何其他Verilog语句的干扰,‌直到当前的赋值操作完成。‌‌从多条语句来看,后一条语句必须在前一条语句完成后才能执行。因此,‌阻塞性赋值的特点是,‌在前一条语句赋值完成之前,‌后一条语句不会执行,‌可以看成前面的语句“阻塞”了后面的语句执行。4赋值语句阻塞性过程赋值例如下列语句,作为在一个语句块中的语句,它们会按照从上到下的顺序依次执行,变量按照T1→T2→T3→Count的顺序依次赋值。begin

T1=A&B;T2=B&Cin;T3=A&Cin;Count=T1&T2&T3;end4赋值语句非阻塞性过程赋值非阻塞性赋值语句并行执行。先计算每条赋值语句右边的表达式,‌然后在指定时刻,如仿真时间结束或时钟边沿,将语句块里面的所有赋值语句同时执行,即右边计算所得的值同时赋值给左边的寄存器变量。‌比如在always块中always@(posedgeclk)begin

a<=b; c<=d;end4赋值语句非阻塞性过程赋值再比如执行下列语句,假设程序运行之前RegA=16,RegB=24。beginRegA<=8;RegB<=RegA;RegC<=RegB;end执行完语句块之后,可以得到RegA=8,RegB=16,RegC=24。4赋值语句非阻塞性过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论