硬件描述语言VHDL介绍综述

上传人:我** 文档编号:117855277 上传时间:2019-12-11 格式:PPT 页数:116 大小:575KB
返回 下载 相关 举报
硬件描述语言VHDL介绍综述_第1页
第1页 / 共116页
硬件描述语言VHDL介绍综述_第2页
第2页 / 共116页
硬件描述语言VHDL介绍综述_第3页
第3页 / 共116页
硬件描述语言VHDL介绍综述_第4页
第4页 / 共116页
硬件描述语言VHDL介绍综述_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《硬件描述语言VHDL介绍综述》由会员分享,可在线阅读,更多相关《硬件描述语言VHDL介绍综述(116页珍藏版)》请在金锄头文库上搜索。

1、硬件描述语言VHDL介绍 宁波大学信息学院 邬杨波 2008年11月 1 VHDL语言概述 2 VHDL的基本结构 3 VHDL的基本语法和常用语句 4 常用逻辑电路的VHDL设计 5 有限状态机的VHDL描述 1 VHDL语言概述 VHDL的英文全称是: VHSIC(Very High Speed Integrated Circuit) HARDWARE Descriptiong Language, 意思就是超高速集成电路硬件描述语言。 1.1 VHDL的定义和功能 实现系统的文档化描述 支持系统仿真 支持系统综合 1.2 VHDL的发展概况 n早在1980年,因为美国军事工业需要描述电子系

2、统 的方法,美国国防部开始进行VHDL的开发。 IBM, Texas Instruments也参与了该项目。 n1987年,由IEEE(Institute of Electrical and Electronics Engineers)将VHDL制定为标准,称 为IEEE 1076-1987。 n第二个增强版本是在1993年制定的,称为IEEE 1076 -1993 n新增的标准包(packages)增加了数据类型和时序 的定义: n IEEE 1164 (data types) n IEEE 1076.3 (numeric) n IEEE 1076.4 (timing) 1.3 VHDL语言

3、的特点 设计的灵活性 VHDL具有功能强大的语言结构,即可以实现门级单元的 描述,也可以用简洁明确的代码描述复杂控制逻辑的设计。 同时,VHDL具有多层次的设计描述功能,支持设计库和可重 复使用的元件生成。 硬件无关性 VHDL在产生一个设计时并不需要预先选定一个用来实 现设计的器件,也即系统设计与硬件结构无关。对于同一个 设计描述,可以采用多种不同器件来实现其功能。这样就方 便了工艺的转换,也不会因工艺变化而使描述过时。 可移植性 作为HDL的第一个国际标准,VHDL具有很强的可移植 性,也就是VHDL设计的描述可以被不同的工具支持。我们 可以将一个VHDL设计从一个模拟工具移植到另一个模拟

4、工 具,从一个综合工具移植到另一个综合工具。这也就意味着 同一个设计可以在不同的设计项目中采用,提高了设计的利 用率和系统设计的效率。 1.4 应用VHDL的设计流程 VHDL具有极强的描述能力,能支持系统行为级、寄存 器传输级和逻辑门电路级三个不同层次的设计,能够完成从 上层到下层(从抽象到具体)逐层描述的结构化设计思想。 面向可编程逻辑器件的VHDL设计电路主要的工作过 程是: (1)VHDL代码编写。 (2) 用文本编辑器输入设计的源文件。 (2) 编译源文件。 用编译工具将文本文件编译成代码文件,并检查语法错误。 (3) 功能仿真(前仿真)。 应用VHDL仿真器对设计文件进行仿真,此时

5、的仿真没有延 时只是对设计进行逻辑功能的验证。 (4) 逻辑综合、优化和布局布线。 逻辑综合 所谓综合就是用软件工具将设计的VHDL描述转化为底层的 电路网表或一组逻辑方程的过程。 逻辑综合软件会生成.edf(edif)的EDA工业标准文件。 布局布线 所谓布局布线就是用综合后生成的.edf文件,再根据CPLD (或FPGA)器件的容量和结构,用自动布局布线工具进 行电路设计。 首先根据网表文件内容和器件结构确定逻辑门的位置, 然后再根据网表提供的门连接关系,把各个门的输入输出连接起 来,类似于设计PCB(印刷电路板)时的布局布线工作。 最后生成一个供器件编程(或配置)的文件。 根据布局布线后

