硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt
《硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt》由会员分享,可在线阅读,更多相关《硬件描述语言VHDL概述硬件描述语言VHDL概述ppt课件.ppt(160页珍藏版)》请在三一办公上搜索。
1、硬件描述语言VHDL概述,硬件描述语言VHDL概述,VHDL基本结构,数据对象、类型及运算符,顺序语句、并行语句,子程序,程序包与设计库,硬件描述语言VHDL概述,HDL最早是Iverson公司于1962年提出,到上世纪80年代被各个ASIC芯片厂商广泛采用。1982年各ASIC芯片厂商相继开发出自己的HDL。如Silvar-lisco公司的HHDL、Zycad公司的ISP、Gateway Design Automation(现改为Cadence Design System)公司的Verilog等等。另外,还有许多一些高等院校及科研机构也开发了许多版本的HDL,有名的有美国国防部开发的VHDL
2、(VHSIC HDL)、日本电子工业振兴协会的UDL/I等。,硬件描述语言(Hardware Description Language,HDL),为了标准化HDL,1987年底,IEEE确认美国国防部开发的VHDL为标准硬件描述语言(IEEE-1076)。之后,各EDA公司研制的硬件电路设计工具逐渐向VHDL靠拢。1993年,IEEE对VHDL进行了修订,公布了新版本的VHDL(即IEEE-107-1993)。现在VHDL和Verilog作为IEEE的两个标准。,硬件描述语言VHDL概述,VHDL语言是美国国防部在20世纪80年代初为实现其高速集成电路计划(Very High Speed In
3、tegrated Circuit,VHSIC)而提出的硬件描述语言(Hardware Description Language,HDL),称为VHDL。,VHDL的主要优点是:,1.覆盖面广,描述能力强,是一个多层次的硬件描述语言。,2.VHDL有良好的可读性,即可以被计算机接受,也容易被理解。,3.生命期长。VHDL的硬件描述与工艺技术无关,不会因工艺变化而使描述过时。与工艺技术有关的参数可通过VHDL提供的属性加以描述,工艺改变时,只需修改相应程序中的属性参数即可。,硬件描述语言VHDL概述,4.支持大规模设计的分解和已有设计的再利用,一个大规模设计不可能一个人独立完成,它将由多人,多项目
4、组来共同完成。VHDL为设计的分解和设计的再利用提供了有力的支持。,5.VHDL已成为IEEE承认的一个工业标准,事实上已成为通用硬件描述语言。目前,大多数的EDA工具几乎在不同程度上都支持VHDL,这样给VHDL的进一步推广和应用创造了良好的环境。,6.VHDL可以支持自上而下(Top Down)和基于库(Library-Based)的设计方法,而且还支持同步电路、异步电路、FPGA等的设计。其范围之广是其它HDL所不能比拟的。,硬件描述语言VHDL概述-一、,一、VHDL基本结构,先看一个程序例子:设计一个3-8译码器,1.参数部分库、程序包、配置,2.接口部分实体说明,硬件描述语言VHD
5、L概述-一、,architecture behavior of dec isbeginprocess(sel,en)beginyy(0)y(1)y(2)y(3)y(4)y(5)y(6)y(7)NULL;end case;end if;end process;end behavior;,3.描述部分结构体,硬件描述语言VHDL概述-一、,VHDL语言把任意复杂的一个系统看成为一个模块。,一个模块可主要分为三个组成部分:1.参数部分库、程序包、配置2.接口部分实体说明3.描述部分结构体,或者说一个VHDL程序总是包含三个部分:1.参数部分库、程序包、配置2.接口部分实体说明3.描述部分结构体,硬件
6、描述语言VHDL概述-一、,一个VHDL程序的前面部分总是有语句:,有关库、程序包、配置的作用及使用方法在后面讲述。,LIBRARY ieee;使用IEEE标准库USE ieee.std_logic_1164.all;打开一个程序包(程序包名为ieee.std_logic_1164.all),有些程序还需要加以下语句:USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;,硬件描述语言VHDL概述-一、,数字系统中的基本单元,在VHDL中称做设计实体(design entity)。一个基本设计单元,简单的可以是一个门,复杂一点
7、的可以是一个微处理器、一块印刷电路板上所有电路或者是整个数字系统。,设计实体由两部分组成:实体说明和结构体。,实体说明规定了设计单元的输入输出接口信号或引脚。结构体定义了设计单元的具体构造和操作(行为)。,硬件描述语言VHDL概述-一、,基本格式:,1.1 实体说明,方括弧内可有可无,硬件描述语言VHDL概述-一、,1.类属参数说明,类属参数说明必须放在端口说明之前,用于为设计实体和其外部环境通信的静态信息提供通道,可以定义端口的大小、实体中子元件的数目、实体的定时特性等。,例:GENERIC(m:Time:=1 ns);,该语句指定了结构体内的m为Time类型,其值为ns。,若随后的结构体内
8、有语句:,q=tmp after m;,则表示tmp送入q有一个延迟时间1ns。,硬件描述语言VHDL概述-一、,2.端口说明,端口说明用于为设计实体和其外部环境的动态通信提供通道。也可以说是对外部引脚信号的名称、数据类型、输入输出方向的描述。,一般书写格式为:,1)端口名,端口名是赋予每个外部引脚的名称,通常用一个或几个英文字母,或者用英文字母加数字命名。,硬件描述语言VHDL概述-一、,端口方向用来定义外部引脚的信号方向是输入还是输出。,2)端口方向,注意:“OUT”和“BUFFER”都可以定义输出端口,但它们之间是有区别的。,硬件描述语言VHDL概述-一、,在VHDL语言中有10中数据类
9、型,但是在逻辑电路设计中只用到两种:BIT和BIT_VECTOR。,3)数据类型,BIT数据类型是位逻辑数据类型,其取值只能是两个逻辑值(“1”和“0”)中的一个。,BIT_VECTOR数据类型是位数组逻辑数据类型,其取值是一组二进制位的值。,硬件描述语言VHDL概述-一、,基本格式:,1.2 结构体,该结构体唯一的名称,缺省为behavioral,该结构体对应的实体,方括弧内可有可无,硬件描述语言VHDL概述-一、,1.结构体名称的命名,结构体名称是对本结构体的命名,它是该结构体的唯一名称。OF后面紧跟的实体名表明了该结构体所对应的是哪一个实体。用IS来结束结构体的命名。,结构体的名称可以自
10、由命名。但在大多数时候,通常把结构体的名称命名为behavioral(行为)、dataflow(数据流)或者structural(结构)。表示结构体的3种描述方式。,2.说明语句,定义语句位于ARCHITECTURE和BEGIN之间,用于对结构体内部所使用的信号、常数、数据类型和函数进行定义。,硬件描述语言VHDL概述-一、,3.并行语句,并行语句处于语句BEGIN和END之间,具体描述了本结构体的行为(功能)及其连接关系(内部结构)。,并行语句的描述方式有4种:,1)算法描述。2)数据流描述。3)结构描述。4)混合描述。,属行为描述(功能描述),也属行为描述(功能描述),描述内部结构,兼有功
11、能描述和内部结构描述,硬件描述语言VHDL概述-一、,1)算法描述(也有称为“行为描述”方式),算法描述属行为描述。是描述方式中较容易接受的。完全把硬件的设计软件化了。行为描述表示输入与输出间转换的行为。无需包含任何结构信息。,硬件描述语言VHDL概述-一、,算法描述如下:,ARCHITECTURE behavior OF reg ISBEGIN process(ck,reset,preset)begin if reset=0 then q=0;elsif preset=0 then q=1;elsif ckevent and ck=1 then q=d;end if;end process;
12、END behavior;,process为进程语句,括号内信号是进程的激活条件。,进程常用来描述实体或其内部部分硬件的行为。,硬件描述语言VHDL概述-一、,2)数据流描述(也有称为“寄存器传输描述”方式),数据流描述表示行为,也隐含表示结构。它反映从输入数据到输出数据之间所发生的逻辑变换。,ENTITY mux IS PORT(d0,d1:IN BIT;sel:IN BIT;q:OUT BIT);END mux;ARCHITECTURE dataflow OF mux ISBEGIN q=(d0 AND sel)OR(NOT sel AND d1);END dataflow;,硬件描述语言
13、VHDL概述-一、,3)结构描述,结构描述给出实体内部结构,即所包含的模块或元件及其互连关系以及与实体外部引线的对应关系。,和:s=a xor b,进位:c=a and b,硬件描述语言VHDL概述-一、,半加器的描述如下:,ARCHITECTURE struct_ha OF half_adder IS COMPONENT and_gate PORT(a1,a2:IN Bit;a3:OUT Bit);END COMPONENT;COMPONENT xor_gate PORT(x1,x2:IN Bit;x3:OUT Bit);END COMPONENT;BEGIN g1:and_gate POR
14、T MAP(a,b,c);g2:xor_gate PORT MAP(a,b,s);END struct_ha;,程序中COMPONENT 为元件说明语句,说明元件的名称及端口特性。该结构体中由两条并行的元件例化(引用)语句组成。PORT MAP为端口映射,指明所含元件之间以及元件与实体端口之间的连接关系。被例化的元件称为例元(and_gate和xor_gate)。,硬件描述语言VHDL概述-一、,4)混合描述,在一个结构体中,行为描述与结构描述可以混合使用。即元件例化语句可与其他并行语句共处于同一个结构体内。,ARCHITECTURE struct_ha OF half_adder IS CO
15、MPONENT and_gate PORT(a1,a2:IN Bit;a3:OUT Bit);END COMPONENT;BEGIN s=a XOR b;g1:and_gate PORT MAP(a,b,c);END struct_ha;,硬件描述语言VHDL概述-二、,二、数据对象、类型及运算符,2.1 对象类别与定义,在VHDL语言中,有四类对象:1)CONSTANT(常量),可用于定义延迟、功耗、电源(即5V)、地(0V)等参数。只能进行一次赋值。2)VARIABLE(变量),常用于高层次抽象的算法描述中。可多次赋值。3)SIGNAL(信号),对应某一条硬件连线,可多次赋值。4)FILE
16、(文件),相当于文件指针,用于对文件的读写操作。(很少用到),硬件描述语言VHDL概述-二、,1.常量(CONSTANT),常量是一个固定值。所谓常量说明就是对某一常量名赋予一个固定值。通常赋值在程序开始前进行,该值的数据类型则在说明语句中指明。一般格式如下:,CONSTANT 常量名:数据类型:=表达式;,硬件描述语言VHDL概述-二、,2.变量(VARIABLE),变量只能在进程语句、函数语句和过程语句结构中使用,它是一个局部量。在仿真过程中,变量的赋值是立即生效。一般格式如下:,VARIABLE 变量名:数据类型:约束条件:=初始值;,方括弧内可有可无,硬件描述语言VHDL概述-二、,3
17、.信号(SIGNAL),信号是电子电路内部硬件连接的抽象。它除了没有数据流动方向说明以外,其他性质几乎和前面所述的“端口”概念一样。信号通常在构造体、包集合和实体中说明。一般格式如下:,SIGNAL 信号名:数据类型:约束条件:=初始值;,方括弧内可有可无,硬件描述语言VHDL概述-二、,4.关于信号和变量值代入的区别,信号和变量值的代入不仅形式不同,而且其操作过程也不同。在变量的赋值语句中,该语句一旦被执行,其值立即被赋予变量。在执行下一条语句时,该变量的值就为上一句新赋的值。变量的赋值符为“:=”。信号代入语句采用“=”代入符,该语句即使被执行也不会使信号立即发生代入。下一条语句执行时,仍
18、使用原来的信号值。由于信号代入语句是同时进行处理的,因此,实际代入过程和代入语句的处理是分开进行的。,硬件描述语言VHDL概述-二、,例:信号值的代入,PROCESS(a,b,c,d)BEGIN d=a;x=b+d;d=c;y=b+d;END PROCESS;,结果是:x=b+c;y=b+c;,上例中,虽然信号代入语句进行了处理,但实际代入过程是在进程执行完后进行的,因此最后所代入的值作为最终代入值。因为d的最终值是c,所以x的最终值是b+c。,硬件描述语言VHDL概述-二、,例:变量值的代入,PROCESS(a,b,c)VARIABLE D:Std_logic_vector(3 Downto
19、 0);BEGIN d:=a;x=b+d;d:=c;y=b+d;END PROCESS;,结果是:x=b+a;y=b+c;,上例中,变量的值一经赋值就变成新的值。因此x的最终值是b+a。,硬件描述语言VHDL概述-二、,2.2 数据类型,在VHDL语言中,一个对象只能具有一个数据类型,施加于该对象的操作必须与该类型相匹配。VHDL提供多种标准的数据类型。在此基础上,用户还可以自定义数据类型。,1.标准的数据类型,有十种标准的数据类型,分别是整数、实数、位、位矢量、布尔量、字符、字符串、时间、错误等级、大于等于零的整数或正整数。,硬件描述语言VHDL概述-二、,1)整数(Integer),整数与
20、数学中的整数含义相同。VHDL中,整数的表示范围是-2 147 483 6472 147 483 647,即从-(231-1)到(231-1)。VHDL是一个强类型语言,要求在赋值语句中的数据类型必须匹配。整数的例子:+136,+12 456,-457,2)实数(Real),在进行算法研究或者实验时,作为对硬件方案的抽象手段,常用实数四则运算。实数的定义值范围是-1.0E+38+1.0E+38。实数有正负数,书写时一定要有小数点。实数的例子:-1.0,+2.5,-1.0E38,硬件描述语言VHDL概述-二、,3)位(Bit),在数字系统中,信号值通常用一个位来表示。位值的表示方法是,用字符0或
21、者1(将值放在单引号中)表示之。位与整数中的0和1不同,1和0仅仅表示一个位的两种取值。位数据可以用来描述系统中总线的值。,4)位矢量(Bit_vector),位矢量是用双引号括起来的一组位数据。例如:“001100”X”00BB”,X表示是十六进制。,用位矢量数据表示总线状态最形象也最方便。,硬件描述语言VHDL概述-二、,5)布尔量(Boolean),一个布尔量具有两种状态,“真”或者“假”。虽然布尔量也是二值枚举量,但它和位不同,没有数值的含义,也不能进行算术运算。它能进行关系运算。例如,它可以在IF语句中被测试,测试结果产生一个布尔量TRUE或FALSE。如果某个信号或者变量被定义为布
22、尔量,那么在仿真中将自动地对其赋值进行核查。一般这一类型的数据的初始值总为FALSE。,硬件描述语言VHDL概述-二、,6)字符(Character),字符也是一种数据类型,所定义的字符量通常用单引号括起来,如A。一般情况下VHDL对大小写不敏感,但是对字符量中的大、小写字符则认为是不一样的。例如,B不同于b。字符量中的字符可以是az中的任一个字母,09中的任一个数以及空白或者特殊字符,如$,%等等。包集合STANDARD中给出了预定义的128个ASCII码字符类型,不能打印的用标识符给出。字符1与整数1和实数1.0都是不同的。,7)字符串(String),字符串是用双引号括起来的一个字符序列
23、,它也称字符矢量或字符串数组。常用于程序的提示和说明。,硬件描述语言VHDL概述-二、,8)时间(Time),时间是一个物理量数据。完整的时间量数据应包含整数和单位两部分,而且整数和单位之间至少应留以后、个空格的位置。例 55 sec,2 min等。在包集合STANDARD中给出了时间的预定义,其单位是fs,ps,ns,s,ms,sec,min,hr。(飞秒,皮秒,纳秒,微秒,毫秒,秒,分钟,小时),9)错误等级(Severity level),错误等级类型数据用来表征系统的状态,它共有4种:NOTE(注意),WARNING(警告),ERROR(出错),FAILURE(失败)。在系统仿真过程中
24、可以用这4种状态来提示系统当前的工作情况。,硬件描述语言VHDL概述-二、,10)大于等于零的整数(Natural),正整数(Positive),这两类数据是整数的子类,Natural类数据只能取值0和0以上的正整数;而Positive则只能为正整数。,以上这10种标准的数据类型,在编程中可直接引用。如果用户需使用这10种以外的数据类型,则必须进行自定义。由于VHDL语言属于强类型语言,在仿真过程中,首先要检查赋值语句中的类型和区间,任何一个信号和变量的赋值均须落入给定的约束区间中,也就是说要落入有效数值的范围中。约束区间的说明通常跟在数据类型说明的后面。,例如:,Integer RANGE
25、100 DOWNTO 1Bit_vector(3 DOWNTO 0)Real RANGE 2.0 to 30.0,DOWNTO表示下降。,硬件描述语言VHDL概述-二、,2.用户定义的数据类型,在VHDL语言中,使用户最感兴趣的一个特点是,可以由用户自己来定义数据类型。右用户定义的数据类型的定义书写格式为:,TYPE 数据类型名,数据类型名 数据类型定义,可由用户定义的数据类型有:,.枚举(Enumerated)类型.整数型(Integer)类型.实数(Real)类型.浮点数(Floating)类型.数组(Array)类型.存取(Access)类型.文件(File)类型.记录(Recode)类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 描述 语言 VHDL 概述 ppt 课件

链接地址:https://www.31ppt.com/p-5631196.html