VHDL程序结构介绍_第1页
VHDL程序结构介绍_第2页
VHDL程序结构介绍_第3页
VHDL程序结构介绍_第4页
VHDL程序结构介绍_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、目录123VHDL设计概念VHDL简介VHDL程序结构VHDL简介 VHDL全名Very-High-Speed Integrated Circuit Very-High-Speed Integrated Circuit Hardware Description LanguageHardware Description Language,超高速集成电路硬件描述语言,VHDL语言是一种用于电路设计的高级语言。最初是源于美国国防部1980年开始启动的超高速集成电路计划,在这一计划执行过程中,专家们认识到需要有一种标准的语言来描述集成电路的结构和功能,由此,美国国防部便开发出VHDL设计语言供美军用来

2、提高设计的可靠性和缩减开发周期的设计语言。VHDL设计概念 采用VHDL进行设计的方法为高层设计,即“概念驱动模式”设计。设计人员无需通过门级原理图描述,而是针对设计目标进行功能描述。VHDL并不十分关心一个具体逻辑是靠何种方式实现的,而是把开发者的精力集中到逻辑所实现的功能上。由于高层设计只定义系统的行为特性,因此可以不涉及工艺。 采用VHDL进行设计的具体过程为: 1、以VHDL语言描述设计概念; 2、用VHDL仿真与调试工具分析此概念的“行为”,检查是否满足初始要求。这一过程与普通的编程语言,如C语言的编译、运行、调试是类似的。 3、VHDL设计VHDL综合工具。利用集成电路厂商或EDA

3、厂家提供的被充分验证过的工艺库,以面积、功耗、速度等为目标进行优化,将电路映射成网表,得到门级电路后,还要进行仿真来验证门电路的行为和时序特性。 4、物理设计。得到可供生产的文件,进行延时、故障、热分析等,保证系统的稳定工作,满足设计指标。VHDL程序结构程序结构实体和结构体实体和结构体 是是VHDL设计文件的两个基设计文件的两个基本组成部分本组成部分实体实体说明说明 描述设计实体描述设计实体(黑盒)(黑盒)的外的外部接口信号(即输入部接口信号(即输入/输出信号);输出信号);结构体结构体说明说明 用于描述设计实体用于描述设计实体(黑(黑盒)盒)的内部电路。的内部电路。包集合包集合 存放各设计

4、模块能共享的数存放各设计模块能共享的数据类型、常数、子程序等;据类型、常数、子程序等;库库 用于存放已编译的实体、结构体、用于存放已编译的实体、结构体、包集合和配置。包集合和配置。配置配置 用于从库中选取所需元件安装用于从库中选取所需元件安装到设计单元的实体中。到设计单元的实体中。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT( a , b:IN STD_LOGIC;s:IN STD_LOGIC;y:OUT STD_LOGIC );END mux21;ARCHITECTURE behavior OF mux21 IS

5、BEGIN PROCESS(a,b,s)BEGIN IF s = 0 THEN y=a; ELSE y=b; END IF; END PROCESS;END one;程序包程序包实体说明实体说明结构体结构体实体实体说明说明的一般格式为:的一般格式为: ENTITY 实体名实体名 IS GENERIC类属参数说明类属参数说明; PORT端口端口说明说明; END;ayand2b 实体中的每一个实体中的每一个I/OI/O信号被称为端口,其功信号被称为端口,其功能对应于电路图符号的一个引脚。端口说明则能对应于电路图符号的一个引脚。端口说明则是对一个实体的一组端口的定义,即对基本设是对一个实体的一组端

