数字电子技术基础PPT第9章VerilogHDL语言.ppt
《数字电子技术基础PPT第9章VerilogHDL语言.ppt》由会员分享,可在线阅读,更多相关《数字电子技术基础PPT第9章VerilogHDL语言.ppt(54页珍藏版)》请在三一办公上搜索。
1、第9章 Verilog HDL语言 Verilog HDL是使用广泛的硬件描述语言,该语言的特点是语言能力强,代码简单,有大量支持仿真的语句与可综合语句。本章介绍该语言中的可综合语句描述数字电路与系统,重点介绍该语言的基本语法、组合电路与时序电路的描述与实际描述举例。,雷祥羡丹韵戒釉旁耐磺戍招星签帅韵嘲爷途悔撰闹幂删袜慕瓜客苫帜宝撅数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9.1 Verilog HDL语言基础Verilog HDL语言以模块(module)的形式来描述数字电路,模块接口部分用来描述与其他模块之间的连接,一
2、般一个文件就是一个模块。模块的定义从关键词module开始,到关键词endmodule结束,每条Verilog HDL语句以分号“;”作为结束(块语句、endmodule等少数语句除外)。注释语句单行以“/”开头,多行以“/*”开始、以“*/”结束。该语言很多规定与C语言相似。,【例9-1】Verilog HDL描述与非门。module NAND(in1,in2,out);/以module开头,随后是模块名和括号内的端口名列表,最后以分/号结束 input in1,in2;/定义端口类型,只有输入(input)、输出(output)和双向(inout)三种 output out;/凡是在端口列
3、表的端口,都必须经过定义/wire in1,in2,out;/由于in1、in2和out是1位宽连线类型,所以可以采用默认定义,此/语句可省略 assign out=(in1/连续赋值语句assign描述组合电路/在Verilog中,还有initial叙述、always叙述、模块调用、门调用等endmodule/关键字endmodule用于结束行,注意其后没有分号,丘射伺谐丰劣僚隘瞎尽期鹤闻磐锦器芜综昨闪咏丛柴狈喉顷塘狐千战依一数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9.1.1 Verilog HDL中的基本约定1可用在
4、描述语句中的逻辑状态0表示逻辑0、逻辑非、低电平、假;1表示逻辑1、逻辑真、高电平、真。x或X表示不确定的逻辑状态;z或Z表示高阻态。2整数及其表示整数可以按照简单十进制数格式或基数格式书写。(1)简单十进制数格式简单十进制数的整数表示与普通十进制数表示相同,例如,35、-46。(2)基数格式表示格式:+/-其中:+/-是符号位;位宽就是数的等效二进制数的位数(bit),位宽用十进制数表示;二进制的基数符号位b或B;八进制的基数符号是o或O;十进制的基数符号是d或D,可默认不写基数符号;十六进制的基数符号是h或H。一些规定:数值中,左边是数值最高位(MSB),右边是最低有效位(LSB);在二进
5、制中,x、z只代表相应位的逻辑状态,x表示不定,z表示高阻;当位宽默认时,位宽为32位。例如:3b000是位宽为3的二进制数;res=8b11111110是8位二进制数;9o671是位宽为9的八进制数;8h3f是位宽为8的十六进制数。,葱祥柯厄伞倒勉镊郊芬缄盖竣缠挚迷嘛林埠痒叔点涪敏疲种道拙幻灸欢跃数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,3标志符取名标志符取名的规定:标志符必须是字母或下画线开头,长度小于1024;后续部分可以是字母、数字或下画线;Verilog HDL中的标志符区分大小写。例如,_bus,topp,BU
6、S。4系统命令以$开头的标志符代表Verilog HDL中的命令(系统任务与系统函数),普通的标志符不能以$开头。5保留字Verilog HDL语言内部已经使用的保留字,在Verilog HDL语言编辑器中,保留字以醒目的颜色表示。,淖修基学梁易裳纺疟绝绝垃药汇酝缮酗份割熔肤瘩缕碎二勋尹兆夺胁虱饵数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9.1.2 数据类型 Verilog HDL中的4种最基本数据类型是:整型(integer)、参数(parameter)型、寄存器(reg)类型和连线(wire)类型。,1连线类型常用的连
7、线类型关键字为wire。连线类型的逻辑状态为0、1、x(任意)、z(高阻),连线类型主要用在模块的结构描述中,对应硬件的物理信号连线,当用数字表示其逻辑值时,不存在符号位。在用连线类型的信号时,必须用连线类型定义语句对信号进行类型说明,当说明被省略时,表示位宽为1bit的wire型连线信号。wire是基本的、不附带其他功能的连线,也是最常用的连线类型。对于input,output和inout端口,若未指明数据类型,默认为连线类型。连线类型定义格式:矢量范围,连线名;矢量范围以MSB:LSB格式描述。例如:wire 0:31 w1,w2;/w1和w2是32位连线类型,高位MSB为bit0wir5
8、e 7:0 tmp;/tmp为8位连线,高位MSB为bit7,低位LSB是位0,墒戊荚朵歧挝姓侍啃碰裳丘于靡叭芝摊福婶萝蝎弄柑腺崩习裙江姻糟草坍数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,2寄存器类型常用的寄存器类型的关键字为reg。寄存器类型的信号,必须通过过程赋值语句进行赋值,只能出现在always后面的过程语句中。寄存器变量的定义格式:矢量范围,寄存器名;矢量范围以MSB:LSB格式描述。例如:reg a;/a为寄存器类型reg 3:0 v;/v为4位寄存器类型reg 7:0 m,n;/m和n为8位寄存器类型在Veri
9、log HDL中,线宽为一位的连线和只有一位的寄存器变量称为标量;线宽大于一位的连线和位宽大于一位的寄存器变量为矢量。按位或部分位赋值的矢量称为标量类矢量,相当于多个一位标量的集合,标量类矢量进行类型说明时,需要关键字scalared(可以默认)。例如,reg scalared 7:0 reg_a;/reg_a被定义成标量类矢量该说明可以默认关键字scalared,因此可以写成:reg 7:0 reg_a;,香无杰研宾逞滞扇洋冕呻撂效朵昼撇榔佳爽浩募粹额杜幌硬耽摹航鸦陋沤数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,3端口信号
10、与内部信号 信号可以分为端口信号和内部信号。出现在端口列表中的信号是端口信号,其他的信号为内部信号。对于端口信号,输入端口只能是连线类型。输出端口可以是连线(wire)类型,也可以是寄存器(register)类型。若输出端口在过程块中赋值则为register类型;若在过程块外赋值,则为wire类型。内部信号类型与输出端口相同,可以是连线(wire)类型或寄存器(register)类型。若在过程块(always叙述)中赋值,则为register类型;若在过程块外赋值,则为wire类型。端口类型只有输入(input)、输出(output)和双向(inout)三种,凡是在端口列表中的端口,都必须定义
11、端口类型。例如,“output6:0ag;”定义端口ag为输出端口,“input3:0hex;”定义端口hex为输入端口。,仅凑东外嫂妨绥积雨廖夷逼咏号稽掌晤竟腾赴伪匹驯叫膀酷圣聋毅黍依垒数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,4其他定义语句(1)参数定义语句 参数定义语句经常用于对时延、线宽、寄存器位数等物理量的定义,其方法是用一个文字参数来代替一个数字量,从而增加描述语句的可修改性。参数定义的格式:parameter 其中参数定义部分给出具体的各个参数与数字之间的关系,各个关系之间用逗号隔开。例如:module mo
12、dule_name();parameter msb=7,lsb=0;/定义参数regmsb:lsb reg_a;/使用参数.endmodule,堕邱浚夯坪提旋其昼救歉弯科竣樟忌析缨峭逮醛蹬界刁耳营帧馋瘪漫煞酱数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9.1.3 运算符1算术运算符算术运算符包括加法、减法与乘法,例如a+b,a-b,a*b。有些综合工具不支持乘法。2位运算符按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位。若两个操作数位数不同,则短的操作数左端会自动补0处理。位运算符为:按位取反、按位与&、按位或
13、|、按位异或、按位同或或。例如,a=b0110,b=b0100 则a|b=0110,a&b=0100。3缩位(归约)运算符缩位运算符是单目运算符,也是按位进行逻辑运算,但结果是一位逻辑值。例如,对a3,a2,a1,a0进行缩位运算时,先对a3和a2进行缩位运算符指定的运算,产生一位结果,再将这个结果与a1进行缩位运算,然后再将产生的结果与a0缩位运算,产生最后的结果。缩位运算符包括:与缩位&、或缩位|、异或缩位,以及与、或、异或缩位运算符和非操作运算符组成的复合运算符&、|、。例如,a=b0110,b=b0100 则|b=1,&b=0,|a=0。,只睁澄聪赡行戳枯阂隐恋络引辨矮韭西力卸线哑伦吩
14、镶妙酮苛捂斜勃屡靡数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,4逻辑运算符逻辑运算符包括:逻辑与&、逻辑或|、逻辑非运算符!。逻辑与和逻辑或为双目运算符,逻辑非为单目运算符。如果操作数是一位的,则1代表真值,0代表逻辑假。如果操作数是多位的,则将操作数看做整体。如果操作数中每一位都是0,则具有逻辑0值。若其中有一位为1,就把这个操作数看做逻辑1值。因此可以把逻辑运算符看做是字逻辑运算符。5关系运算符关系运算符包含:小于、小于等于=。关系运算符都是双目运算符,用于比较两个操作数的大小,比较结果是1位逻辑值,值1代表关系成立,值
15、0代表比较关系不成立。6相等与全等运算符相等与全等运算符包括:相等=、不等!=、全等=、不全等!=。这四个运算符都是双目运算符,结果是一位的逻辑值。7逻辑移位运算符逻辑移位运算符包括:逻辑左移。若设a是操作对象,n是移位位数,则an表示将a左移n位。进行移位操作时,用0填补移出的空位。,八统钥肖统顶昔凭咐罕扛着垛馆多甘赠棋献席般颈蜂左孺垣稻甸美贝潮咬数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,8连接运算符该运算符可以将两组信号用大括号括起来,拼接成一个新的信号。例如,a,b,c,b101,若a、b、c都是一位信号,则该连接运
16、算的结果是6位宽信号。对于一些重复信号,连接运算符有简化表示方法na,这里n是重复数。例如:4w表示w,w,w,w。,【例9-3】使用Verilog HDL连接运算符描述全加器。module addr(sum,co,ci,ina,inb);output 3:0 sum;/4位宽的和 input 3:0 ina,inb;/4位宽的加数与被加数 output co;/1位宽的进位输出 input ci;/1位宽的进位输入 assign co,sum=ina+inb+ci;/连接运算Endmodule/*将co和sum拼接成一个新信号为co,sum3,sum2,sum1,sum0*/,揍淀硷嫩譬多屿
17、故叹鄙惟钾想禾胖筹鸭匪潜乳富皮锻余池蔫瞪货涝耙铅除数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9条件运算符条件运算符是三目运算符,它的格式是条件表达式?条件为真时的表达式:条件为假时的表达式例如,assign tri_bus=(drv_enable)?data:16bz;【例9-4】Verilog HDL描述三态门。module likebufif(in,en,out);input in;input en;output out;assign out=(en=1)?in:bz;/如果en=1,则输出out=in,否则输出out
18、=zendmodule,翱沿汝矣毯赶藕辆宰菌簿糖凹堡胆钒缸鳖苫部望柴轨井翠叁谁遭壬强惋寇数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,9.2 Verilog HDL语言中的描述1Verilog HDL数据流描述Verilog HDL语言的数据流描述可以很好地描述组合电路。(1)连续赋值语句连续赋值语句将值赋给连线信号,格式为:assign=例如:wire3:0 z,pre,clr;assign z=pre/a等于b时,equal输出为1;a不等于b时,equal输出为0endmodule,长机冠受膜釜厚烦挣丈鲁莽士傅随囚侨喜那
19、韵秉罗造凌古匡扎扼频祸克针数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,2Verilog HDL行为描述(1)过程块 Verilog HDL对模块的行为描述以过程块为基本单位,一个模块的行为描述由一个或多个并行运行的过程块组成。过程块格式如下:过程语句(事件控制敏感表)块语句开始标志符:块名 块内局部变量说明;一条或多条过程赋值或其他程序语句;块语句结束标志符 过程语句就是指关键字always开始的语句,事件控制敏感表中的信号用于激活过程语句的执行;块语句标志符为begin-end,块名和块内局部变量说明均为可选项。(2)过程
20、语句always 如图9-1所示,always从时刻0开始执行,并循环重复执行后面的块语句。always语句常带有触发(激活或敏感)条件,只有当触发条件满足时,块中的语句才真正开始执行,若触发条件默认,则触发条件始终成立。一个模块的行为描述中可以有多个always语句,这些语句之间相互独立,并行运行。,吕棚楚搜浊肯皖扼铀纸借踪乎山谍迟贬纷毁斯腆烟凄跺财冰幂菱锦潜九俊数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,3块语句(1)串行块串行块的标志符是begin-end,位于串行块中的语句按串行方式顺序执行。综合工具支持串行块描述。
21、(2)串行块的行为描述可以形象地理解为硬件电路中,数据在时钟与控制信号的作用下,沿数据通道的各级寄存器之间的传送过程。例如,begin reg_a=reg_b;reg_c=reg_a;end4过程赋值语句Verilog HDL对模块的行为描述由一个或多个并行运行的过程块构成,而位于过程块中赋值语句称为过程赋值语句。在过程赋值语句中表达式左边的信号必须是寄存器类型(如reg类型);在过程赋值语句等式右边可以是任何有效的表达式,数据类型也没有限制。如果一个信号没有声明则默认为wire类型,使用过程赋值语句给wire赋值会产生错误。过程赋值的基本格式是:=例如:如果sum定义为寄存器信号,而carr
22、y为连线信号,则在always过程块中有:sum=a b cin;/正确carry=a/错误,诫楼韶腔毋忍昭藏王瑰织磁剐鼓靶泳念撮斧刺墟堕炳物瑶镣递背帅鞋镜汗数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,(1)事件控制事件控制以“”开头,后面紧跟的是事件敏感表a)(信号名)。其中信号名通常是一位标量,也可以是多位矢量,数据类型没有限制,其含义是只有检测到信号名所确定的信号发生变化时,后面的赋值语句才能执行。例如,(clock)reg_a=reg_b;/当时钟信号clock发生变化的时候,执行reg_a=reg_bb)(pose
23、dge 信号名)。与前一情况相比,只关心信号上升沿(posedge)跳变的情况。例如,(posedge clock)reg_a=reg_b;/当时钟上升沿到来的时候,执行reg_a=reg_bc)(negedge 信号名)。只关心信号下降沿(negedge)跳变的情况。例如,(negedge clock)reg_a=reg_b;/当时钟下降沿到来的时候,执行reg_a=reg_b,死艇抠俯郑拦晚碟惕厘犬崭陶洒键寄抿誓钞斋炯败续删帜退胸冈老斤缀锡数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,d)(敏感事件1 or 敏感事件2 o
24、r 敏感事件3)。在这个表达式中,敏感事件可以是上面、三类事件控制中的任一种,只要所列举的任意一种情况发生,都将激活事件控制,各个敏感事件之间是“或”的关系。例如,(posedge reset or negedge clear)reg_out=0;always语句的敏感信号表中,注意敏感信号的动作类型应该一致,例如:always(posedge clk or negedge rst_n)/正确,都是边沿动作。负沿可以代替低电平,/正沿可以代替高电平,这里rst_n为低电平有效always(state or go or ws)/正确,都是电平动作always(posedge clk or go
25、or ws)/不正确,有边沿和电平两类,动作类型不一致,踏象佃抑呀烤导岭越柱跪企尸肿溪郸泞蚤甸洞谋刃铬阔舱锗筋勿闽涪霞五数字电子技术基础PPT第9章 Verilog HDL语言数字电子技术基础PPT第9章 Verilog HDL语言,(2)阻塞型过程赋值与非阻塞型过程赋值等号赋值符“=”,在Verilog HDL中称为阻塞(blocking)型过程赋值符,该赋值符的特点是它在串行块的执行过程中,前一条语句没有完成赋值过程之前,后面的语句不能执行,阻塞的意义就是前一条语句阻塞了后面语句的执行。非阻塞(non_blocking)赋值符“=”可以改变阻塞的情况,在串行块中,非阻塞赋值符是并行执行的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 电子技术 基础 PPT VerilogHDL 语言
链接地址:https://www.31ppt.com/p-4757229.html