第11章++硬件描述语言VHDL简介.ppt
- 文档编号:2642704
- 上传时间:2022-11-04
- 格式:PPT
- 页数:59
- 大小:300.50KB
第11章++硬件描述语言VHDL简介.ppt
《第11章++硬件描述语言VHDL简介.ppt》由会员分享,可在线阅读,更多相关《第11章++硬件描述语言VHDL简介.ppt(59页珍藏版)》请在冰豆网上搜索。
第第11章章硬件描述语言硬件描述语言VHDL简介简介【本章内容提要本章内容提要】pVHDL语言程序的基本结构及VHDL语言中的数据;p常用组合逻辑功能器件的VHDL描述;p各种功能触发器的VHDL语言描述;p时序逻辑电路的VHDL描述。
本章内容提要本章内容提要重点:
重点:
(1)VHDL语言程序的基本结构语言程序的基本结构;
(2)VHDL语言中的数据语言中的数据;(3)VHDL语句语句。
难点:
难点:
(1)用用VHDL描述各种功能数字电路。
描述各种功能数字电路。
11.1VHDL语言基础语言基础传统的数字系统设计步骤是:
从真值表、状态图的简化,写出最简逻辑表达式,直到绘出电路原理图。
若电路系统庞大,就不容易在电路原理图上了解电路的原理,而且绘图也是非常烦琐的工作。
因此众多软件公司研制开发了具有自己特色的电路硬件描述语言HDL(HardwareDescriptionLanguage),这些硬件描述语言必然有很大的差异。
因此需要开发一种强大的、标准化的硬件描述语言,作为可相互交流的设计环境。
美国国防部在1981年提出了一种新的HDL,称之为VHSICHardwareDescriptionLanguage,简称为VHDL。
VHDL是超高速集成电路硬件描述语言(Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage)的缩写。
VHDL符合美国电气和电子工程师协会标准(IEEE1076标准),它可以用一种形式化的方法来描述数字电路和设计数字逻辑系统。
利用VHDL进行自顶向下的电路设计,并结合一些先进的EDA工具软件(例如MAXPLUS、EWB和Protel等),可以极大地缩短产品的设计周期,加快产品进入市场的步伐,在当前高速发展的信息时代,可以更好地把握商机。
11.1.1VHDL语言程序的基本结构语言程序的基本结构从数字电子技术课程中我们知道,任何一个数字部件都有输入和输出引脚,这些引脚负责与外部电路交换数据,称之为端口(PORT)。
输出与输入的关系可以用真值表、逻辑表达式和逻辑图等手段描述。
目前几种硬件描述语言HDL都是先描述端口,后描述端口之间的关系(即功能),VHDL也不例外。
一个完整的VHDL语言通常包括实体(entity)说明和和结构体(architecture)说明两部分。
其中实体说明部分描述部件的端口,结构体说明部分描述部件的功能。
这是任何一段VHDL程序都必须有的两个部分。
下面具体介绍这两个部分的语法。
1.实体说明实体说明实体说明部分包含在entity和endentity之间,描述的是部件的端口信号,即输入输出引脚。
在VHDL中,实体的关键字是entity,用户不能对关键字进行定义。
HADDER是实体名,由用户自行定义。
实体名应尽可能与部件的功能相符合。
需要说明的是,本书中,关键字采用了小写英文字母,而用户定义的标识符采用了大写的英文字母。
这样做的目的是便于读者区分这两类标识符,有利于书写和阅读。
需要指出的是:
VHDL对大小字母不敏感。
实体部分最核心的内容是由关键字port引导的端口说明。
A和B是输入引脚,使用了关键字in来描述。
Bit的意思是指A和B的数据类型是位类型。
位类型数据只可取0和1这两个数值。
S和CO是输出信号,用out来描述,数据类型也是bit型。
实体说明的是部件的名称和端口信号类型,它可以描述小至一个门,大到一个复杂的CPU芯片、一块印制电路板甚至整个系统。
实体的电路意义相当于器件,在电路原理图上相当于元件符号,它是一个完整的、独立的语言模块,并给出了设计模块和外部接口。
具体语法如下:
entity实体名is实体名自选,通常用反映模块功能特征的名称port(端口名称1:
端口方式1端口类型1;端口名称2:
端口方式2端口类型2;);end实体名;这里的实体名要和开始的实体名一致其中端口方式可以有5种,分别是:
in:
输入端口,信号从该端口进入实体。
out:
输出端口,信号从实体内部经该端口输出。
inout:
输入输出(双向)端口,信号既可从该端口输入也可从该端口输出。
buffer:
缓冲端口,工作于缓冲模式。
Linkage:
无指定方向,可与任何方向的信号连接。
2.结构体说明结构体说明结构体(architecture)是整个VHDL语言中至关重要的组成部分,这个部分会给出模块的具体实现,指定输入与输出之间的行为。
结构体的语句格式如下:
architecture结构体名of实体名is结构体说明部分;begin结构体语句部分;end结构体名称;上述语句格式中,结构体名为本结构体的命名;实体名即上文介绍的实体的命名,也就是所存储的文件的命名。
结构体说明部分必须在第一个begin之前定义,它可以由类型、子程序、元件和信号说明组成,用以对结构体内部所使用的信号、常数、数据类型和函数进行定义。
结构体语句部分是具体地确定各个输入、输出之间的关系,描述了结构体的行为,是一组并行处理语句,也就是说结构体中语句的执行是不以书写语句顺序为准的。
11.1.2VHDL语言中的数据语言中的数据VHDL是一种计算机编程语言,其语言要素包括标识符、数据对象、数据类型和运算操作符。
1.标识符标识符标识符规则是VHDL语言中符号书写的一般规则。
VHDL语言有两个标准版:
VHDL87版和VHDL93版。
VHDL87版的标识符语法规则经过扩展后,形成了VHDL93版的标识符语法规则。
为了对二者加以区分,前者称为短标识符,后者称为扩展标识符。
(1)短标识符)短标识符VHDL语言的短标识符是遵守以下规则的字符序列:
有效字符为大小写英文字母(AZ,az)、数字(09)和下划线(_);必须以英文字母打头;下划线前后必须都有英文字母或数字;短标识符不区分大小写。
在VHDL语言中,程序设计的字母大小写没有区别。
在所有的语句中,字母大写、小写以及大小写混合都可以。
为使程序易于阅读,应该使VHDL语言的保留字大写,其他小写。
(2)扩展标识符)扩展标识符扩展标识符具有以下特性:
扩展标识符用反斜杠来定界。
允许包含图形符号、空格符。
反斜杠之间的字符可以用保留字。
两个反斜杠之间可以用数字打头。
扩展标识符允许允许多个下划线相连。
扩展标识符区分大小写。
扩展标识符与段标识符不同。
以下是一些有效的基本标识符:
DRIVE_BUSaddr_busdecoder_38RAM182.数据对象数据对象数据对象共有3种形式:
常量(Constant)、变量(Variable)和信号(Signal)。
(1)常量)常量常量是一个固定值。
所谓常量说明就是对某一常量名赋予一个固定值,一旦赋值就不会发生变化。
通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。
常量定义的一般格式如下:
constant常量名:
数据类型:
表达式;例如:
constantwidth:
integer:
8;定义width整型常量8constantdelay:
time:
100ns;定义delay是时间型常量,用于表示延时
(2)变量)变量变量是可以改变的量,只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。
仿真过程中,变量不象信号那样,到了规定的仿真时间才进行赋值。
它的赋值是立即生效的,且在赋值时不能产生附加延时。
变量定义语句的一般格式为:
variable变量名:
数据类型:
初始值;例如:
variablex,y,z:
integer:
定义x,y,z是整型变量variablex,y,z:
integer:
2;定义x,y,z是整型变量,且赋初始值2variableA:
bit;定义A是位型变量variableB:
boolean:
false定义B是布尔变量,且赋初值“false”变量赋值语句的格式为变量名:
表达式变量的赋值符号为“:
”,使用变量赋值语句时,要注意保证赋值符号两边的数据类型一致,下面举例说明几种不同变量赋值方式。
例例11-1变量赋值语句举例。
variableA,B:
bit;定义变量A,B是位型variableC,D:
bit_vector(0to3);定义变量C,D是4位矢量信号A:
0;位赋值C:
”1001”;位矢量赋值D(0to1):
C(2to3);段赋值,将矢量C的后两位赋值给矢量D的前两位D
(2):
0;位赋值(3)信号)信号VHDL的信号是电子线路内部硬件连接的抽象。
它是描述硬件系统的基本数据对象,它的性质类似于连接线。
信号可以作为设计实体中并行语句模块间的信息交流通道。
信号作为一种数值容器,不但可以容纳当前值,也可以保持历史值(这决定于语句的表达方式)。
这一属性与触发器的记忆功能有很好的对应关系,只是不必注明信号上数据流动的方向。
信号定义的语句格式与变量相似,信号定义也可以设置初始值,信号说明语句的一般格式为:
signal信号名:
数据类型:
初始值;信号初始值的设置不是必须的,而且初始值仅在VHDL的行为仿真中有效。
与变量相比,信号的硬件特征更为明显,它具有全局性特征。
例如,在实体中定义的信号,在其对应的结构体中都是可见的,即在整个结构体中的任何位置,任何语句结构中都能获得同一信号的赋值。
例如:
signalA:
bit;定义bit型信号AsignalX,Y:
integerrange0to7;定义整型信号X和Y,信号值变化范围是07信号赋值语句的格式为信号名表达式;信号的赋值符号是“”,需要注意的是,信号的初始值符号是“:
”。
下面是几个信号赋值语句的例子。
XAandB;Z1after5ns;after是延时关键字,信号Z的赋值时间在5ns之后例例11-2信号说明与赋值语句举例。
architectureDATAFLOWofEXissignalS0,S1:
std_logic;beginS0AandB;S1S0nandC;YS1nandD;endarchitectureDATAFLOW;例11-2描述的电路图如图11-1所示。
3.数据类型数据类型在VHDL语言中信号、变量及常量都要指定数据类型。
VHDL语言标准定义了10种标准的数据类型。
为使用户设计方便,还可以由用户自定义数据类型。
这样,使语言的描述能力及自由度进一步提高,从而为系统高层次的仿真提供了必要手段。
VHDL语言的数据类型的定义相当严格,不同类型之间的数据不能直接代入:
数据类型相同、而位长不同时,也不能直接代入。
(1)VHDL语言标准所定义的标准数据类型语言标准所定义的标准数据类型10种标准数据类型如表11-1所列。
(2)用户自定义的数据类型)用户自定义的数据类型VHDL语言允许用户自定义数据类型。
其书写格式为:
type数据类型名is数据类型定义;例如:
typedigitisintegerrange0to9;定义digit的数据类型是09的整数可由用户定义的数据类型有:
枚举(Enumerated)类型;整数(Integer)类型;实数(Real)、浮点数(Floating)类型;数组(Array)类型;存取(Access)类型;文件(File)类型;记录(Record)类型;时间(Time)类型(物理类型)。
4.VHDL的运算操作符的运算操作符与传统的程序设计语言一样,VHDL各种表达式中的基本元素也是由不同类型的运算符相连而成的。
这里所说的基本元素称为操作数,运算符称为操作符(Operators)。
操作数和操作符相结合就成了描述VHDL算术或逻辑运算的表达式。
其中操作数是各种运算的对象,而操作符规定运算的方式。
VHDL语言的操作符有4种:
逻辑运算符、算术运算符、关系运算符和并置运算符,如表11-2所列。
(1)逻辑运算符)逻辑运算符逻辑运算符适用的变量为std_logic,bit及std_logic_vector类型,这3种布尔型数据进行逻辑运算时,逻辑运算符的左边、右边以及代入的信号类型必须相同。
在一个VHDL语句中存在两个以上逻辑表达式时,左右没有优先级别。
一个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 硬件 描述 语言 VHDL 简介