VHDL与数字电路设计全套PPT电子课件教案(完整版)

上传人:jiups****uk12 文档编号:55640963 上传时间:2018-10-03 格式:PPT 页数:222 大小:1.23MB
返回 下载 相关 举报
VHDL与数字电路设计全套PPT电子课件教案(完整版)_第1页
第1页 / 共222页
VHDL与数字电路设计全套PPT电子课件教案(完整版)_第2页
第2页 / 共222页
VHDL与数字电路设计全套PPT电子课件教案(完整版)_第3页
第3页 / 共222页
VHDL与数字电路设计全套PPT电子课件教案(完整版)_第4页
第4页 / 共222页
VHDL与数字电路设计全套PPT电子课件教案(完整版)_第5页
第5页 / 共222页
点击查看更多>>
资源描述

《VHDL与数字电路设计全套PPT电子课件教案(完整版)》由会员分享,可在线阅读,更多相关《VHDL与数字电路设计全套PPT电子课件教案(完整版)(222页珍藏版)》请在金锄头文库上搜索。

1、VHDL与数字电路设计,第1章 概 述,VHDL是VHSIC Hardware Description Language(VHSIC硬件 描述语言)的首字母缩写,而VHSIC是Very High Speed Integrated Circuits(超高速集成电路)的首字母缩写。VHDL语言可以看作是下面几种语言的集成;sequential language +concurrent language +net-list language +timing specification + waveform generation language VHDL,1987年12月正式成为IEEE标准,这个版

2、本是IEEE Std 1076- 1987。1993年的新版本为IEEE Std 1076-1993,是87版本的扩展版本。VHDL可以描述数字硬件器件模型。这种模型指定器件的外部 视图以及一个或多个内部视图。硬件的内部视图指定其功能或结构 ,而外部视图指定器件与其他模型的通信接口。图1-1说明了硬件器 件和相应的器件模型。图1-1 器件与器件模型,数字 系统 系统,外部框架,内部框架,模型,器件,器件模型,器件到器件模型映射是一对多的,也就是说,硬件器件可以有 多个器件模型。图1-2说明有多个器件模型的硬件器件的VHDL框架 结构,每个器件模型代表一个实体。 图1-2 器件的VHDL框架结构

3、实体是实际器件的硬件抽象。每个实体采用一个模型,包括外 部框架结构和一个或多个内部框架结构。同时,一个器件可以用一 个或多个实体来描述。,器件,实体1,实体2,实体N,器件模型1,器件模型2,器件模型N,实际器件,VHDL框架,为了描述实体,VHDL提供了5种不同类型的结构,称为设计单 元: 实体声明(entity) 结构体(architecture) 配置(configuration) 程序包(package) 库(library)实体由实体声明和至少一个结构体组成。 实体声明描述实体的外部视图,例如:输入和输出信号名称。 结构体包括实体的内部描述,例如:一系列相互连接的实体 结构的元件,或

4、是一系列代表实体行为的并行或时序语句。图1-3 表示了一个实体和一种可能的模型。 配置声明用来生成实体配置。从跟实体有关的结构体中选出 一个结构体,与实体进行绑定。同时它也能将所选结构体中的元件 与其它实体进行绑定。一个实体可以有多个不同的配置。,图1-4表示了E1实体的配置。,数字系统的硬件抽象,实体声明,实体,模型,结构体,图1-3 实体及其模型,实体E1,BX,CX,实体E2,实体E3,M1,图1-4 实体E1的配置,E1_A1,E1_A2,E1_A3,E2_A1,E2_A2,E3_A1,E3_A3,E3_A2,结构体E1_A2 、E1_A3和E2_A1中分别有元件BX 、CX和 M1,

