电子技术基础 数字部分(第六版) :ch02-5 硬件描述语言Verilog HDL基础_第1页
电子技术基础 数字部分(第六版) :ch02-5 硬件描述语言Verilog HDL基础_第2页
电子技术基础 数字部分(第六版) :ch02-5 硬件描述语言Verilog HDL基础_第3页
电子技术基础 数字部分(第六版) :ch02-5 硬件描述语言Verilog HDL基础_第4页
电子技术基础 数字部分(第六版) :ch02-5 硬件描述语言Verilog HDL基础_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、 2.5.1 Verilog语言的基本语法规则语言的基本语法规则 2.5.2 变量的数据类型变量的数据类型 2.5.3 运算符及其优先级运算符及其优先级 2.5.4 Verilog内部的基本门级元件内部的基本门级元件 2.5.5 Verilog程序的基本结构程序的基本结构 2.5.6 逻辑功能的仿真与测试逻辑功能的仿真与测试2.5 硬件描述语言硬件描述语言Verilog HDL基础基础硬件描述语言硬件描述语言HDL(Hardware Description Languag )类似于高级程序设计语言类似于高级程序设计语言. .它是一种以文本形式来描它是一种以文本形式来描述数字系统硬件的结构和行为

2、的语言述数字系统硬件的结构和行为的语言, ,用它可以表示用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统完成的逻辑电路图、逻辑表达式,复杂数字逻辑系统完成的逻辑功能。逻辑功能。HDL是高层次自动化设计的起点和基础是高层次自动化设计的起点和基础.2.5 硬件描述语言硬件描述语言Verilog HDL基础基础计算机对计算机对HDL的处理的处理: :逻辑综合逻辑综合 是指从是指从HDL描述的数字逻辑电路模型中导出电路基描述的数字逻辑电路模型中导出电路基本元件列表以及元件之间的连接关系(常称为门级网表)的过本元件列表以及元件之间的连接关系(常称为门级网表)的过程。类似对高级程序语言设计进行编译产生

3、目标代码的过程程。类似对高级程序语言设计进行编译产生目标代码的过程. .产产生门级元件及其连接关系的数据库,根据这个数据库可以制作生门级元件及其连接关系的数据库,根据这个数据库可以制作出集成电路或印刷电路板出集成电路或印刷电路板PCB。逻辑仿真逻辑仿真 是指用计算机仿真软件对数字逻辑电路的结构和行为是指用计算机仿真软件对数字逻辑电路的结构和行为进行预测进行预测. .仿真器对仿真器对HDL描述进行解释,以文本形式或时序波形描述进行解释,以文本形式或时序波形图形式给出电路的输出。在仿真期间如发现设计中存在错误,就图形式给出电路的输出。在仿真期间如发现设计中存在错误,就再要对再要对HDL描述进行及时

4、的修改。描述进行及时的修改。2.5.1 Verilog语言的基本语法规则语言的基本语法规则 为对数字电路进行描述(常称为建模),为对数字电路进行描述(常称为建模),Verilog语言规定语言规定了一套完整的语法结构。了一套完整的语法结构。1间隔符间隔符: Verilog 的间隔符主要起分隔文本的作用,可以的间隔符主要起分隔文本的作用,可以使文本错落有致,便于阅读与修改。使文本错落有致,便于阅读与修改。间隔符包括空格符(间隔符包括空格符(bb)、)、TAB 键(键(tt)、换行符()、换行符(nn)及)及换页符。换页符。2注释符注释符: :注释只是为了改善程序的可读性注释只是为了改善程序的可读性

5、, ,在编译时不起作用。在编译时不起作用。多行注释符多行注释符( (用于写多行注释用于写多行注释): /): /* * - - * */ /;单行注释符单行注释符 : :以以/开始到行尾结束为注释文字。开始到行尾结束为注释文字。为了表示数字逻辑电路的逻辑状态,为了表示数字逻辑电路的逻辑状态,Verilog语言规定了语言规定了4 4种基本的逻辑值。种基本的逻辑值。 0逻辑逻辑0、逻辑假、逻辑假 1逻辑逻辑1、逻辑真、逻辑真 x或或X不确定的值(未知状态)不确定的值(未知状态) z或或Z高阻态高阻态标识符标识符: :给对象(如模块名、电路的输入与输出端口、变量等)给对象(如模块名、电路的输入与输出

6、端口、变量等)取名所用的字符串。以英文字母或下划线开始取名所用的字符串。以英文字母或下划线开始如如,clk、counter8、_net、bus_A 。关键词关键词: :是是Verilog语言本身规定的特殊字符串,用来定义语言语言本身规定的特殊字符串,用来定义语言的结构。例如,的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。等都是关键词。关键词都是小写,关键词都是小写,关键词不能作为标关键词不能作为标识符使用识符使用 。4逻辑值集合逻辑值集合3标识符和关键词标识符和关键词5常量及其表示常量及其表示实数型常量实数型常量十进制记数法十进

