第4讲VHDL基本结构.ppt_第1页
第4讲VHDL基本结构.ppt_第2页
第4讲VHDL基本结构.ppt_第3页
第4讲VHDL基本结构.ppt_第4页
第4讲VHDL基本结构.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第4讲 VHDL基本结构,主要内容: VHDL语言介绍 VHDL语言特点 VHDL的基本结构 VHDL语言结构体的描述方式,2,一 概 述,VHDL语言是一种在EDA设计中广泛流行的硬件描述语言,主要用于描述数字系统的结构、行为、功能和接口。 除了含有许多具有硬件特征的语句外,VHDL语言的句法、语言形式和描述风格十分类似于一般的计算机高级语言,是目前硬件描述语言中应用最为广泛的一种。,3,VHDL语言简介,VHDL语言全称是“超高速集成电路硬件描述语言”,它诞生于1982年,由美国国防部于20世纪七、八十年代组织研制开发,其目的首先是用这种语言描述复杂电路,其次是希望这种语言能够成为一种

2、标准语言。,1987年底,VHDL语言被电气和电子工程师协会IEEE和美国国防部确认为标准硬件描述语言,版本为IEEE-1076(简称87版)。此后在电子产业界被广泛地接受,并逐步取代了原有的非标准硬件描述语言(如CUPL、ABEL等)。,4,VHDL语言简介,1993年,IEEE对VHDL进行了修订,增加了一些功能,并从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了VHDL新的版本,编号为IEEE Std1076-1993(简称93版)。,1995年中国国家技术监督局组织编写并出版了CAD通用技术规范,推荐VHDL语言作为我国电子自动化硬件描述语言的国家标准。1996年,IEEE1

3、076.3成为VHDL综合标准。,5,VHDL语言简介,目前,VHDL已经成为一个数字电路和硬件系统描述、综合、优化和布线的IEEE工业标准,已得到众多EDA公司的支持,越来越多的硬件电路设计工具向VHDL标准靠拢,支持VHDL语言。在电子工程领域中,无论ASIC设计人员,还是系统设计人员,都需要学习VHDL语言来提高自己的工作效率。有专家认为,在未来的IT行业中,VHDL语言和Verilog HDL语言将承担几乎全部的数字系统设计任务。,6,二 VHDL语言特点,VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述能力强的特点,支持从系统级到逻辑门级电路所有层次的设计,适合于复杂逻辑电

4、路和系统的设计。,作为高级硬件描述语言,VHDL有如下特点:, 支持从系统级到逻辑门级电路的描述; 具有很强的硬件描述能力; 设计技术齐全、方法灵活、支持广泛; 对设计描述具有相对的独立性; 具有很强的移植能力; 易于共享和复用; 具有丰富的仿真语句和库函数;,7,2 VHDL语言特点,作为高级硬件描述语言,VHDL有如下特点:, 设计结构清晰、易读易懂; 易实现系统的更新和升级; 数据类型丰富、安全性好。,8,三 VHDL语言设计实体的基本结构,用VHDL语言设计的电路无论规模大小,都要使用一个完整的VHDL程序结构,这个完整的程序结构称为设计实体或实体。 设计实体是指能被VHDL语言综合器

5、所接受,并能作为独立的设计单元,以元件的形式存在的VHDL语言程序。 所谓的元件,既可以被高层次的系统调用,成为系统的一部分,也可以作为一个电路的功能模块,独立存在和运行。,9,VHDL语言设计实体的组成,VHDL语言的设计实体都由实体说明(Entity)和结构体(Architecture)两个最基本的部分组成。 实体说明部分用来描述该模块或系统的接口信息,包括端口的数目、方向和类型,其作用相当于传统设计方法中所使用的元件符号。 结构体部分则描述该模块的内部电路,对应于原理图、逻辑方程和模块的输入/输出特性。 一个设计实体可以包含一个或多个结构体,用于描述其的逻辑结构和逻辑功能。,10,【例】