5、其它结构体是没有任何层次的纯行为模型。结构体E1_A3绑定 到实体E1,结构体E2_A1绑定到实体E2,结构体E3_A2绑定到实 体E3。还有另一种类型的绑定,即结构体E1_A3中的元件CX绑定 到实体E2,结构体E2_A1中的元件M1绑定到实体E3。 程序包声明集成了一系列相关的声明,包括类型声明、子 类型声明、子程序和元件的声明,这些声明可以被两个或多个设计 单元共享。一个程序包体包括程序包声明中声明的子程序的定义。 库单元可独立存在于一个设计文件中,它存储被编译后的硬 件描述(模型)的部分。图1-5表示了硬件器件的器件模型的VHDL基本结构框图。,库、程序包,配置(Configurati

6、on),实体(Entity),结构体 (architecture),元件、进程或 其它并行结构,图1-5 VHDL基本结构示意图, 模型分析VHDL语言描述的实体可以用分析器和仿真器来验证。分析器 和仿真器是VHDL系统的一部分。验证过程的第一步就是分析。分析器读入包括一个或多个设计 单元的文件,并把它们编译成中间态的形式,存储到特定的设计库- 工作库(WORK)中。在编译过程中,分析器要验证语法,并进行静 态语义检查。图1-6 编译过程,设计单元,VHDL 分析器,中间形式,WORK_LIB,LIB1,IEEE,STD,库,工作库WORK,VHDL设计文件,一个设计单元-实体声明-结构体-配

7、置声明-程序包声明-程序包体, 仿真验证过程的第二步就是仿真。对于层次化实体的仿真,它的所 有底层元件必须是行为级描述。仿真可以在如下两种结构中进行:实体声明和结构体对配置仿真之前需要做以下两步: 细化过程(Elaboration Phase):在这个过程中,实体的层 次结构被扩展,链接,库中的元件被绑定到实体,顶层实体被细化 成由许多行为级构成的网络。同时,需要为信号、变量和常量声明 分配存储空间,为变量和常数赋初值,如果有显式说明的文件,该 文件将会被打开。 初始化过程(Initialization Phase):计算所有显式声明信号的 驱动器和有效值,给隐含信号赋值,此时进程也开始运行直

8、到被挂 起,仿真时间设为0ns。仿真是由事件驱动的。当事件发生的时候,原本要赋给这个信,号的值就赋给这个信号。如果信号的取值发生变化,并且那个信号 出现在进程敏感信号列表中,进程将被运行直到挂起。当异常发生 时,仿真停止。当VHDL系统实现或VHDL语言定义的最大仿真时间 到达时,异常声明发生。,第2章 基本语言要素,VHDL基本语言要素是数据对象、数据类型、各类操作数和运 算操作符。VHDL是一种强类型语言,这意味着只有当操作数和结果的类 型按照一组规则相匹配时,VHDL语言中的操作和赋值才是合法 的。 2.1 标识符标识符的用法规定了VHDL书写符号的一般规则。标识符可以 是常数、变量、信

9、号、端口、子程序或参数的名字。VHDL基本标识符的书写遵守如下规则:a. 有效字符: 英文字母(az, AZ) 、数字(09)和下划线 ( _ )。b. 标识符必须以英文字母开头。,c. 标识符中的英文字母不分大小写。 d. 必须是单一下划线“ _ ” , 且其前后都必须有英文字母或数 字。比如:DRIVE_BUS RAM_addressVHDL语言定义了一系列保留关键字,保留关键字在VHDL语言 中有特定的意义,不能当一般标识符使用;VHDL语言对空格不敏感;每条VHDL语句以一个分号(;)结束;注释前面要加两个连续的连字号,注释一直延续到一行末尾。 比如:- 这是实体声明2.2 VHDL数

10、据对象(DATA OBJECTS)数据对象是指装载指定类型值的容器。对象可以是信号、变 量、常数和文件。一旦一个对象被声明为某一类型,那么在类型声 明所界定的范围内可以对对象进行运算或操作。,(1) 常数 (CONSTANT)常数是一个恒定不变的值,如果作了数据类型和赋值定义,在 程序中就不能再改变。常数说明的一般格式如下: constant 常数名:数据类型 :=表达式;常数的使用规则如下;常数必须在程序包、实体、结构体、块、进程和子程序等设计 单元中对有关项目进行指定。常数的使用范围取决于被定义的位置。定义在程序包中的常数 可由所在的任何实体和结构体中调用;定义在实体或进程内的常数 只能在