7、制记数法 如:如: 0.10.1、2.02.0、5.675.67科学记数法科学记数法 如如: : 23_5.1e2、5E4 23510.0、 0.0005Verilog允许用参数定义语句定义一个标识符来代表一个常量,称允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式为:为符号常量。定义的格式为:parameter 参数名参数名1 1常量表达式常量表达式1 1,参数名,参数名2 2常量表达式常量表达式2 2,;如如 parameter BIT=1, BYTE=8, PI=3.14;6字符串字符串: :字符串是双撇号内的字符序列字符串是双撇号内的字符序列常量常量十进制数的形

8、式的表示方法十进制数的形式的表示方法: :表示有符号表示有符号常量常量例如:例如:3030、2 2带基数的形式的表示方法带基数的形式的表示方法: : 表示表示常量常量格式为:格式为: 整数型整数型例如:例如:3b101、5o37、8he3,8b1001_0011 2.5.2 变量的数据类型变量的数据类型1 1线网类型线网类型: :是指输出始终根据输入的变化而更新其值的是指输出始终根据输入的变化而更新其值的变量变量, ,它一般指的是硬件电路中的各种物理连接它一般指的是硬件电路中的各种物理连接. . 例例:wire L; / /将上述电路的输出信号将上述电路的输出信号L L声明为网络型变量声明为网

9、络型变量 wire 7:0 data bus; / /声明一个声明一个8-bit8-bit宽的网络型总线变量宽的网络型总线变量常用的网络类型由关键词常用的网络类型由关键词wire定义定义wire型变量的定义格式如下:型变量的定义格式如下:wire n-1:0 n-1:0 变量名变量名1 1,变量名,变量名2 2,变量名,变量名n;变量宽度变量宽度例例: :网络型变量网络型变量L的值由与门的驱动信号的值由与门的驱动信号a a和和b b所决定,即所决定,即La&b。a、b的值发的值发生变化,线网生变化,线网L L的值会立即跟着变化。的值会立即跟着变化。 a b L 寄存器型变量对应的是具有

10、状态保持作用的电等路元件寄存器型变量对应的是具有状态保持作用的电等路元件, ,如触如触发器寄存器。寄存器型变量只能在发器寄存器。寄存器型变量只能在initial或或always内部被赋值。内部被赋值。2、寄存器类型寄存器类型寄存器类型寄存器类型功能说明功能说明reg常用的寄存器型变量常用的寄存器型变量integer32位带符号的整数型变量位带符号的整数型变量real64位带符号的实数型变量,位带符号的实数型变量,time64位无符号的时间变量位无符号的时间变量4种种寄存器类型的变量寄存器类型的变量例:例: reg clock;/定义一个定义一个1位寄存器变量位寄存器变量 reg 3:0 cou

11、nter; /定义一个定义一个4位位寄存器变量寄存器变量抽象描述抽象描述, ,不对应具不对应具体硬件体硬件1. 运算符运算符2.5.3 运算符及其优先级运算符及其优先级类型类型符号符号功能说明功能说明类型类型符号符号功能说明功能说明算术运算符算术运算符+-*/二进制加二进制加二进制减二进制减2的补码的补码二进制乘二进制乘二进制除二进制除关系运算符关系运算符(双目运算符)(双目运算符)= 关系关系 =等于等于= !=缩位缩位& & | |逻辑逻辑&|条件条件?:最低优先级最低优先级一般用法:一般用法:condition_expr?expr1:expr2;条件运算符条件运算

12、符是三目运算符,运算时根据条件表达式的值选择表达式。是三目运算符,运算时根据条件表达式的值选择表达式。首先计算第一个操作数首先计算第一个操作数condition_expr的值,如果结果为逻辑的值,如果结果为逻辑1,则选择第二个操作数则选择第二个操作数expr1的值作为结果返回,结果为逻辑的值作为结果返回,结果为逻辑0,选择第三个操作数选择第三个操作数expr2的值作为结果返回。的值作为结果返回。基本门级元件模型基本门级元件模型 元件符号元件符号功能说明功能说明元件符号元件符号功能说明功能说明andand多输入端的与门多输入端的与门nandnand多输入端的与非门多输入端的与非门oror多输入端

13、的或门多输入端的或门nornor多输入端的或非门多输入端的或非门xorxor多输入端的异或门多输入端的异或门xnorxnor多输入端的异或非门多输入端的异或非门bufbuf多输出端的缓冲器多输出端的缓冲器notnot多输出端的反相器多输出端的反相器bufif1bufif1控制信号高电平有效的三态缓冲控制信号高电平有效的三态缓冲器器notif1notif1控制信号高电平有效的控制信号高电平有效的三态反相器三态反相器bufif0bufif0控制信号低电平有效的三态缓冲控制信号低电平有效的三态缓冲器器notif0notif0控制信号低电平有效的控制信号低电平有效的三态反相器三态反相器多输入门多输入门