6、 ENTITY mux2 IS PortT(d0,d1,sel: IN BIT; q: OUT BIT); END mux2; ARCHITECTURE rtl OF mux2 IS BEGIN; PROCESS(d0,d1,sel) VARIABLE tmp1,tmp2,tmp3: BIT; BEGIN tmp1:=d0 AND sel; tmp2:=d1 AND (NOT sel); tmp3:=tmp1 OR tmp2; q=tmp3; END PROCESS; END rtl;,11,1. VHDL设计实体的结构,一个完整的VHDL设计实体(设计文件),通常包括: 实体说明(Entit

7、y) 结构体(Architecture) 配置(Configuration) 库(Library)和程序包(Package),12,1. VHDL设计实体的结构,库、程序包,配置,设计实体,实体说明,结构体,进程 或其他并行结构,基本结构:,13,2. 设计实体举例,【例】试用VHDL语言设计一个四选一数据选择器。,数据输入: D3 D2 D1 D0,数据输出: Y,选择控制: S1 S0,14,VHDL程序如下:,LIBRARY IEEE; -IEEE库 USE IEEE.STD_LOGIC_1164.ALL; -程序包 USE IEEE.STD_LOGIC_ARITH.ALL; USE I

8、EEE.STD_LOGIC_UNSIGNED.ALL; ENTITY mux41 IS -定义实体名 PORT ( S1, S0: IN STD_LOGIC; -定义输入信号 D3, D2, D1, D0: IN STD_LOGIC; Y: OUT STD_LOGIC -定义输出信号 ); END mux41; ARCHITECTURE behaveior OF mux41 IS -定义结构体名 BEGIN -逻辑功能描述 Y=D0 WHEN S1=0 AND S0=0 ELSE D1 WHEN S1=0 AND S0=1 ELSE D2 WHEN S1=1 AND S0=0 ELSE D3;

9、 END behaveior;,库,程序包,实体说明,结构体,15,2. 设计实体举例,库:是用来存放已设计好的程序包、数据集合体、元件的仓库,供用户进行VHDL设计时调用。,程序包:用VHDL语言编写的共享文件,定义了将要使用的常数、数据类型、子程序和设计好的电路单元等。,实体说明:定义电路单元的输入、输出引脚信号。以标识符ENTITY开始,以END结束。,结构体:用来描述电路内部结构和逻辑功能。并以标识符ARCHITECTURE开头,以END结尾。,16,VHDL语言的实体说明,实体说明是VHDL程序设计中最基本的组成部分,主要用来描述设计实体的外部接口信号,定义设计单元的输入、输出端口,

10、是设计实体对外的一个通信界面,但它不描述设计的具体功能。,实体说明语句的格式如下:,ENTITY 实体名 IS GENERIC(类属表); PORT(端口表); END ENTITY 实体名;,实体说明语句 类属说明语句 端口说明语句 结束语句,规则: 实体声明语句必须以“ENTITY 实体名 IS”开始,以“END ENTITY 实体名;”结束;, 实体名是设计者给设计实体的命名; 方括号内的语言描述可任选。,17,1.实体说明语句ENTITY,该语句是实体说明的引导语句,用来指明实体说明部分的开始,并定义实体名。,关键字: ENTITY 格 式: ENTITY 实体名 IS,在设计编程时,

11、实体名必须与设计文件名相同,否则无法编译。,18,2. 类属说明语句GENERIC,该语句用来确定设计实体中定义的局部常数,将外部环境的信息参数传递到设计实体,并用类属表的形式指明器件的一些特征。,关键字:GENERIC 格 式:GENERIC (常数名, 常数名: 数据类型: 设定值 ; 常数名, 常数名: 数据类型: 设定值),常数名:是由设计者定义的类属常数名; 数据类型:常取INTEGER或TIME的类型; 设定值:为常数名所代表的数值。,19,2. 类属说明语句GENERIC,例如:,类属表对数据总线的类型和宽度做了定义,类属参数datawith的数据类型为整数,数据宽度为8位。,E

12、NTITY body IS GENERIC(datawidth: INTEGER :=8); ,类属说明必须位于端口说明之前,用于指定设计实体和外部环境通信的参数,并以关键字GENERIC引导一个类属参数表,在表中提供时间参数、总线宽度等信息。,20,例:2输入与门的实体描述 entity pgand2 is generic(risewidth: time:= 1 ns; fallwidth: time:= 1 ns); port(a1: in std_logic; a0: in std_logic; z0: out std_loigc ); end entity and2; 注: 综合器仅支

