您现在的位置:首页 > >

EDA实用技术第4章 硬件描述语言VHDL_图文


第4章 硬件描述语言VHDL 4.1 概述 4.2 VHDL的基本结构 4.3 VHDL的基本知识 4.4 VHDL语言的基本语句 4.5 VHDL设计举例 4.6 VHDL程序设计进阶 4.7 数字系统层次化设计实例 4.8 其他硬件描述语言简介 4.1 概述 4.2 VHDL的基本结构 4.2.1 库(Library) 4.2.2 实体(ENTITY) 4.2.3 结构体 (ARCHITECTURE) 一个完整的VHDL程序(或称为设计实体) 结构如图4.1所示。 一个基本的VHDL程序至少应包括3个基本 组成部分:库、程序包说明(Library、 Use);实体说明(Entity)和对应的结构体 说明(Architecture)。 1.Library 2.USE 3.ENTITY(实体说明) [GENERIC(类属说明)] PORT(端口说明) 4.ARCHITECTURE(结构体说明) Process(进程) 或其他并行结构 5.CONFIGURATION(配置说明) 声明库名 声明程序包名 定义电路设计中的输入/输出 设 计 实 体 描述电路的内部功能 指定与实体对应的结构体 图4.1 VHDL的程序结构图 4.2.1 库(Library) 库是专门存放预编译程序包(Package)的地方, 这样,它们就可以在其他设计中被调用。 程序包(Packages)是数据类型(Data Type) 和函数(Functon)、或是公共元件(Components) 的集合。 库的使用方法是:在每个设计的开头声明选用 的库名,用USE语句声明所选中的逻辑单元。 一经声明,该库中的元件对本设计是可见的。 库可以是VHDL的标准库,也可以是由用户根据 需要自定义的库。 库的一般格式为 Library 库名; USE 库名.逻辑体名; 例如: Library IEEE; --选用IEEE标准库 USE IEEE.std_logic_1164.ALL ; --程序包名 USE IEEE.std_logic_unsigned.ALL; --ALL表示使用库/程 序包中的所有定义 USE IEEE.std_logic_arith.ALL; 在VHDL中,两短横(--)是注释符,其有效范 围是 从注释符开始至行尾结束,所有被注释过 的字符都不参与编译和综合。 黑体字母表示关键字(Keyword),不能用作标 识符。 4.2.2 实体(ENTITY) 实体用来描述设计的输入/输出信号。 实体类似于原理图中的符号(Symbol),并不 描述模块的具体功能。 实体的一般格式为: ENTITY 实体名 IS [GENERIC (类属参数说明);] [PORT(端口说明);] END 实体名; 注意:实体名可由设计者根据标识符的规则自 由命名,但必须与VHDL程序的文件名相同。方括号 中的项表示可以省略。 1.类属参数说明 类属参数说明主要用于指定参数。 类属说明的一般格式为: GENERIC (常数名:数据类型:设定值; ┆ 常数名:数据类型:设定值); 例如:GENERIC (wide:int:=32; --说明宽度为32 tmp:int:=5ns); --说明延迟为5ns 2.端口说明 每一个输入/输出信号称为端口,用于将 外部环境的动态信息传递给实体的具体元件。 对实体的每个端口必须定义,每个端口 表必须确定端口名、端口模式(MODE)及数 据类型(TYPE)。 端口说明的一般格式为: PORT(端口名:端口模式 数据类型; 端口名:端口模式 数据类型); (1)端口名:每个外部引脚的名称,在 实体中必须是唯一的。 (2)端口模式:用来决定信号的流动方 向。 端口模式共有输入(IN)、输出(OUT)、 双向(INOUT)和缓冲(BUFFER)4种类型, 其默认(缺省)模式为输入模式。各模式说 明如表4.1所示。 表4.1 说 明 符 端口模式说明 含 义 输入(IN) 信号进入实体内部,内部的信号不能从该端口输出 输出(OUT) 双向(INOUT) 信号从实体内部输出,不能实体内部反馈 信号既可以进入实体内部,也可以从实体内部输出。 一般用于与CPU的数据总线接口 缓冲(BUFFER) 信号输出到实体外部,同时也在实体内部反馈 注意:OUT与BUFFER都可以定义输出端口, 但它们之间是有区别的。 (3)端口类型 即端口名的数据类型。 在VHDL语言中有多种数据类型,但在逻 辑电路中一般只用到以下几种:BIT和 BIT_VECTOR、STD_LOGIC和STD_LOGIC_VETOR 。 当使用标准逻辑和标准逻辑序列这两种 数据类型时,在程序中必须写出库说明语句 和程序包说明语句。 【例4.1】 全加器的端口如图4.2所示, 则其端口的VHDL语言描述如下。 ENTITY Full_adder IS PORT( a,b,c: IN BIT ; sum,carry: OUT BIT ); Full_adder; END 注意:存盘的文件名为Full_adder.VHD。 图4.2 全加器的端口图 4.2.3 结构体(ARCHITECTURE) 结构体用来描述设计的具体内容。 此时可将实体视为“黑盒子”(Black Box),即只知道其外貌却不明确其内部逻辑。 结构体则具体描述实体的功能以及如何 实现这些功能。结构体是设计描述的核心。 结构体的一般格式为: ARCHITECTURE 结构体名 OF 实体名 IS [定义语句;] BEGIN 功能描述语句; END 结构体名; 结构体定义语句可定义类型、信号、元 件和子程序等信息。 这些信息可理解结构体的内部信息或数 据,只在结构体内部有效。 BEGIN语句指明了功能描述语句的开始。 功能描述语句主要描述实体的硬件结构, 包括元件间的互相联系,实体完成的逻辑功 能、数据传输变换等。 结构体不


热文推荐
友情链接: 大学学习资料 人文社科 经营营销资料 工程资料大全 IT文档 自然科学