6、口的定义,即对基本设计实体与外部接口的描述。计实体与外部接口的描述。端口是设计实体和端口是设计实体和外部环境动态通信的通道。实体类似一个外部环境动态通信的通道。实体类似一个“黑黑盒盒”,实体描述了,实体描述了“黑盒黑盒”的输入输出口。的输入输出口。 ENTITY、IS、GENERIC、PORT、END是是VHDL的关键字(保留字)。的关键字(保留字)。 实体名、端口名实体名、端口名(端口说明)(端口说明)等均应为符合等均应为符合VHDL命名规则的标识符。命名规则的标识符。实体说明实体说明类属信息类属信息1 1、作用、作用 为设计实体和其外部环境通信的静态信息提供通道,可以定义端口的大小、实体中

7、元件的数目以及实体的定时特性等。2 2、一般格式、一般格式 GENERIC(CONSTANT 名字表:IN 子类型标识 := 静态表达式, );端口说明端口说明端口说明的一般格式为:端口说明的一般格式为: PORT(端口名(端口名,端口名,端口名:端口模式:端口模式 数据类型数据类型; 端口名端口名,端口名,端口名:端口模式:端口模式 数据类型数据类型);); 例如:例如:PORT ( a,b : IN STD_LOGIC; y : OUT STD_LOGIC);端口名端口模式数据类型端口模式端口模式 用来说明数据传输通过该端口的方向。用来说明数据传输通过该端口的方向。 。端口数据类型端口数据

8、类型 常用的有布尔型(boolean)、位型(bit)、位矢量型(bit-vector)、整数型(integer)、非标准逻辑和标准逻辑类型(Std_ulogic和Std_logic)。 1)boolean:布尔型,可取值“TRUE(真)”或“FALSE(假)”。2)bit:为位逻辑数据类型,信号取值是逻辑值“1”和“0”。3)bit_vector:取值是一组二进制位的值。 非标准逻辑和标准逻辑类型,由IEEE:Std_logic_1164支持,程序包中定义了有关的数据类型,访问该程序包中的项目需要使用LIBRARY子句和USE子句。练习练习练习练习答案答案Library ieee;Use i

9、eee.std_logic_1164.ALL;Entity my_design isPORT ( d: in std_logic_vector(11 downto 0); oe , clk: in: std_logic; ad: inout std_logic_vector(7 downto 0); a: out std_logic_vector(7 downto 0); int: out std_logic; as: buffer std_logic);End my_design; 结构体结构体 结构体是用来描述一个设计的具体结构,建立一个设计中输入和输出之间的关系,即描述实体的功能,对黑盒

10、子的内部进行具体描述。 VHDL允许采用三种描述格式来进行具体的设计构造,行为描述、数据流描述和结构描述。具体描述时,可以是以上三种中的一种或几种的任意组合。一个设计实体可以有多个结构体。结构体一般格式为:结构体一般格式为:ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 定义语句定义语句: 内部信号,常数,数据类型,函数定义内部信号,常数,数据类型,函数定义 BEGIN 并行处理语句并行处理语句; 进程语句进程语句; END 结构体名;结构体名; ARCHITECTURE、OF、IS、BEGIN、END是是VHDL的关键字(保留字)。的关键字(保留字)。 结构体名称由设计

11、者自由命名,是结构体的唯一名称,该结构体名可反结构体名称由设计者自由命名,是结构体的唯一名称,该结构体名可反映结构体的特色。映结构体的特色。 例如:architecture behavior of mux is 用结构体行为命名architecture dataflow of mux is 用结构体的数据流命名architecture structural of mux is 用结构体组织结构命名architecture latch of mux is 用结构体的功能命名 以上命名举例说明,几个结构体都属于设计实体mux,结构体名由设计者自行定义,OF后面的实体名指明了该结构体所对应的是哪个实

12、体。由于一个设计有行为描述、数据流描述和结构描述3种方式,一般建议用behave, dataflow, structure为结构体命名。 用于对结构体内部将要使用的信号、常数、数据类型、元件、函数和过程加以说明。最常见的是对内部流动的信号的定义。但不能定义变量。 实体说明中定义的信号是外部信号,而结构体定义的信号为该结构体的内部信号,它只能用于这个结构体中。 结构体中的信号定义和端口说明一样,应有信号名称和数据类型定义。因为它是内部连接用的信号,因此不需要方向说明。1、行为描述2、结构描述3、数据流描述1 1、行为描述、行为描述描述该设计单元的功能,即该硬件做什么,主要使用函数、过程和进程语句