11、该实体和进程中使用。定义的常数数据类型必须与表达式的数据类型一致。例如: constant VCC:REAL:=5.0; -定义某一个恒定电源constant DELAY:TIME:=25 ns; -定义某个模块延迟时间constant NO_OF_INPUT:INTEGER;- 没有给常数赋值,称为- 延迟常数,只能出现在程序包声明里,- 而其常数值必须在程序包体里赋值。,(2) 变量 (VARIABLE)变量类型的对象也能够用来存储某种指定类型一个数值。变量 是一个局部量,用于在进程和子程序结构中作局部的数据存储。变 量的赋值立即发生,不存在任何延时。其格式如下:variable 变量名:

12、 数据类型 约束条件 := 表达式 变量的使用规则如下:a.变量不能用于在进程间传递数据。b.变量不能用于硬件连线和存储元件。c.仿真时,变量用于建模。d.综合时,变量充当数据的暂存。变量声明的例子如下;variable a: INTEGER range 0 to 100:=10;variable b: BIT_VECTOR(10 downto 0);variable FOUND,DONE: BOOLEAN;如果没有给变量赋初值,那么其初值为默认值。默认值为,TLEFT,T是对象类型,LEFT是该类型的预定的属性,它表示一 组属于T类型变量数组的最左值。在第二个语句中11个数组元素的 类型为位

13、类型,其最左值为0,因此11个初值均为0,而在第三个 语句中的变量FOUND和DONE的初值被赋为false。(3) 信号 (SIGNAL)信号是描述硬件系统的基本数据对象,是实体间动态数据交换 的手段。如硬件系统运行的并行性;信号传输过程中的惯性延迟特 性;多驱动源的总线行为等都能很好地描述。信号通常在程序包、 结构体和实体声明中使用,是全局量。信号的定义格式: signal 信号名:数据类型 约束条件:=表达式;信号的使用规则如下;“:=” 表示对信号直接赋初值,信号获得初值不产生延时。“ 1, others = U);信号声明与变量声明某些地方相似,但有许多不同之处。它们的主要区别如下;

14、信号的赋值过程与赋值语句分开处理,执行赋值语句不会使 信号立即赋给,必须在进程结束后才能成为当前值;而变量的赋值 语句一旦执行,其值立即被赋予变量。在进程中,信号可以列入敏感表,而变量不能列入敏感表。在仿真过程中,变量使用很少的存储器,而为了调度安排和 处理信号属性,信号需要存储更多的信息。,信号可能需要使用WAIT语句来为执行相同迭代做信号赋值 的同步处理;而变量不存在这个问题。特别要注意:不是所有的对象都用对象声明来产生的,实体端 口的所有对象都是信号对象,但它是默认的,不需要用对象声明来 产生。2.3 VHDL数据类型 (DATA TYPES) VHDL是一种强类型语言,在运算关系与赋值

15、关系中对操作数 的数据类型有严格要求。在数据对象的定义中,必不可少的就是为 定义的数据对象设定数据类型,并且每一个数据对象只能有一个数 据类型的值,该对象的赋值源是相同的数据类型。VHDL提供了许多预定义的数据类型,各种预定义数据类型大 多数体现了硬件电路的不同特性。此外,用户还可以自定义数据类 型。这是VHDL语言的一大特色。,2.3.1 VHDL预定义类型预定义数据类型是VHDL中最常用,最基本的数据类型。在使 用中它自动包含进VHDL的源文件,不必通过USE语句显式调用。(1) 布尔类型 (BOOLEAN)在程序包STANDARD中定义的源代码是:type BOOLEAN is (FALSE,TRUE);布尔数据类型实质是一个枚举数据类型。如定义所示,其取值 只能为FALSE(伪)和TRUE(真)两者之一。综合器用一个二进制位表 示BOOLEAN型变量或信号。布尔量只能通过关系运算符获得,它 不属于数值因而不能用于运算。例如,X小于Y时,在IF语句中的关 系运算表达式(XY)的结果是布尔量TRUE,反之为FALSE。综合 器将其变为1或0信号值,对应于硬件系统中的一根线。(2) 位类型 ( BIT )在STANDARD中定义的源代码是:type BIT is ( 0, 1 );,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号