硬件描述语言VHDL优秀文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《硬件描述语言VHDL优秀文档.ppt》由会员分享,可在线阅读,更多相关《硬件描述语言VHDL优秀文档.ppt(103页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第7章章 硬件描述语言硬件描述语言VHDLVHDL 第第7章章 硬件描述语言硬件描述语言VHDL 7.1 VHDL模型的基本结构模型的基本结构 7.2 VHDL的基本元素的基本元素 7.3 VHDL的语句的语句 7.4 VHDL设计实例设计实例 第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.1 VHDL模型的基本结构模型的基本结构 半加器是我们熟悉的器件,输入变量a和b表示两个加数,输出S和CO表示和及进位位。于是我们可以用如下逻辑函数式表示半加器:第第7章章 硬件描述语言硬件描述语言VHDLVHDL 也可以用如表71所示的真值表来表示,还可以用如图71(a)所示的逻辑图或用如图
2、71(b)所示的逻辑符号表示之。图71半加器电路符号(a)逻辑图;(b)逻辑符号第第7章章 硬件描述语言硬件描述语言VHDLVHDL 表71半加器真值表第第7章章 硬件描述语言硬件描述语言VHDLVHDL 除上述三种表达方式外,现在我们还可以用VHDL来表达。即:1halfadderisahalfadder2LIBRARYIEEE;3USEIEEE.STD-LOGIC-1164.ALL;4ENTITYhalfadderIS5PORT(a,b:INSTD-LOGIC;s,co:OUTSTD-LOGIC);6ENDhalfadder;7ARCHITECTUREhalfOFhalfadderIS8S
3、IGNALc,d:STD-LOGIC;9BEGIN第第7章章 硬件描述语言硬件描述语言VHDLVHDL 10c=aORb;11d=aNANDb;12co=NOTd;13s=cANDd;S=(a+b)ab14ENDhalf;第第7章章 硬件描述语言硬件描述语言VHDLVHDL 我们以VHDL术语作为学习VHDL的开始。在VHDL中,一个设计单元被称为一个设计实体。它可以是一个简单的电路(如:一个与门、一个译码器或加法器等),也可以是一个复杂的电路(如:一个微处理器或一个系统)。如本例中的半加器就是一个设计实体。在VHDL中,由关键字、标识符、对象、符号和表达式按VHDL的语法规则构成的句子称为V
4、HDL语句。而能完成一定功能的若干条VHDL语句就组成VHDL程序。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 关键字(又称保留字)是具有特殊含义的标识符。它是组成VHDL语句最基本的元素之一。用户不能把它作为自己创建的标识符。为了醒目和易于发现错误,在书写VHDL程序时,建议关键字用大写字母或黑体字母,而用户自己创建的标识符用小写字母或非黑体字母。本书用大写字母表示关键字,用小写字母表示用户自己创建的标识符。在VHDL中,任何一个设计实体都至少由实体说明和结构体说明两部分构成。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 实体说明是一个设计实体的外部视图。它对应传统的逻辑图
5、表示法中的逻辑符号,它定义实体名称、类属、实体输入/输出端口和一些参数。实体说明以关键字ENTITY开始,以关键字END结束,它的一般格式是:ENTITY实体名ISGENERIC(类属参数说明);PORT(端口说明);实体说明部分;BEGIN实体语句部分;END实体名;第第7章章 硬件描述语言硬件描述语言VHDLVHDL 对于一个VHDL的初学者来说,在学习一般格式时,除要记住语句外,还要记住每行有没有标点符号和有没有用括号;用的是逗号(,)还是分号(;);用的是圆括号()还是方括号。如ENTITY实体名IS及BEGIN这两行并没有使用任何标点符号。我们约定:方括号里的内容为选择项,设计者根据
6、设计要求进行选择。在写程序时方括号要省略。而圆括号及圆括号里的内容为必选项,在写程序时,圆括号要照写。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 结构体主要用来描述实体的功能或内部操作特性。如果把设计实体比喻为“黑盒子”的话,那么,实体说明只定义了“黑盒子”的输入/输出,而结构体则描述了“黑盒子”内部的详细内容。下面是结构体的一般格式。第第7章章 硬件描述语言硬件描述语言VHDLVHDL ARCHITECTURE结构体名OF实体名IS说明区;包括:内部信号、常数、数据类型和函数等的定义BEGIN结构体语句部分;END结构体名;有了上述的VHDL知识后,让我们一起来阅读上述半加器的程序
7、,以求对VHDL程序有更进一步的认识。第1行以表示注释的双连线()开始,故该行为注释行,告诉使用者以下是一个半加器程序。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 第2行以关键字LIBRARY开始,表示程序所用的库为IEEE。一般地,程序行以分号(;)结束。第3行以关键字USE开始,以关键字ALL结束,表示程序中使用的数据类型是调用由库IEEESTD-LOGIC-1164提供的数据类型。第46行是实体说明。第4行中用语句ENTITYIS定义本实体的名称为halfadder。第5行用关键字PORT()定义输入/输出端口,即:把a和b定义为输入端,把s和co定义为输出端。并且把输入/输出
8、端的数据类型都定义为STD-LOGIC。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 第6行用关键字END结束名为halfadder的实体说明。第714行是结构体。第7行给出了结构体的名称为half,并说明了与实体名halfadder的所属关系。第8行是说明区,结构体的说明部分、信号、类型、元器件及其他说明可在该区中描述。本例说明了信号c和d的数据类型为STD-LOGIC。第9行关键字BEGIN之后直至第14行为止是结构体语句部分,用来叙述设计的函数功能。本实例是一个半加器的VHDL程序,第10行的语义是信号c等于a或b的结果;第第7章章 硬件描述语言硬件描述语言VHDLVHDL 第1
9、1行的语义是d等于a和b的与非;第12行的语义是co等于,即co等于a和b的与;第13行的语义是s等于c和d的与,即。综上所述,表达一个设计实体的完整VHDL程序通常含有五个部分,如图72所示。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 图72VHDL程序基本结构第第7章章 硬件描述语言硬件描述语言VHDLVHDL (1)实体(Entity)说明:描述设计实体的外部接口信号。(2)结构体(Architecture):描述设计实体的内部结构和功能。(3)配置(Configuration)说明:它是属性选项,描述层与层之间、实体说明与结构体之间的连接关系。比如高层设计需要将底层实体作为文
10、件调用,这就要用到配置说明。第第7章章 硬件描述语言硬件描述语言VHDLVHDL (4)库(Library)和程序包(Package):库是一种VHDL设计单元的特定集合,用于存放可重复使用的元件和数据类型说明。它可由用户生成,也可由ASIC芯片制造商提供。程序包是属性选项,用于存放各模块都能共享的数据类型、常数、元件和子程序等,它通过编译后成为库。其中,实体说明、结构体和库是每一个VHDL程序必不可少的三大部分,而配置说明和程序包则是选项,它们的取舍视具体情况来定。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2 VHDL的基本元素的基本元素 通过上节对VHDL程序基本结构的介绍
11、,我们对如何用VHDL来描述一个设计实体有了一个框架性的认识。本节将对VHDL的基本元素加以简要介绍,以求掌握VHDL中需要的基本知识。第第7章章 硬件描述语言硬件描述语言VHDLVHDL VHDL是一门高级硬件描述语言,故它有一套自身的、严格的语法规则。可编程器件的开发软件只能识别按照这些语法规则编写VHDL程序,因此学习VHDL的基本格式和基本元素就显得十分重要了。VHDL的基本元素包括:关键字、标识符、数据类型、对象、词法单元、表达式和运算符。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2.1关键字在VHDL语句的开始、结尾或中间过程都要用到关键字,它被赋予编译器能识别的特
12、殊含义。在编写程序时用户不能把关键字用作为自己创建的标识符。为了便于阅读,一般用大写字母来写关键字。下面列出了VHDL所有的关键字。VHDL93中新引入的关键字以黑体形式表示。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2.2标识符的命名在VHDL中,用户必须遵循VHDL标识符的命名规则来创建标识符,否则就会出现因可编程开发软件不能识别创建的标识符而导致VHDL程序无法运行的后果。在此,我们只介绍VHDL87标识符的命名规则。有关VHDL93标识符的命名规则请参考有关资料。标识符中可使用的有效字符:26个大小写英文字母(az和AZ);10个 数 字(0 9)和 下 划 线(-)。
13、例 如,2illegal%name被视为不合法的标识符,因为%不是有效字符。标识符必须以英文字母开头。例如,2illegal-name被视为不合法的标识符,因为它以数字2开头,而不是以英文字母开头。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 标识符中下划线(-)的前后都必须有英文字母或数字,在一个标识符中只能有一个下划线(-)。例如,illegal-和illegal-name被视为不合法的标识符,因为前者下划线(-)的后面没有英文字母或数字,后者有两个下划线(-)。标识符不区分大小写英文字母。例如,HALF-Adder和half-adder被视为同一标识符。第第7章章 硬件描述语言硬
14、件描述语言VHDLVHDL 7.2.3数据类型VHDL是一种强类型语言,即每一个对象具有一种类型且只能具有该类型的值。换句话说,施加于某对象上的操作必须与该对象的类型匹配。在VHDL中,信号、变量和常数都要指定数据类型,而且VHDL的数据类型定义相当严格,不同类型之间的数据不能直接代入。即使数据类型相同,位长不同时也不能直接代入。因此要正确使用VHDL,就必须理解各种数据类型的定义。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 标准的数据类型由开发软件提供,共有10种,如表72所示。如果用户需要这10种以外的数据类型,则必须自行定义。用户可定义的数据类型共有五种,如表73所示。第第7章
15、章 硬件描述语言硬件描述语言VHDLVHDL 表72标准的数据类型第第7章章 硬件描述语言硬件描述语言VHDLVHDL 表73用户定义的数据类型第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2.4对象VHDL把信号、变量、常量和文件统称为对象。信号和常量都可以连续赋值,而常量只能在它被说明的时候赋值(仅此一次)。VHDL93把文件也当作对象。文件可以以子程序进行读/写操作,但不可以通过赋值来更新文件的内容。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 对象说明的格式为CONSTANT标识符表:子类型=初值;常数的说明格式VARIABLE标识符表:子类型=初值;变量的说明格式
16、SIGNAL标识符表:子类型=初值;信号的说明格式FILE标识符表:子类型=初值;文件的说明格式第第7章章 硬件描述语言硬件描述语言VHDLVHDL 例如:CONSTANTrest1,rest2:TIME=10ns;把标识符rest1和rest2定义为常数,数据类型为物理型,其初值为10nsSIGNALclk:BIT;把标识符clk定义为信号,数据类型为位第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2.5词法单元1.注释VHDL中的注释是以双连符()开始直到本行末尾的一段文字。它是以文本形式对程序的说明,其目的是便于设计者和使用者阅读程序,但它不能被编码器识别。注释可以在程序中的
17、任意位置标注,但总是以双连符()表征,如前面学过的半加器VHDL程序的第一行和第13行中均有注释。双连符的右边文字均属于注释部分。如果注释文本很长需要延续到第二行,那么在第二行的行首也要用双连符()表征。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 2.VHDL中的数字在VHDL中使用的数字可以用十进制、二进制、八进制或十六进制表示。用八进制表示时数字前冠以基数说明符O,用二进制表示时数字前冠以基数说明符B,用十六进制表示时数字前冠以基数说明符X。例如,数字 224用 八 进 制 表 示 为 O340;用 二 进 制 表 示 为B11100000;用十六进制表示为XE0。第第7章章 硬
18、件描述语言硬件描述语言VHDLVHDL 3.字符VHDL中的文字字符表示形式为:被单引号括起来的ASCII字符。如A、*、“。4.符串VHDL中的文字字符串表示形式为:被双引号括起来的图形字符序列(可以为空)。如“howareyou?”、“”等。5.位串VHDL中的位串表示形式为:被双引号括起来的扩展的数字序列,数字序列前冠以基数说明符。如:B“11110101”长度为八的二进制数,等效245第第7章章 硬件描述语言硬件描述语言VHDLVHDL 6.VHDL语句中使用的标点符号分号(;)是一条语句结束的标志,逗号(,)是对象的分隔符。冒号(:)和原点(.)也是VHDL语句中常用的标点符号,它们
19、的用法在每条语句的一般格式里给出。在书写VHDL程序时,用错标点符号的情况时常会发生,所以大家在学习VHDL时,一定要注意语句中使用的标点符号。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.2.6表达式与运算符VHDL中的表达式和其他程序设计语言中的表达式非常相似。一个表达式是由运算符把对象名、文字、函数调用及括起来的表达式连接起来的式子。VHDL的运算符可分为四组:算术运算符、关系运算符、逻辑运算符和其他运算符,如表74所示。其中,VHDL93引用的新运算符用黑体表示。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 表74VHDL运算符第第7章章 硬件描述语言硬件描述语言V
20、HDLVHDL 块(BLOCK)语句第11行的语义是d等于a和b的与非;第12行的语义是co等于,即co等于a和b的与;第13行的语义是s等于c和d的与,即。4.实体语句部分;Temp顺序语句;USEIEEEstd-logic.本例中的第58行分别定义外引脚S、One、Zero和Y。在用VHDL设计时,设计者同样也是采用这种描述思想,也就是将一个结构体分成若干个相对独立的模块来描述。ENDmy-prom;line14Y=input(0);将input(0)的值赋给Y循环(LOOP)语句各运算符优先级排列顺序如下(同一行各运算符优先级相同):*ABSNOT最高优先级*/MODREM+(正号)-(
21、负号)+-&SLLSLASRLSRAROLROR=/=ANDORNANDNORXORXNOR最低优先级第第7章章 硬件描述语言硬件描述语言VHDLVHDL 几点说明:(1)关系运算符、=的两边数据类型必须相同,其结果为Boolean类型;=和/=的两边数据类型不必相同。(2)连接运算符(&)用于位的连接,即把右边的内容接在左边内容之后形成一个新的数组。例如,四个位用连接运算符(&)连接起来就可以构成一个四位长度的位矢量;两个四位的位矢量用连接运算符(&)连接起来就可以构成一个八位长度的位矢量。连接操作也常用于字符串,如“VH”&“DL”的结果为“VHDL”;0&1的结果为01。第第7章章 硬件
22、描述语言硬件描述语言VHDLVHDL (3)移位关键字有四个,循环移位关键字有两个,我们应该留意它们之间的差别。图73是移位和循环移位运算符的语义示意图。(4)VHDL表达式语法规定,一个表达中可含有两个或两个以上的AND运算符而不加括号。这一规定同样适用OR、XOR和XNOR运算符。但一个表达中含有两个或两个以上的NAND运算符一定要加括号。NOR和*运算符的规定同NAND运算符。另外,当一个表达式含有不同的运算符时,一定要用括号。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 图73移位和循环移位运算符的语义示意图第第7章章 硬件描述语言硬件描述语言VHDLVHDL 例如:e1=aA
23、NDbANDc正确e2=aXNORbXNORc正确e3=aNORbNORc错误e4=aNOR(bNORc)正确e5=aANDbORc错误e5=(aANDb)ORc正确因此,如果一个表达式中含有多个运算符,在没有把握的时候,最明智的做法就是用括号。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.3 VHDL的语句的语句 我们知道,VHDL语句是由关键字、标识符、对象、符号和表达式按VHDL的语法规则构成的句子,而VHDL程序则由完成一定功能的若干条VHDL语句构成。在VHDL中,若按语句执行的顺序对VHDL语句分类,可分为顺序语句和并行语句两类。顺序语句主要用来实现模型的算法,而并行语
24、句则基本上用来表示连接关系。下面对这两类语句分别加以介绍。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 7.3.1顺序语句顺序语句是包含在进程、函数或子程序中的语句,按书写顺序执行。它定义进程、函数或子程序所执行的算法。语句中所涉及到的系统行为有:时序流、控制、条件和迭代等。语句的功能有:算术运算、逻辑运算、信号和变量的赋值以及子程序的调用等。VHDL中所包含的常用顺序语句有以下几种:第第7章章 硬件描述语言硬件描述语言VHDLVHDL 等待(WAIT)语句断言语句信号代入语句变量赋值语句IF语句CASE语句LOOP(循环)语句NEXT语句EXIT语句第第7章章 硬件描述语言硬件描述语
25、言VHDLVHDL 10过程调用语句11返回(RETURE)语句12空操作(NULL)语句下面对以上12种顺序语句的书写格式、功能及使用时的注意事项逐一加以介绍。第第7章章 硬件描述语言硬件描述语言VHDLVHDL 1.等待(WAIT)语句在仿真过程中,进程不是处于执行状态就是处于挂起状态。设计者可以利用WAIT语句把一个进程或子程序挂起。挂起的进程或子程序恢复或再次执行的条件可以由WAIT语句设置。表75给出了五种不同格式的WAIT语句。在VHDL中,WAIT语句有多种用途,如为综合指定各种输入、延迟进程的执行时间或动态修改进程的敏感量。第第7章章 硬件描述语言硬件描述语言VHDLVHDL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 描述 语言 VHDL 优秀 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内