《硬件描述语言》ppt课件_第1页
《硬件描述语言》ppt课件_第2页
《硬件描述语言》ppt课件_第3页
《硬件描述语言》ppt课件_第4页
《硬件描述语言》ppt课件_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、第三部分 硬件描画言语VHDL什么是VHDL? Very high speed integrated Circuit Hardware Description Language (VHDL)是是IEEE、工业国际规范硬件描画言语、工业国际规范硬件描画言语用言语的方式而非图形等方式描画硬件电路用言语的方式而非图形等方式描画硬件电路容易修正容易修正容易保管容易保管VHDL支持行为级、存放器传输级支持行为级、存放器传输级RTL和门级三个和门级三个不同层次的设计不同层次的设计VHDL言语特点w 支持多种设计方法和技术w 与工艺技术独立w 多层次描画才干w VHDL言语规范化、规范化,易于共享和复用VH

2、DL的功能和规范的功能和规范 VHDL 描画输入端口输出端口电路的行为和功能VHDL有过两个规范:IEEE Std 1076-1987 (called VHDL 1987)IEEE Std 1076-1993 (called VHDL 1993)VHDL综合综合综合:将电路的高级言语如行为描画转化成低级的,可与FPGA/CPLD的根本构造相映射的网表文件或程序 设计过程中的每一步都可称为一个综合环节。 (1) 从自然言语转换到VHDL言语算法表示,即自然言语综合; (2)从算法表示转换到存放器传输级(Register Transport Level,RTL),即从行为域到构造域的综合,即行为综

3、合; VHDL综合综合(3) RTL(3) RTL级表示转换到逻辑门级表示转换到逻辑门( (包括触发器包括触发器) )的表示,即的表示,即逻辑综合;逻辑综合; (4) (4) 从逻辑门表示转换到幅员表示从逻辑门表示转换到幅员表示(ASIC(ASIC设计设计) ),或转,或转换到换到FPGAFPGA的配置网表文件,可称为幅员综合或构造综的配置网表文件,可称为幅员综合或构造综合。有了幅员信息就可以把芯片消费出来了。有了对合。有了幅员信息就可以把芯片消费出来了。有了对应的配置文件,就可以使对应的应的配置文件,就可以使对应的FPGAFPGA变成具有专门功变成具有专门功能的电路器件。能的电路器件。第一章

4、 VHDL根底知识w 一个VHDL程序组成:w 实体Entity、构造体Architecture、配置Configuration、包集合Package、库Library5个部分w 一个VHDL程序是对设计单元设计实体的描画数字电子系统数字单元或芯片一个简单门电路VHDL言语把设计单元作为一个设计实体处置;一个设计实体只能独一地对应一个设计单元w 实体 描画设计系统的外部接口信号w 是VHDL程序的根本单元w 实体阐明w 构造体一个VHDL程序包括w 构造体w 描画系统的行为、系统数据的流程或系统组织构造方式w 配置w 从库中选取所需单元来组成系统设计的不同规格的不同版本,使被设计系统的功能发生

5、变化w 包集合w 存放各设计模块能共享的数据类型、常数、子程序w 库w 存放已编译的实体、构造体、包集合、配置。w 用户自行生成的IP库。是专业EDA公司的重 要义务w PLD、ASIC芯片制造商提供的库。如RAM,ROM控制器,Counter计数器等规范模块1.1 VHDL程序根本构造【例1】ENTITY mux21a IS PORT( a, b : IN BIT ; s : IN BIT; y : OUT BIT ) ;END ENTITY mux21a ;ARCHITECTURE one OF mux21a IS BEGIN y = a WHEN s = 0 ELSE b ;END AR

6、CHITECTURE one ;实体构造体多路选择器多路选择器VHDL描画描画图图5-1 mux21a实体实体图图5-2 mux21a构造体构造体 2选选1多路选择器的多路选择器的VHDL描画描画VHDL程序由实体阐明和构造体两部分组成设计实体构造体描画实体阐明描画功能定义行为描画数据流程系统构造VHDL程序实体和构造体关系表示图w 一个电路系统的程序设计有一个实体阐明,可以对应多个构造体,但要求一个独立的VHDL文件只能由一个实体阐明和一个构造体组成,统称实体构造体对w 实体提供该设计的公共信息w 构造体定义了各个模块内的操作特征1. 1. 实体组织的普通格式实体组织的普通格式1.1.1 实

