版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章第九章 硬件描画言语简介硬件描画言语简介9.1 概述概述9.2 Verilog HDL简介简介9.3 用用Verilog HDL描画逻辑描画逻辑电路的实例电路的实例 9.1 概述概述硬件描画言语硬件描画言语HDLHardware Description Language 是一种用方式化方法来描画数字电路和是一种用方式化方法来描画数字电路和数字逻辑系统的言语。数字逻辑电路设计者可利用这数字逻辑系统的言语。数字逻辑电路设计者可利用这种言语来描画本人的设计思想,然后利用种言语来描画本人的设计思想,然后利用EDA工具进工具进展仿真,再自动综合到门级电路,最后用展仿真,再自动综合到门级电路,最后用
2、ASIC或或FPGA实现其功能。实现其功能。举个例子,在传统的设计方法中,对举个例子,在传统的设计方法中,对2输入的与输入的与门,我们能够需到规范器件库中调个门,我们能够需到规范器件库中调个74系列的器件系列的器件出来,但在硬件描画言语中,出来,但在硬件描画言语中,“& 就是一个与门的就是一个与门的方式描画,方式描画,“C = A & B就是一个就是一个2输入与门的描画。输入与门的描画。而而“and就是一个与门器件。就是一个与门器件。 硬件描画言语开展至今已有二十多年历史,当硬件描画言语开展至今已有二十多年历史,当今业界的规范中今业界的规范中IEEE规范主要有规范主要有VHDL
3、和和Verilog HDL 这两种硬件描画言语。这两种硬件描画言语。 在数字电路设计中,数字电路可简单归纳为两种要素:在数字电路设计中,数字电路可简单归纳为两种要素:线和器件。线是器件管脚之间的物理连线;器件也可简单线和器件。线是器件管脚之间的物理连线;器件也可简单归纳为组合逻辑器件如与或非门等和时序逻辑器件归纳为组合逻辑器件如与或非门等和时序逻辑器件如存放器、锁存器、如存放器、锁存器、RAM等。一个数字系统硬件等。一个数字系统硬件就是多个器件经过一定的连线关系组合在一块的。因此,就是多个器件经过一定的连线关系组合在一块的。因此,Verilog HDL的建模实践上就是如何运用的建模实践上就是如
4、何运用HDL言语对数字电言语对数字电路的两种根本要素的特性及相互之间的关系进展描画的过路的两种根本要素的特性及相互之间的关系进展描画的过程。程。9.2 Verilog HDL 简介简介模块模块module是是Verilog 的根本描画单位,用于描的根本描画单位,用于描画某个设计的功能或构造及与其他模块通讯的外部端画某个设计的功能或构造及与其他模块通讯的外部端口。口。模块在概念上可等同一个器件就如我们调用通用器件模块在概念上可等同一个器件就如我们调用通用器件与门、三态门等或通用宏单元计数器、与门、三态门等或通用宏单元计数器、ALU、CPU等,因此,一个模块可在另一个模块中调用。等,因此,一个模块
5、可在另一个模块中调用。一个电路设计可由多个模块组合而成,因此一个模块一个电路设计可由多个模块组合而成,因此一个模块的设计只是一个系统设计中的某个层次设计,模块设的设计只是一个系统设计中的某个层次设计,模块设计可采用多种建模方式。计可采用多种建模方式。模模 块块 module三个描画层次三个描画层次 开关级描画:描画电阻、晶体管以及它们之间的相互连线关系。 门级描画:描画根本逻辑门、触发器以及相互连线关系。 存放器传输级RTL描画:描画存放器以及它们之间的数据传送关系。Verilog HDL 允许一个设计中每个模块均在不同设计允许一个设计中每个模块均在不同设计层次上建模。层次上建模。9.2.1
6、根本程序构造根本程序构造module ();endmodule几个简单事例:几个简单事例:例例1 加法器加法器module addr (a, b, cin, cout, sum);input 2:0 a;input 2:0 b;input cin;output cout;output 2:0 sum;assign cout,sum = a +b + cin;endmodule例例2 比较器比较器module compare equal,a,b;input 1:0 a,b; / declare the input signal ;output equare ; / declare the out
7、put signal;assign equare = (a = b) ? 1:0 ;/ * if a = b , output 1, otherwise 0;*/endmodule几个简单事例:几个简单事例:module mytri (din, d_en, d_out);input din;input d_en;output d_out;assign d_out = d_en ? din :bz;endmodulemodule trist (din, d_en, d_out);input din;input d_en;output d_out;mytri u_mytri(din,d_en,d_
8、out);Endmodule例例3 三态驱动器三态驱动器几个简单事例:几个简单事例: 经过上面的实例可看出,一个设计是由一个个模块经过上面的实例可看出,一个设计是由一个个模块module构成的。一个模块的设计如下:构成的。一个模块的设计如下:1、模块内容是嵌在、模块内容是嵌在module 和和endmodule两个语句之间。两个语句之间。每个模块实现特定的功能,模块可进展层次的嵌套,因此每个模块实现特定的功能,模块可进展层次的嵌套,因此可以将大型的数字电路设计分割成大小不一的小模块来实可以将大型的数字电路设计分割成大小不一的小模块来实现特定的功能,最后经过由顶层模块调用子模块来实现整现特定的功
9、能,最后经过由顶层模块调用子模块来实现整体功能,这就是体功能,这就是Top-Down的设计思想,如例的设计思想,如例3。2、模块包括接口描画部分和逻辑功能描画部分。这可以把、模块包括接口描画部分和逻辑功能描画部分。这可以把模块与器件相类比。模块与器件相类比。模块的构造:模块的构造:模块的端口定义部分:模块的端口定义部分:如上例:如上例: module addr (a, b, cin, count, sum); 其中其中module 是模块的保管字,是模块的保管字,addr 是模块的名字,相当于器件名。是模块的名字,相当于器件名。内是该模块的端口声明,定义了该模块的管脚名,是内是该模块的端口声明
10、,定义了该模块的管脚名,是该模块与其他模块通讯的外部接口,相当于器件的该模块与其他模块通讯的外部接口,相当于器件的pin。模块的内容,包括模块的内容,包括I/O阐明,内部信号、调用模块等的声阐明,内部信号、调用模块等的声明语句和功能定义语句。明语句和功能定义语句。I/O阐明语句如:阐明语句如: input 2:0 a; input 2:0 b; input cin; output count; 其中的其中的input 、output、inout 是保管字,定是保管字,定义了管脚信号的流向,义了管脚信号的流向,n:0表示该信号的位宽总线或表示该信号的位宽总线或单根信号线。单根信号线。逻辑功能描画
11、部分如:逻辑功能描画部分如: assign d_out = d_en ? din :bz;mytri u_mytri(din,d_en,d_out);功能描画用来产生各种逻辑主要是组合逻辑和时序功能描画用来产生各种逻辑主要是组合逻辑和时序逻辑,可用多种方法进展描画。还可用来实例化一个逻辑,可用多种方法进展描画。还可用来实例化一个器件,该器件可以是厂家的器件库也可以是我们本人器件,该器件可以是厂家的器件库也可以是我们本人用用HDL设计的模块相当于在原理图输入时调用一设计的模块相当于在原理图输入时调用一个库元件。在逻辑功能描画中,主要用到个库元件。在逻辑功能描画中,主要用到assign 和和alw
12、ays 两个语句。两个语句。3、对每个模块都要进展端口定义,并阐明输入、对每个模块都要进展端口定义,并阐明输入、输出口,然后对模块的功能进展逻辑描画,当然,输出口,然后对模块的功能进展逻辑描画,当然,对测试模块,可以没有输入输出口。对测试模块,可以没有输入输出口。4、Verilog HDL 的书写格式自在,一行可以写的书写格式自在,一行可以写几个语句,也可以一个语句分几行写。几个语句,也可以一个语句分几行写。5、除、除endmodule 语句外,每个语句后面需有分语句外,每个语句后面需有分号表示该语句终了。号表示该语句终了。模块的构造:模块的构造:9.2.2 词法构成词法构成1、间隔符与注释符
13、、间隔符与注释符 在在 Verilog HDL里有两种方式的注释:里有两种方式的注释:/ 是单行注释是单行注释 /* */ 是多行注释是多行注释白空新行、制表符、空格没有特殊意义。白空新行、制表符、空格没有特殊意义。书写规范建议:书写规范建议:一个语句一行。一个语句一行。采用空四格的采用空四格的table 键进展缩进。键进展缩进。2、操作符、操作符 Arithmetic: +, - ! * / Binary operators: &, |, , , ! Shift: Relational: , , =, =, != Logical: &, |9.2.2 词法构成词法构成Exam
14、ples:549 / 十进制十进制h 8FF / 十六进制十六进制o765 / 八进制八进制4 b11 / 4位二进制数位二进制数 00113 b10 x / 3位二进制数,最低位不确定位二进制数,最低位不确定5 d3 / 5位十进制数位十进制数00003-4b11 / 4位二进制数位二进制数0011的补码,的补码,11019.2.2 词法构成词法构成3、数值常量、数值常量size base valuesize 定义以位计的常量的位长;定义以位计的常量的位长;base 为为o 或或O表示八进制,表示八进制,b 或或B表示二进制,表示二进制,d 或或D表示十进制,表示十进制,h 或或H 表示十六
15、进制之一;表示十六进制之一;value 是基于是基于base 的值的数字序列。值的值的数字序列。值x 和和z 以及以及十六进制中的十六进制中的a 到到f 不区分大小写。不区分大小写。 Verilog HDL中规定了四种根本的值类型:中规定了四种根本的值类型: 0:逻辑:逻辑0或或“假;假; 1:逻辑:逻辑1或或“真;真; X:未知值;:未知值; Z:高阻。:高阻。 留意这四种值的解释都内置于言语中。如一个为留意这四种值的解释都内置于言语中。如一个为z 的值的值总是意味着高阻抗,一个为总是意味着高阻抗,一个为0 的值通常是指逻辑的值通常是指逻辑0 。 此外,此外,x 值和值和z 值都不分大小写。
16、值都不分大小写。9.2.2 词法构成词法构成3、数值常量、数值常量9.2.2 词法构成词法构成4、字符串、字符串5、标识符、标识符6、关键字、关键字字符串是双引号内的字符序列。字符串不能分成多行书写。字符串是双引号内的字符序列。字符串不能分成多行书写。标识符是模块、存放器、端口、连线、例如和标识符是模块、存放器、端口、连线、例如和begin end 等等元素的称号,是赋给对象的独一的称号。元素的称号,是赋给对象的独一的称号。数据类型数据类型数据类型有数据类型有 wire 和和 reg 。wire 用于对构造化器件之间的物理连线的建模。如器用于对构造化器件之间的物理连线的建模。如器件的管脚,内部
17、器件如与门的输出等。件的管脚,内部器件如与门的输出等。由于线网类型代表的是物理衔接线,因此它不存贮逻由于线网类型代表的是物理衔接线,因此它不存贮逻辑值。必需由器件所驱动。通常由辑值。必需由器件所驱动。通常由assign进展赋值。进展赋值。如如 assign A = B C;当一个当一个wire 类型的信号没有被驱动时,缺省值为类型的信号没有被驱动时,缺省值为Z高阻。高阻。信号没有定义数据类型时,缺省为信号没有定义数据类型时,缺省为 wire 类型。类型。数据类型数据类型数据类型有数据类型有 wire 和和 reg 。reg 是最常用的存放器类型,存放器类型通常用于对是最常用的存放器类型,存放器
18、类型通常用于对存储单元的描画,如存储单元的描画,如D型触发器、型触发器、ROM等。等。存储器类型的信号当在某种触发机制下分配了一个值,存储器类型的信号当在某种触发机制下分配了一个值,在分配下一个值之时保管原值。在分配下一个值之时保管原值。但必需留意的是,但必需留意的是,reg 类型的变量,不一定是存储单类型的变量,不一定是存储单元,如在元,如在always 语句中进展描画的必需用语句中进展描画的必需用reg 类型的变类型的变量。量。简单事例:简单事例:reg A;always (B or C) beginA = B & C;endalways (B or C) begin X = B
19、& C;endalways (posedge Clk) Y = B & C; always (negedge Clk) Z = B & C; “=用于组合逻辑器件的赋值用于组合逻辑器件的赋值“=用于时序逻辑器件的赋值用于时序逻辑器件的赋值简单事例:简单事例:/ 与非门模块与非门模块module NAND(in1, in2, out);input in1, in2;output out;assign out = (in1 & in2);endmodule简单事例:简单事例:/ 用两个与非门构成与门模块用两个与非门构成与门模块module AND(in1, in2,
20、 out);input in1, in2;output out;wire w1;NAND NAND1(in1, in2, w1);NAND NAND2(w1, w1, out);endmodule更多构造事例:更多构造事例:9.2.3 模块的描画方式模块的描画方式1、行为描画方式、行为描画方式行为描画方式是经过行为语句来描画电路要实现的功行为描画方式是经过行为语句来描画电路要实现的功能,表示输入与输出间转换的行为,不涉及详细构造。能,表示输入与输出间转换的行为,不涉及详细构造。从这个意义上讲,行为建模是一种从这个意义上讲,行为建模是一种“高级的描画方高级的描画方式。式。例:一位例:一位2选选1
21、的数据选择器的数据选择器module mux_2_to_1(a, b, out,outbar,sel);input a, b, sel ;output out,outbar ;assign out = sel? a : b ;assign outbar= out ;endmodule例:一位全加器的行为建模例:一位全加器的行为建模module FA_behav1(A, B, Cin, Sum, Cout );input A,B,Cin;output Sum,Cout;reg Sum, Cout;reg T1,T2,T3;always ( A or B or Cin )beginSum = (A B) Cin ;T1 = A & Cin;T2 = B & Cin ;T3 = A & B;Cout = (T1| T2) | T3;endendmodule2、构造描画方式、构造描画方式构造化的建模方式就是经过对电路构造的描画来建模,构造化的建模方式就是经过对电路构造的描画来建模,即经过对器件的调用即经过对器件的调用HDL概念称为例化,并运用线概念称为例化,并运用线网来衔接各器件的描画方式。网来衔
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024材料费用滤袋合同采购
- 儿童教育课程开发合同
- 二零二五年度广告投放合作协议范本3篇
- 2025年度珠宝首饰担保交易协议3篇
- 二零二五年度人工智能企业程序员聘用服务合同2篇
- 大锯骨机切骨机大安全操作规程
- 2024网络游戏开发与运营独家合同
- 2024年租房居间合同规范化样本版B版
- 2024环境监测设备供应与安装合同
- 2024版特定授权合同签署委托合同版B版
- 新版医务人员法律法规知识培训课件
- 2024年土地市场研究分析服务协议
- 物业管理公文写作培训
- 2024期货反洗钱培训
- 2023医疗质量安全核心制度要点释义(第二版)对比版
- 生态农业示范基地项目可行性研究报告1
- 家庭教育大讲堂实施方案
- 园林绿化工职业技能竞赛理论考试试题题库及答案
- 部编版《道德与法治》四年级下册教材解读与分析文档
- 2024-2030年中国机场跑道异物碎片(FOD)检测系统行业市场发展趋势与前景展望战略研究报告
- 特殊消防系统工程施工方案
评论
0/150
提交评论