13、持数据类型为整数的类属值。,21,3. 端口说明语句PORT,该语句是设计实体与外界接口的描述,用来指明实体的输入、输出信号及其模式,包括端口的名称、数据的类型和数据的传递方向(端口模式)。,关键字:PORT 格 式:PORT (端口名,端口名: 端口模式 数据类型 ;端口名,端口名: 端口模式 数据类型),端口名:是赋予每个外部引脚的名称,通常用一个或几个英文字母,或者用英文字母加数字命名。 端口模式:即端口方向,用来定义外部引脚的信号方向,共有五种模式。 数据类型:用来指定每个端口信号的取值类型,共有10种。,22,3. 端口说明语句PORT,端口模式说明:,23,IN,OUT,INOUT

14、,BUFFER,3. 端口说明语句PORT,端口模式的符号 :,24,“OUT”和“BUFFER”都可以定义输出端口,但是它们之间是有区别的,如图所示。,图 OUT和BUFFER的区别 (a) OUT;(b) BUFFER,25,例:一个完整描述(3 bit 计数器),26,3 bit 计数器的等效描述(out 与 buffer 的区别),27,3. 端口说明语句PORT,【例】 编写2输入与非门的实体说明。,设与非门的输入为A和B,输出为Y。,ENTITY nand2 IS GENERIC ( risew: TIME :=1ns; fallw: TIME :=1ns ); PORT ( A:

15、 IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC ); END nand2;,-定义risew为上升沿 -定义fallw为下降沿 -定义A、B和Y为逻辑位,28,VHDL语言的结构体,结构体是设计实体的核心,它具体指明了设计实体的行为、元件及内部连接关系。,结构体所承担的任务 :, 定义结构体内部所使用的各项元素; 通过VHDL提供的语句来描述设计实体所要求的具体行为和功能; 描述各元件之间的连接。,29,VHDL语言的结构体,结构体内部构造的描述层次和描述内容:,结 构 体,结 构 体 说 明,结 构 体 功 能 描 述,常数说明,数据类型说明

16、,信号说明,例化元件说明,子程序说明,块语句,进程语句,信号赋值语句,子程序调用语句,元件例化语句,30,VHDL语言的结构体,结构体由两个基本部分组成: 结构体说明,用来对数据类型、常数、信号、子程序和元件等进行说明。 结构体功能描述,用来描述设计实体的逻辑行为,可以用不同的描述风格来表达设计实体的逻辑功能。,31,结构体的格式:,1. 结构体的基本格式,ARCHITECTURE 结构体名 OF 实体名 IS 结构体说明语句; BEGIN 功能描述语句; END ARCHITECTURE 结构体名;,32,结构体引导语句用来引导结构体的开始,并定义结构体的名称。,2. 结构体引导语句,关键字

17、: ARCHITECTURE 格 式: ARCHITECTURE 结构体名 OF 实体名 IS,结构体名是给予结构体的名称,是该结构体唯一的名字,用来表明该结构体所隶属于哪个实体。,33,用于定义结构体中所用的数据对象和子程序,并对所引用的元件加以说明,如:,3. 结构体说明语句, 信号(SIGNAL) 类型(TYPE) 常数(CONSTANT) 元件(COMPONENT) 函数(FUNCTION) 过程(PROCEDURE),34,4. 功能描述语句,用于描述实体的逻辑功能。,功能描述语句结构可以含有五种不同类型。,35,4. 功能描述语句, 块语句(BLOCK) 块语句结构是由若干个并行执

18、行语句构成的组合体,其功能是将结构体中的并行语句包装在一起,组成一个或多个模块(即子模块)。, 进程语句(PROCESS) 定义顺序语句模块,其内部为顺序语句,将从外部获得的信号值,或内部的运算数据向其他信号进行赋值。, 信号赋值语句(SIGNAL) 用来将设计实体内的处理结果向所定义的信号或界面端口进行赋值。,36,4. 功能描述语句, 子程序调用语句 由过程(PROCEDURE)和函数(FUNCTION)组成,其内部是顺序语句。用来调用过程和函数,并将结果赋值给信号。, 元件例化语句(COMPONENT) 元件例化语句用来调用另一个设计实体所描述的电路。调用时,元件例化语句对其他的设计实体