13、,以算法形式描述数据的变换和传送。即只描述所希望电路的功能或者电路行为(输入输出间转换的行为),而没有指明或涉及实现这些行为的硬件结构。ARCHITECTURE behavior OF mux21 IS BEGIN PROCESS(a,b,s)BEGIN IF s = 0 THEN y=a; ELSE y=b; END IF; END PROCESS;END one;2 2、结构描述、结构描述描述该设计单元的硬件结构,即该硬件是如何构成的。主要使用配置指定语句及元件例化语句描述元件的类型及元件的互联关系。3 3、数据流描述、数据流描述设计库设计库设计设计库(库(LibraryLibrary)

14、1 1、设计、设计库是经编译后的数据的集合,存放包集合库是经编译后的数据的集合,存放包集合定义、实体定义、结构体定义和配置定义。定义、实体定义、结构体定义和配置定义。 2 2、VHDLVHDL中,中,设计设计库的说明总放在设计单元的最前库的说明总放在设计单元的最前面。面。 3 3、设计、设计库中的各个设计单元可以用作进行其他设库中的各个设计单元可以用作进行其他设计的资源,一个设计可以使用多个库中的设计单元。计的资源,一个设计可以使用多个库中的设计单元。设计库的使用设计库的使用 首先在设计的开头说明要引用的库,然后使用首先在设计的开头说明要引用的库,然后使用use子句指子句指明要使用库中的哪一个

15、设计单元,其书写格式为:明要使用库中的哪一个设计单元,其书写格式为: Library 库名;库名; Use 库名库名. 程序包名程序包名. all; 其中:程序包名就是实际设计要使用的库中的设计单元;其中:程序包名就是实际设计要使用的库中的设计单元;all表示使用程序包中的所有项目。表示使用程序包中的所有项目。常用设计库常用设计库1、STD库2、WORK库 WORK库是VHDL语言工作库,用户在项目设计中设计成功、正在验证、和未仿真的中间件都放在WORK库中。 以上两个库对当前设计是永远可见的,不需在程序开头对它们进行说明。即下面的LIBRARY子句隐含存在于任何设计单元之前。 library

16、 std; library work;3、资源库 除STD和WORK库以外所有的库均为资源库。这些资源库的使用必须用LIBRARY显式的说明出来。如常用的资源库IEEE库(Std_logic_1164)和VITAL库。程序包程序包 在VHDL中,设计的实体和结构体中定义的数据类型、常量、子程序说明和元件说明等只能在该设计实体中使用,而对其他设计实体是不可见的。 程序包说明用来单纯地罗列VHDL中所要用到的信号定义、常量定义、数据类型、子程序说明和元件说明等,是一个可编译的设计单元。 要使用程序包中的某些说明和定义,要用use语句说明。各种VHDL编译系统都含有多个标准程序包,如Std_Logi

17、c_1164和Standard程序包。用户也可以自行设计程序包。常用程序包常用程序包1 1、s standardtandard 预先在std库中编译,主要定义了布尔类型、bit类型、character类型、出错级别、实数类型、整数类型、时间类型、延迟长度子类型、自然数子类型、正整数子类型、string类型、bit_vector子类型、文件打开方式类型和文件打开状态类型。对所有设计模块可见对所有设计模块可见。2 2、textiotextio 预先在std库中编译,定义了line类型、text类型、side类型、操作宽度width子类型、文件input、文件output、readline过程、对应于不同数据类型的read过程、writeline过程和对应于不同数据类型的write过程。对所有设计模块都对所有设计模块都不可见,使用时要进行说明不可见,使用时要进行说明。use std.textio.all;use std.textio.all;3 3、S

温馨提示

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

评论

0/150

提交评论