Verilog表达式和语句.ppt_第1页
Verilog表达式和语句.ppt_第2页
Verilog表达式和语句.ppt_第3页
Verilog表达式和语句.ppt_第4页
Verilog表达式和语句.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

,Verilog表达式和语句,目录,目录,壹,运算符及表达式,1、基本的算数运算符2、赋值运算符3、关系运算符4、逻辑运算符5、位运算符6、等式运算符7、移位运算符8、位拼接运算符9、优先级别,一,运算符,(1)算数运算符:+、-、x、/、%(2)赋值运算符:=、=、(8)拼接运算符:(9)其他。,1、基本的算数运算符(二进制运算符),(1)+(加法运算符,正值运算符,如rega+regb,+3)(2)-(减法运算符,负值运算符,如rega-2,-3)(3)x(乘法运算符,如rega*3)(4)/(除法运算符,如5/3)在进行整数除法运算时,结果值略去小数部分,只取整数部分。(5)%(模运算符,或者求余运算符,如7%3值为1)结果的符号位采用模运算式里第一个操作数的符号位,如:10%3,-10%3,10%-3,2、赋值运算符,(1)非阻塞赋值方式(如b=a)特点:1、所赋变量值不能立即为下面语句所用;2、块结束后才完成赋值操作,所赋的变量是上一次赋值得到的;3、编写可综合的时序逻辑模块,这是最常用的赋值。例1always(posedgeclk)beginbn,a代表进行移位的操作数,n代表要移几位。用0来填补移出的空位。例:4b10012=4b0010;,8、位拼接运算符,位拼接运算符,用这个运算符可以把两个或多个信号的某些位拼接起来进行运算操作,使用方法:信号1的某几位,信号2的某几位,信号n的某几位例:a,b3:0,w,3b101,可以写成a,b3,b2,b1,b0,w,1b1,1b0,1b1在位拼接表达式中不允许存在没有指明位数的信号。例:重复,4w等同于w,w,w,w嵌套,b,3a,b等同于b,a,b,a,b,a,b,9、优先级别,贰,语句,1、条件语句(if_else)2、case语句3、循环语句4、块语句5、过程块,1、条件语句(if_else),(1)if(表达式)语句。例如:if(ab)out1=int1;(2)if(表达式)语句1else语句2,例如:if(ab)beginout1=int1;out2=int2;endelsebeginout11;endend,(4)for语句格式:for(表达式1;表达式2,表达式3)语句;,最简单的应用形式:for(循环变量赋初值;循环结束条件;循环变量增值)执行语句;相当于采用while循环语句建立如下结构:begin循环变量赋初值;while(循环结束条件)begin执行语句;循环变量增值;endend,(1)先求解表达式1.(2)求解表达式2,若其值为真(非0)则执行for语句中指定的内嵌语句,然后执行下面的第(3)步。若为假(0)则结束循环,转到第(5)步。(3)若表达式为真,在执行指定语句,求解表达式3.(4)转回上面的第(2)步骤继续执行。(5)执行for语句下面的语句,例1:for语句初始化memorybegin:init_memreg7:0tempi;for(tempi=0;tempi1)if(tempreg0)count=count+1;end,4、块语句,(1)顺序块(也称过程块)关键字begin_end用于将多条语句组成顺序块特点:1、顺序块中的语句是一条一条按顺序执行的,只有前面的语句执行完成之后才能执行后面的语句。2、如果语句包括延迟或者事件控制,那么延迟总是相对于前面那条语句执行完成的仿真时间的。,regx,y;reg1:0z,w;initialbeginx=1b0;/仿真时刻0完成#5y=1b1;/仿真时刻5完成#10z=x,y;/仿真时刻15完成#20w=y,x;/仿真时刻35完成end,(2)并行块关键词fork_join声明特点:1、块内语句并行执行;2、语句执行顺序是由各自语句内延迟或事件控制决定的;3、语句中的延迟或事件控制是相对于快语句开始执行的时刻而言的;,regx,y;reg1:0z,w;initialforkx=1b0;/仿真时刻0完成#5y=1b1;/仿真时刻5完成#10z=x,y;/仿真时刻10完成#20w=y,x;/仿真时刻20完成join,(3)块语句特点1、嵌套块initialbeginx=1b0;fork#5y=1b1;#10z=x,y;join#20w=y,x;end,2、命名块特点:(1)命名块中可以声明局部变量;(2)命名块是设计层次的一部分,命名块中声明的变量可以通过层次名引用进行访问;(3)命名块可以被禁用,例如停止其执行,5、过程块,(1)initial语句格式:initialbegin语句1;语句2;语句n;end,例1:对存储器变量赋初始值。initialbeginareg=0;for(index=0;indexsize;index=index+1)memoryindex=0;end,例2:用initial语句生成激励波形。initialbegininputs=b000000;#10inputs=b011001;#10inputs=b011011;#10inputs=b011000;#10inputs=b001000;end,(2)always语句always语句在仿真过程中是不断活动着的。后跟的过程块是否执行,则看它的触发条件是否满足,如满足则执行一次;如不断满足,则不断地循环执行。其声明格式如下:alwaysalways语句由于其不断活动的特性,只有和一定的时序控制结合在一起才有用。如果一个always语句没有时序控制,则这个always语句将会使仿真器产生死锁。例1:alwaysareg=areg;生成一个0延迟的无限循环跳变过程,发生仿真死锁。例2:always#half_periodareg=areg;生成一个周期为period的无限延续的信号波形。常用来描述时钟信号,并作为激励信号来测试所设计的电路。always的时间控制可以是沿触发也可以是沿电平触发的,可以是单信号也可以是多信号,中间用关键字or连接。沿触发的always块常常描述时序行为,如有限状态机。电平触发的always块常常用来描述组合逻辑的行为。,例3:reg7:0counter;regtick;always(posedgeareg)begintick=tick;counter=counter+1;end说明:一个程序模块可以有多个initial和always过程块。每个initial和always说明语句在仿真的一开始同时立即开始执行。initial语句只执行一次,而always语句是不断地重复活动着,直到仿真过程结束。在一个模块中,使用i

温馨提示

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

评论

0/150

提交评论