可编程逻辑器件编程技术_d_第1页
可编程逻辑器件编程技术_d_第2页
可编程逻辑器件编程技术_d_第3页
可编程逻辑器件编程技术_d_第4页
可编程逻辑器件编程技术_d_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、 2.3.1 Verilog语言的基本语法规则语言的基本语法规则 2.3.2 变量的数据类型变量的数据类型 2.3.3 Verilog程序的基本结构程序的基本结构 2.3.4 逻辑功能的仿真与测试逻辑功能的仿真与测试2.3 硬件描述语言硬件描述语言Verilog HDL基础基础硬件描述语言硬件描述语言HDL(Hardware Description Languag )类似于高级程序设计语言类似于高级程序设计语言. .它是一种以文本形式来描它是一种以文本形式来描述数字系统硬件的结构和行为的语言述数字系统硬件的结构和行为的语言, ,用它可以表示用它可以表示逻辑电路图、逻辑表达式,复杂数字逻辑系统所

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

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

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

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

6、er8、_net、bus_A 。关键词关键词: :是是Verilog语言本身规定的特殊字符串,用来定语言本身规定的特殊字符串,用来定义语言的结构。例如,义语言的结构。例如,module、endmodule、input、output、wire、reg、and等都是关键词。等都是关键词。关键词都是小关键词都是小写,写,关键词不能作为标识符使用关键词不能作为标识符使用 。4逻辑值集合逻辑值集合3标识符和关键词标识符和关键词5常量及其表示常量及其表示实数型常量实数型常量十进制记数法十进制记数法 如:如: 0.10.1、2.02.0、5.675.67科学记数法科学记数法 如如: : 23_5.1e2、5

7、E4 23510.0、 0.0005Verilog允许用参数定义语句定义一个标识符来代表一个常量,称允许用参数定义语句定义一个标识符来代表一个常量,称为符号常量。定义的格式为:为符号常量。定义的格式为:parameter 参数名参数名1 1常量表达式常量表达式1 1,参数名,参数名2 2常量表达式常量表达式2 2,;如如 parameter BIT=1, BYTE=8, PI=3.14;6字符串字符串: :字符串是双撇号内的字符序列字符串是双撇号内的字符序列常量常量十进制数的形式的表示方法十进制数的形式的表示方法: :表示有符号表示有符号常量常量例如:例如:3030、2 2带基数的形式的表示方

8、法带基数的形式的表示方法: : 表示表示常量常量格式为:格式为: 整数型整数型例如:例如:3b101、5o37、8he3,8b1001_0011 2.3.2 变量的数据类型变量的数据类型1 1线网类型线网类型: :是指输出始终根据输入的变化而更新其值的是指输出始终根据输入的变化而更新其值的变量变量, ,它一般指的是硬件电路中的各种物理连接它一般指的是硬件电路中的各种物理连接. . 例例:wire L; / /将上述电路的输出信号将上述电路的输出信号L L声明为网络型变量声明为网络型变量 wire 7:0 data bus; / /声明一个声明一个8-bit8-bit宽的网络型总线变量宽的网络型

9、总线变量常用的网络类型由关键词常用的网络类型由关键词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的值会立即跟着变化。的值会立即跟着变化。 & b a L 寄存器型变量对应的是具有状态保持作用的电等路元件寄存器型变量对应的是具有状态保持作用的电等路元件, ,如触如触发器寄存器。寄存器型

10、变量只能在发器寄存器。寄存器型变量只能在initial或或always内部被赋值。内部被赋值。2、寄存器型寄存器型寄存器类型寄存器类型功能说明功能说明reg常用的寄存器型变量常用的寄存器型变量integer32位带符号的整数型变量位带符号的整数型变量real64位带符号的实数型变量,位带符号的实数型变量,time64位无符号的时间变量位无符号的时间变量4种种寄存器类型的变量寄存器类型的变量例:例: reg clock;/定义一个定义一个1位寄存器变量位寄存器变量 reg 3:0 counter; /定义一个定义一个4位位寄存器变量寄存器变量抽象描述抽象描述, ,不对应具不对应具体硬件体硬件2、

11、每个模块先要进行端口的定义,并说明输入每个模块先要进行端口的定义,并说明输入(input)和输出和输出(output),然后对模块功能进行描述。然后对模块功能进行描述。2.3.3 Verilog程序的基本结构程序的基本结构Verilog使用大约使用大约100个预定义的关键词定义该语言的结构个预定义的关键词定义该语言的结构1、 VerilogHDL程序由程序由模块构成。每个模块的内容都是嵌在关键模块构成。每个模块的内容都是嵌在关键词词module和和endmodule两个语句之间。每个模块实现特定的功能。两个语句之间。每个模块实现特定的功能。3 3、除了、除了endmodule语句外,每个语句后

12、必须有分号。语句外,每个语句后必须有分号。4、可以用可以用/* - */和和/.对对VerilogHDL程序的任何部分做注释。程序的任何部分做注释。 module 模模块块名名(端端口口名名1 1, , 端端口口名名2 2, , 端端口口名名3 3, ,); 端端口口类类型型说说明明(input, outout, inout); 参参数数定定义义( (可可选选) ); 数数据据类类型型定定义义( (wire, reg等等) ); 实实例例化化低低层层模模块块和和基基本本门门级级元元件件; 连连续续赋赋值值语语句句(assign); 过过程程块块结结构构(initial和和always) 行行为

13、为描描述述语语句句; endmodule 逻逻辑辑功功能能描描 述述部部分分,其其 顺顺序序是是任任意意的的 说说明明部部分分 模块定义的一般语法结构如下:模块定义的一般语法结构如下:端口类型说明端口类型说明电路结构描述电路结构描述模块名模块名数据类数据类型说明型说明例例 用结构描述方式建立门电路用结构描述方式建立门电路VerlogerVerloger模型模型 & out sel a 1 a1 U2 b U4 & b1 U3 U1 selnot /Gate-level description of simple circuitmodule mux2to1(a, b, sel, out); input a, b, sel; /定义输入信号定义输入信号 output out; /定义输出信号定义输出信号 wire selnot, a1, b1 ; /定义内部节点信号数据类型定义内部节点信号数据类型/下面对电路的逻辑功能进行描述下面对电路的逻辑功能进行描述not U1(selnot, sel); and U2(a1, a, selnot); and U3(b1, b, sel); or U4(out, a1, b1);endmodule 2.3.4 逻辑功能的仿真与测试逻辑功能的仿真与测试逻辑电路的设计

温馨提示

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

评论

0/150

提交评论