7、体组织和设计方法由实体名、类属表、端口表、实体阐明部分和实体语句部分组成ENTITY e_name ISGENERIC类属表;类属表; PORT ( 端口表端口表;实体阐明部分;实体阐明部分;BEGIN 实体语句部分;实体语句部分;END ENTITY e_name;2、实体阐明实体阐明:描画一些参数的属性参数的属性阐明必需放在端口阐明之前实体阐明部分是实体接口中的公共信息,应放在端口阐明之后在层次化系统设计中,顶层的实体阐明可以是整个系统模块或整个单元模块的输入、输出I/O描画;在一个器件级的设计中底层,实体阐明可以是一个元件或芯片的输入、输出I/O描画;实体阐明在VHDL程序设计中描画一个

8、元件或一个模块与设计系统的其他部分其他元件、模块之间的衔接关系,可以看作是一个电路符号。3、类属阐明w 格式w GENERIC CONSTANT 端口名:IN子类型标识符:=初始值,w 例:GENERICm: TIME:=3nsw 属性阐明和端口阐明用于设计实体和外部环境通讯的对象、通讯格式商定和通讯通道的大小4. 4. 端口阐明端口阐明w 该功能对应于电路图符号的一个引脚w 实体阐明中的每一个I/O信号被称作一个端口,一个端口就是一个数据对象w 端口阐明的组织构造必需有一个名字、一个通讯方式和一个数据类型w 端口方式:阐明数据、信号经过该端口的方向INOUTINOUTBUFFER IN定义的

9、通道为单向只读方式,规定数据只能经过该端口被读入实体中OUT 规定数据只能经过该端口从实体向外流出,或者说可以将实体中的数据向此端口赋值INOUT 输入输出双向端口。从端口内部看,可以对此端口进展赋值,也可以经过此端口读入外部的数据信息;而从端口的外部看,信号既可以从此端口流出,也可以向此端口输入信号,如RAM的数据端口。BUFFER功能与INOUT类似,区别:当需求输入数据时,只允许内部回读输出信号,即允许反响。如计数器设计,可将计数器输出的计数信号回读,以作为下一计数值的初值。该回读信号不是由外部输入,而是由内部产生,向外输出的信号w 出入端口的数据或信号的数据类型出入端口的数据或信号的数

10、据类型TYPESTYPESw 规范逻辑类型:布尔型、位型、位矢量规范逻辑类型:布尔型、位型、位矢量型、整数型型、整数型w 这些规范必需从实体的库中或这些规范必需从实体的库中或USEUSE语句语句中调用中调用5、实体阐明部分实体阐明部分定义的工程是实体接口中的公共信息例ENEITY ram IS PORT(addr: IN bit_Vector(15 DOWNTO 0); Date: OUT bit _Vector(31 DOWNTO 0); Sel: IN bit); TYPE instruction IS ARRAY (1 TO 5) OF Natural; TYPE PROGRAM is

11、array (Natural RANGE) OF IN instruction; USE Work.timing_pkg; PROCEDURE initialization (SIGNAL content:bit_vector(31 DOWNTO 0) IS BEGIN CONTENT1) AFTER some_delay; END PROCEDURE initialization; END ram1.1.2. 1.1.2. 构造体构造体构造体详细指明了该设计实体的行为,构造体详细指明了该设计实体的行为,定义了该设计实体的功能,规定了该实定义了该设计实体的功能,规定了该实体的数据流程,指派了实

12、体中内部元件体的数据流程,指派了实体中内部元件的衔接关系的衔接关系假设把设计实体笼统为一个功能方块图假设把设计实体笼统为一个功能方块图,构造体那么描画这个功能方块图的内,构造体那么描画这个功能方块图的内部实现细节部实现细节描画构造体功能的方法:描画构造体功能的方法:行为描画法行为描画法数据流描画法数据流描画法构造描画法构造描画法格式ARCHITECTURE 构造体名 OF 实体名 IS定义语句BEGIN并行处置语句END构造体命名定义语句对构造体内部运用的信号、常数、数据类型、文件和函数等进展定义w 并性处置语句w 表达构造体内部元件的互连关系w 语句是并发进展的w 1.1.3 库w 用于存放

13、经编译后的设计单元w 经过其目录可查询和调用w VHDL言语中存在的库大体分:IEEE库、STD库、面向ASIC库、WORK库和用户自定义库w 库和库之间是独立的,不能相互嵌套w 库阐明子句格式: LIBRARY 库名预定义库设计库STD库STANDARD隐含阐明TEXTIO用USE阐明WORK库资源库用LIBRARY 翻开IEEE库其他库STD_LOGIC_1164NUMERIC_STDNUMERIC_BITMATHVITAL_TIMINGVITAL_PRIMITIVEVHDL库和程序包1.1.4 程序包w 为何要定义程序包w 信号定义、常数定义、数据类型、COMPONENT语句以及子程序等

14、可以在实体阐明部分或构造体阐明部分加以阐明,而且一个实体阐明部分对上述的信号、数据类型以及元件等的定义在相应的构造体内是可见的,或者说可以在构造体描画中运用。但是,对其他的实体阐明和构造体描画,上述的定义是不可见的,或者说是不可以援用的。为了使一组信号定义、一组数据类型阐明或子程序阐明等对多个设计实体及相应的构造体都成为可见,VHDL提供了程序包构造w 将常用的相关阐明类型阐明、常量阐明、子程序阐明、元件阐明、属性阐明等搜集在一同,一旦编译后存入库中w 经过USE语句调用w 组成:w 程序包阐明:为程序包定义接口,阐明包中的类型、元件、函数和子程序w 程序包体:规定集合包的实践功能,存放阐明中

15、的函数和子程序w 一个程序包阐明只能有独一的一个程序包体与之对应,二者有一样的名字w 格式w PACKAGE 程序包名 ISw 阐明语句w END PACKAGE 程序包名w PACKAGE BODY 程序包名 ISw 阐明语句w END PACKAGE BODY 程序包名程序包阐明程序包体程序包体并非总是必需,但在程序包中包含有子程序阐明,那么必需有。子程序阐明及子程序体不能出如今程序包的阐明中,必需放在程序包体内例1LIREARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;PACKAGE upac IS CONSTANT k: INTEGER :=4; TYPE i

16、nstruction IS (add,sub,adc,inc,srf,slf,mov); SUBTYPE cpu_bus IS STD_LOGIC_VECTOR(k-1 DOWNTO 0);END upac;例2:程序包的VHDL程序书写举例PACKAGE example IS CONSTANT pi:REAL:=3.1415926; CONSTANT defer:INTEGER; FUNCTION mean(a,b,c:REAL) RETURN REAL; COMPONENENT and IS GENERIC (tpd1,tpd2:TIME:=3ns); PORT (in1,in2 :IN

17、BIT; y:OUT BIT); END COMPONENENT and;END example;PACKAGE BODY example IS CONSTANT defer : INTEGER :=5; FUNCTION mean(a,b,c :REAL) RETURN REAL IS BEGIN RETURN (a+b+c)/3.0; END FUNCTION mean;END PACKAGE BODY example要想例2程序包example中的全部内容,包括程序包体的内容全部在本人的设计中可见,利用USE子句访问方式:USE example.all1.1.5 配置w 描画层与层之间的

18、衔接关系和实体与构造之间的衔接关系w 在实体与构造体之间衔接关系的配置中,设计者可以利用配置语句为实体选择不同的构造体,经过仿真进展性能对比,从而获得最正确的设计目的。格式CONFIGURATION 标识符 OF 实体名 IS配置阐明配置指定END配置阐明的格式FOR 构造体名 FOR 例化标号:元件名 USE ENTITY 实体名构造体_标识符 END FOR;END FOR;例LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full-sub IS PORT(x,y,cy_in:IN STD_LOGIC; diff,cy_out: OUT

19、STD_LOGIC); END full_sub; ARCHITECTURE structure OF full_sub IS COMPONENT half_sub PORT (in1,in2:IN STD_LOGIC; diff,b_out: OUT STD-LOGIC); END COMPONENT; COMPONENT or_gate PORT(in1,in2:IN STD_LOGIC: out1: OUT STD_LOGIC); END COMPONENT; SIGNAL a,b,c:STD_LOGIC; BEGIN u1:half_sub PORT MAP(x,y,a,b); u2:

20、half_sub PORT MAP(a, cy_in, diff, c ); u3:or_gate PORT MAP(b,c,cy_out); END structure;CONGIGURATION model OF full_sub IS FOR structure FOR u1,u2:half_sub USE ENTITY work.half_sub(rtl); END FOR; FOR u3:or_gate USE ENTITY work.or_gate(rtl); END FOR;END model;1.2 VHDL常用资源库中的程序包w STD程序包w STANDARD程序包预先在S

21、TD库中编译,该程序包定义了假设干类型、子类型和函数,在设计时自动翻开w TEXTIO程序包w 文件输入/输出程序包,是一个通用程序包1.3 VHDL的词法单元w VHDL保管字大写,其它字母那么小写w VHDL根本词法单元w 注释 “-符号开场w 标识符 信号名、进程名等w 字符 单括号引起来的ASCII字符 -、# w 字符串 双括号引起来的字符序列 “A Stringw 位串 双括号引起来的数字序列w 数字w 十进制表示法1.4 数据对象和类型对象凡是可以被赋予值的客体分四类:常量CONSTANT信号SIGNAL变量VARIABLE文件FILEw 对象阐明的格式w 对象类别 标识符表:子

22、类型标识:=初值;w 例 SIGNAL reset,clk:STD_LOGIC;w VARIABLE x:BIT :=0;常量w 设计者给实体某一个常量名赋予的固定值w 格式w CONSTANT 常量名:数据类型:=表达式;w 常量名一经赋值,在程序运转中不变w 留意范围变量w 部分量w 只用于进程、函数进程和子程序过程w 格式w VARIABLE 变量名:数据类型 约束条件:=表达式w 例 w VARIABLE x:STD_LOGIC:=0;w VARIABLE count:INTEGER RANGE 0 TO 255:=10信号w HDL所特有的一种客体w 电子电路内部硬件实体相互衔接的笼

23、统表示w 可以看成是实体内部(设计器件内部)的端口w 全局名w 运用和定义范围是实体构造体和程序包w 在进程和子程序的顺序语句中不允许定义变量w 在进程中只能将信号列入敏感表,而不能将变量列入w 格式w SIGNAL 信号名:数据类型 约束条件:=表达式文件w 传输大量数据的客体w 包含一些专门数据类型的数值w 仿真测试是,测试的输入鼓励和仿真结果都要用文件来进展VHDL言语的数据类型w VHDL语音程序,不同的数据类型不能直接代入,一样的类型,位长不同也不能代入w EDA工具在编译、综合时报答告类型出错w 规范数据类型w 整型(INTEGER) -231-1至231-1w 实型(REAL)

24、-1.0E+38 至+1.0E+38w 位(BIT) 通常表示一个信号的值w 如:TYPE BIT IS 0,1;位矢量(BIT_VECTOR)布尔量(BOOLEAN)字符(CHARACTER) VHDL言语中编程时用单括号引起来的 a、A 时间类型(TIME)(又称物理类型)范围同整型从 -231-1至231-1普通用于仿真,而不用于逻辑综合错误等级(SEVERITY LEVEL)常用于表示电子系统的任务形状分NOTE,WARAING,ERROR,FAILURE即留意、警告、错误、失败常用来在仿真时给开发者提供电子系统的任务情况自然数(NATURAL)、正整数POSTIVE字符串STRING

25、 数位字符串 X“BFC 文字字符串 “STRING普通用于程序的提示、结果的阐明等场所w 用户自定义的数据类型是用类型定义语句TYPE和子类型定义语句SUBTYPE实现的w 格式:TYPE 数据类型名 数据类型定义;w 或 TYPE 数据类型名 IS 数据类型定义OF 根本数据类型w 枚举类型ENUMERATED:用文字符号来表示每一组实践的二进制数w 综合器在编码过程中将自动将每一枚举元素变成位矢量,位矢量的长度根据实践情况决议w 例 TYPE instruction IS (add,sub,adc,inc,srf,slf);用户自定义的数据类型整型INTEGER实型REAL在VHDL言语

26、规范中已定义,而用户再定义是由于出自设计者的特殊用途格式 TYPE 数据类型名 IS 数据类型定义范围 约束范围数组ARRAY将一样类型的数据集合在一同所构成的一个新的数据类型格式TYPE IS 数据类型名 ARRAY INTEGER 0 TO 9 OF STD_LOGIC;存取类型ACCESS为在客体之间建立联络,或者给新对象分配或释放存储空间仅有变量才可定义为存取类型TYPE line IS ACCESS string; -类型为LINE 的变量,它的值是指向字符串值的指针文件类型FILE在系统环境中定为代表文件义一类客体文件的值是系统文件中值的序列格式 TYPE 文件类型名 IS FIL

27、E 限制;例 TYPE text IS FILE OF string;TYPE input_type IS FILE OF character;记录类型RECORD由同一类型的数据组织在一同而构成的新的数据类型叫数组,而由不类型的数据组织在一同而构成的新的数据类型叫记录记录适用于仿真格式 TYPE 数据类型 IS RECORD 元素名:数据类型名; 元素名:数据类型名; . END RECORD时间类型TIMEVHDL言语规范中已定义,而用户再定义是由于出自设计者的特殊用途,定义特殊的时间量用户定义的子类型w 用户对已定义的数据类型,作一些范围限制而构成一种新的数据类型w 满足原数据类型的一切约束条件,原数据类型称根本数据类型w 用户定义的数据类型和子类型,数据对象间的赋值可以直接进展,不用进展数据格式的转换w 格式 SUBTYPE 子类型名 IS 数据类型名范围 数据类型的转换w 对某一数据类型的变量、信号、常量、文件赋值时,类型一定要一致。w 三种数据转换方法

温馨提示

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

评论

0/150

提交评论