14、多输出门多输出门三态门三态门2.5.4 Verilog内部的基本门级元件内部的基本门级元件门级建模门级建模:将逻辑电路图用将逻辑电路图用HDL规定的文本语言表示出来。规定的文本语言表示出来。1 1、多输入门、多输入门只允许有一个输出,但可以有多个输入。只允许有一个输出,但可以有多个输入。 and A1(out,in1,in2,in3);); X- 不确定状态不确定状态Z- 高阻态高阻态 and真值表真值表x0zx0 xx10100000zX10 输入输入1and输输入入2xxxxx调用名调用名XX1XZXX1XX11111XX100ZX10输入输入1or输输入入2 or真值表真值表输输入入2X

15、XXXZXXXXXXX011XX X1 10 00 0ZX X1 10 0输入输入1 1xorxorxor真值表真值表2 2、多输出门、多输出门允许有多个输出,但只有一个输入。允许有多个输出,但只有一个输入。 not N1(out1,out2,in););xx10zx10输输 入入buf输输 出出 buf真值表真值表 输输 出出xx01zx10输输 入入notnot真值表真值表 buf B1(out1,out2,in););out1inout2outNout1inout2outNbufif1真值表真值表xxxzzxxxzx1/z1/z1z10/z0/z0z0zx10控制输入控制输入bufif1

16、数数据据输输入入xxxzzxxxzx0/z0/z0z11/z1/z10zzx10控制输入控制输入notif1数数据据输输入入notif1真值表真值表3、三态门、三态门有一个输出、一个数据输入和一个输入控制。有一个输出、一个数据输入和一个输入控制。如果输入控制信号无效,则三态门的输出为高阻态如果输入控制信号无效,则三态门的输出为高阻态z。 图图 4.6.3 三态门元件模型三态门元件模型 (a)bufif1 (b)notif1 (a) (b) in out ctrl in out ctrl 2、每个模块先要进行端口的定义,并说明输入每个模块先要进行端口的定义,并说明输入(input)和输出和输出(

17、output),然后对模块功能进行描述。然后对模块功能进行描述。2.5.5 Verilog程序的基本结构程序的基本结构 模块是模块是Verilog描述电路的基本单元。对数字电路建模时,描述电路的基本单元。对数字电路建模时,用一个或多个模块。不同模块之间通过端口进行连接。用一个或多个模块。不同模块之间通过端口进行连接。1、每个模块以关键词每个模块以关键词module开始,开始,以以endmodule结束。结束。3 3、除了、除了endmodule语句外,每个语句后必须有分号。语句外,每个语句后必须有分号。4、可以用可以用/* - */和和/.对对程序的任何部分做注释。程序的任何部分做注释。5、逻

18、辑功能的描述方式有三种不同风格:结构描述方式(逻辑功能的描述方式有三种不同风格:结构描述方式(门级描述方式)数据流描述方式,行为描述方式。门级描述方式)数据流描述方式,行为描述方式。 module 模模块块名名(端端口口名名1 1, , 端端口口名名2 2, , 端端口口名名3 3, ,); 端端口口类类型型说说明明(input, outout, inout); 参参数数定定义义( (可可选选) ); 数数据据类类型型定定义义( (wire, reg等等) ); 实实例例化化低低层层模模块块和和基基本本门门级级元元件件; 连连续续赋赋值值语语句句(assign); 过过程程块块结结构构(ini

19、tial和和always) 行行为为描描述述语语句句; endmodule 逻逻辑辑功功能能描描 述述部部分分,其其 顺顺序序是是任任意意的的 说说明明部部分分 模块定义的一般语法结构如下:模块定义的一般语法结构如下:端口类型说明端口类型说明电路结构描述电路结构描述模块名模块名数据类数据类型说明型说明例例 用结构描述方式建立门电路用结构描述方式建立门电路VerilogVerilog模型模型module mux2to1(D0, D1, S, Y ); input D0, D1, S; /定义输入信号定义输入信号 output Y; /定义输出信号定义输出信号 wire Snot, A, B ; /定义内部节点信号数据类型定义内部节点信号数据类型/下面对电路的逻辑功能进行描述下面对电路的逻辑功能进行描述 not U1(Snot, Sl); and U2(A, D0, Snot); and U3(B, D1, S); or U4(Y, A, B);endmodule module mux2to1_dataflow(D0, D1, S, Y ); input D0, D1, S; output Y; wire Y ; /下面是逻辑功能描述下面是逻辑功能描述 assign Y = (S &am

温馨提示

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

评论

0/150

提交评论