6、所生产文件,对设计进行仿真。这是与实 际器件工作情况基本相同的仿真,用来确定设计在经过布局 、布线之后,是否仍能满足设计要求。 (5) 时序仿真(后仿真)。 (6) 编程下载。 2 VHDL的基本结构 2.1 VHDL的组成 一个VHDL设计可以由若干个VHDL文件构成,每个文 件中可以包含一个或一个以上的设计实体。 设计实体是构成一个设计的最重要的基本单元,其主 要包含如下三个部分: 库和程序包(Package); 实体(Entity); 结构体(Architecture)。 库是程序包的集合,不同的库有不同类型的程序包。 程序包用来定义结构体和实体中要用到的数据类型、元件 和子程序等 。

7、实体定义了一个设计模块的输入和输出端口,即模块(或 元件)的外部特征,描述了一个元件或一个模块与其他部分 (模块)之间的连接关系,可以看作是输入输出信号和芯片 管脚信息。 一个设计可以有多个实体,只有处于最高层的实体称为顶层实体, EDA工具的编译和仿真都是对顶层实体进行的。处于低层的各个实体都 可作为单个元件,被高层实体调用。 结构体主要用来说明元件内部的具体结构,即对元件内部 的逻辑功能进行说明,是程序设计的核心部分。 1 库和程序包部分 2 library ieee;打开ieee库库 3 use ieee.std_logic_1164.all; 调调用ieee库库中 STD_LOGIC_

8、1164程序包 4 实体部分 5 ENTITY mux21 IS实实体名为为 mux21 6 PORT ( s :IN std_logic;端口说 说明 7 x1,x2 :IN std_logic;定义义端口类类型和数据类类型 8 y :OUT std_ logic此处处无 ;号 9 ); 10 END mux21;实实体结结束 11 结构体部分 12 ARCHITECTURE behave OF mux21 IS结结构体名为为behave 13 BEGIN 14 y = x1 WHEN s = 0 ELSE x2;逻辑逻辑 功能描述 15 END behave;结结构体结结束 2.2 VHD

9、L的实体 实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被 称为端口模式,同时实体中还定义他们的数据类型。 ENTITY 实体名 IS PORT ( 信号名 ,信号名:端口模式 数据类类型; 信号名 ,信号名:端口模式 数据类类型 ); END实体名; 实体名代表该电路的元件名称,所以最好根据电路功能来定 义。 例如:对于2选1数据选择器,实体名可以定义为mux21,这样容易分析程序。 信号名 ,信号名 :端口模式 数据类型; 端口说明用来对实体中输入和输出端口进行描述。 实体与外界交流的信息必须通过端口输入或输出,端口的功能相 当于元件的一个管脚。 实体中的每一个输入、输出信号

10、都被称为一个端口,一个端口就 是一个数据对象。 端口信号名是设计者为实体的每一个对外通道所取的名字。 端口模式是指这些通道上的信号传输方向,共有四种传输方 向。 端口模式说说 明 IN单单向输输入模式,将信号信息通过该过该 端口读读入实实体 OUT单单向输输出模式,信号通过该过该 端口从实实体输输出 INOUT 双向输输入输输出模式,既可以输输入端口,还还可以输输出端 口 BUFFER 缓缓冲输输出模式,具有回读读功能的输输出模式,可以输输入 端口,也可以输输出端口 数据类型指的是端口信号的类型。 表6-2 常用端口数据类型 关键键字说说明 BIT 二进进制位类类型,取值值只能是0、1,由 S