19、做元件调用说明,并将元件的端口与其他元件、信号或高层设计实体的界面端口进行连接。,37,实体与结构体的关系:,设计实体,结构体1,结构体2,结构体3,结构体n,。 。 。,一个设计实体可有多个结构体,代表实体的多种实现方式。各个结构体的地位相同。用configuration语句指名用于综合或仿真的结构体。,38,四 VHDL语言结构体的描述方式,VHDL语言的结构体可以用不同的语句类型和描述方式来表达电路所期望的逻辑行为,而对于相同的逻辑行为,可以有不同的语句表达方式。,在VHDL语言中,这些描述方式或建模方式称为VHDL语言的描述风格。,常用的描述方式主要有: 行为描述 数据流描述 结构描述

20、 混合描述,39,行为描述依据设计实体的功能或算法对结构体进行描述,不需要给出实现这些行为的硬件结构,只强调电路的行为和功能。 在结构体中,行为描述主要用函数、过程和进程语句,以功能或算法的形式来描述数据的转换和传送。,结构体的行为描述,40,【例3】试用行为描述完成二选一数据选择器的设计。,设数据输入为d0和d1、选择输入为s,输出为y。,程序清单: ENTITY mux21 IS PORT ( d1, d0: IN STD_LOGIC; s: IN STD_LOGIC; y: OUT STD_LOGIC ); END mux21; ARCHITECTURE behavior OF mux2

21、1 IS BEGIN y = d1 WHEN s =1 ELSE d0; END behavior;,41,行为描述类似于高级编程语言,主要是对设计实体的功能或数学模型进行描述,其抽象程度远高于数据流描述和结构描述,其特点如下:, 行为描述具有很高的抽象程度,远高于数据流描述和结构描述; 行为描述只需描述清楚输入与输出的行为,而与它们的结构无关; 描述程序大多采用算术运算、关系运算、惯性延时、传输延时等语句; 结构体中的过程语句属于典型的行为描述。,42,即逻辑描述,它利用VHDL语言中的赋值符和逻辑运算符进行描述,既包含逻辑单元的结构信息,又隐含地表示某种行为。,结构体的数据流描述,例如:

22、y = a NOR b; z = NOT( a XOR b );,/ y等于a与b的或非运算 / z等于a与b的同或运算,这种方式主要采用非结构化的并行语句描述。,43,【例4】将例3中的数据选择器采用数据流描述。,逻辑表达式:,程序清单: ENTITY mux21 IS PORT (d1, d0: IN STD_LOGIC; s: IN STD_LOGIC; y: OUT STD_LOGIC ); END mux21; ARCHITECTURE dataflow OF mux21 IS SIGNAL tmp1, tmp2, tmp3: STD_LOGIC; BEGIN tmp1 = d1 A

23、ND s; tmp2 = d0 AND ( NOT s ); tmp3 = tmp1 OR tmp2; y = tmp3; END dataflow;,44,结构描述是从设计实体的内部结构对结构体进行描述的,并给出该实体所包含的模块或元件的相互连接关系。 这种方式主要采用元件例化(COMPONENT)的形式对设计实体进行描述。可以用不同类型的结构来实现多层次的工程设计,从简单的门电路到复杂的元件来描述整个系统,元件之间的连接通过定义的端口界面来实现。,结构体的结构描述,45,结构描述建模的步骤如下:,结构体的结构描述, 元件说明:描述局部接口。 元件例化:相对于其他元件放置元件。 元件配置:指

24、定元件所有的设计实体。,结构描述用于层次化设计,高层次的设计模块调用低层次的设计模块,或直接用门电路来构成一个复杂的逻辑电路。,46,【例5】将例3中的数据选择器采用结构描述。,程序清单: ENTITY mux21 IS PORT (d1,d0: IN STD_LOGIC; s: IN STD_LOGIC; y: OUT STD_LOGIC ); END mux21; ARCHITECTURE structure OF mux21 IS COMPONENT and2 PORT (a, b: IN STD_LOGIC; c: OUT STD_LOGIC ); END COMPONENT; COMPONENT or2 PORT (a, b: IN STD_LOGIC; c: OUT STD_LOGIC ); END COMPONENT;,47,【例6】将例3中的数据选择器采用结构描述。,程序清单:,COMPONENT not1 PORT (a: IN STD_LOGIC; c: OUT STD_LOG

温馨提示

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

评论

0/150

提交评论