11、TANDARD程序包定义义 BIT_VECTOR 位向量类类型,表示一组组二进进制数,常用来描述 地址总线总线 、数据总线总线 等端口 STD_LOGIC 工业标业标 准的逻辑类逻辑类 型,取值值0、1、X、Z等, 由STD_LOGIC_1164程序包定义义 STD_LOGIC_VECTOR 工业标业标 准的逻辑逻辑 向量类类型,是STD_LOGIC的 组组合 INTEGER 整数类类型,可用作循环环的指针针或常数,通常不 用作I/O信号 2.3 VHDL的结构体 结构体是VHDL设计中最主要部分,它描述设计实体的 内部结构或行为,定义了设计实体具体的功能。 结构体用三种方式对设计实体进行描述

12、,分别是: u 行为描述(基本设计单元的数学模型描述) u 寄存器传输描述(数据流描述) u 结构描述(逻辑元件连接描述) 一个完整的、能被综合实现的VHDL设计必须有一个 实体和对应的结构体,一个实体中可以有一个结构体,也 可以有多个结构体,但各个结构体不应有重名,结构体之 间没有顺序上的差别。 结构体的格式如下: ARCHITECTURE 结构体名 OF 实体名 IS 结构体说明部分; BEGIN 功能描述语句; END 结构体名; 结构体名是对本结构体的命名,它是该结构体的唯一名称,OF后 面紧跟的实体名表明了该结构体所对应的是哪一个实体,用IS来结束结 构体的命名,结构体的名称可以由设

13、计人员自由命名。 结构体说明部分用来对结构体内部所使用的信号、常数、元件、函 数和过程加以说明。 功能描述语句具体描述结构体(电路)的行为(功能)及其连接关系。 2.4 VHDL的库和程序包 1、VHDL的库 库是专门用于存放预先编译好的程序包的地方,其功 能相当于共享资源的仓库,所有已完成的设计资源只有存 入某个“库”内才可以被其他实体共享。 库语句格式: LIBRARY 库名 ; 例如在上述数据选择器设计中开始部分有: library ieee; use ieee.std_logic_1164.all; 2、常用的库有IEEE库、STD库和WORK库。 (1)IEEE库:是VHDL设计中最

14、常用的资源库 包含程序包有: STD_LOGIC_1164 STD_LOGIC_UNSIGNED STD_LOGIC_SIGNED NUMERIC_BIT NUMERIC_STD 其中最重要和最常用的是STD_LOGIC_1164程序包。 (2)STD库:是VHDL的标准库,VHDL在编译过程中会 自动调用这个库,所以使用时不需要用语句另外说明。 (3)WORK库:是用户在进行VHDL设计时的现行工作库 ,用户的设计成果将自动保存在这个库中,是用户自己的仓 库,同STD库一样,使用该库不需要任何说明。该库默认就 设置在用户工作目录下。 3、VHDL的程序包 程序包是用VHDL语言编写的一段程序

15、,可以供其他设计单元调用 和共享,相当于公用的“工具箱”,各种数据类型、子程序等一旦放入了 程序包,就成为共享的“工具”。 调用程序包的通用模式为: USE 库名.程序包名.ALL; 常用预定义程序包有以下四个: (1)STD_LOGIC_1164程序包 (2)STD_LOGIC_ARITH程序包 (1)STD_LOGIC_1164程序包 STD_LOGIC_1164程序包定义了一些数据类型、子类型和函数。 数据类型包括: STD_ULOGIC STD_ULOGIC _VECTOR STD_LOGIC STD_LOGIC _VECTOR 用的最多最广的是STD_LOGIC和STD_LOGIC_VECTOR数据类型。 该程序包预先在IEEE库中编译,是IEEE库中最常用的标准程序包, 其数据类型能够满足工业标准,非常适合CPLD(或FPGA)器件的 逻辑设计结构。 (2)STD_LOGIC_ARITH程序包 该程序包是美国Synopsys公司的程序包,预先编译在IEEE库中。 主要是在STD_LOGIC_1164程序包的基础上扩展了 UNSIGNED

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

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