第三章-VHDL程序结构与要素课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第三章-VHDL程序结构与要素课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 VHDL 程序结构 要素 课件
- 资源描述:
-
1、第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 第三章第三章 VHDL程序结构与要素程序结构与要素3.1 VHDL程序基本结构3.2 VHDL文字规则3.3 VHDL 基本数据对象与数据类型3.4 VHDL表达式与运算符第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.1 VHDL程序基本结构程序基本结构一个一个VHDL程序的基本单元是设计实体程序的基本单元是设计实体,它可以是一个简单的门电路,也可以是一个复杂的数字系统。它既能作为一个电路的功能模块而单独存在和运行,也可以被其它数字系统所调用,从而成为这个系统的一部分。不管其功能复杂程度,不管其功能复杂程度,VH
2、DL程序的结构基本相同,程序的结构基本相同,一般由库、程序包、实体、结构体及配置语句构成。一般由库、程序包、实体、结构体及配置语句构成。其中实体和结构两部分是必需的,由这二部分即可构实体和结构两部分是必需的,由这二部分即可构成一个简单的成一个简单的VHDL程序。程序。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 为了便于程序的阅读和调试,对VHDL程序设计作如下约定:(1) 语句结构描述中方括号“ ”内的内容为可选内容。(2) 对于VHDL的编译器和综合器来说,程序文字的大小程序文字的大小写是不加区分的写是不加区分的。关键字一般使用大写。(3) 程序中的注释使用双横线“-”。在
3、VHDL程序的任何一行中,双横线双横线“-”后的文字都不参加编译和综合后的文字都不参加编译和综合。 VHDL程序设计约定第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1数据选择器的数据选择器的VHDL程序程序2选1多路选择器是典型的组合电路,以此电路的VHD表述与设计说明相关的VHDL结构、语句表述、数据规则、语法特点。a和b分别为两个数据输入的端口名s为通道选择控制信号输入端的端口名y为输出端的端口名 “mux21a”是此器件的名称第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 SY 0a1b D 1 0 D Y n 位地址选择信号 D 2-1 输 据 据
4、 输 数 数 出 入 n 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 【例【例3-1】 2选选1多路选择器程序多路选择器程序 LIBRARY IEEE; -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 ENTITY mux21;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 【例【例3-1】 2选选1多路选择器程序多路选择器程序ARCHI
5、TECTURE mux21a OF mux21 IS BEGINPROCESS(a,b,s)BEGINIF s=0 THEN y=a; ELSEy3)第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3端口说明端口说明(PORT) 在电路图上,端口对应于元件符号的外部引脚端口对应于元件符号的外部引脚。端口说明语句是对一个实体界面的说明,也是对端口信号名、数据类型和端口模式的描述。语句的一般格式如下: PORT(端口名端口名,端口名端口名:端口模式:端口模式 数据类型数据类型); 或 PORT(端口名端口名 :端口模式:端口模式 数据类型;数据类型; 端口名端口名 :端口模式:端口模
6、式 数据类型数据类型 . );第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 端口名为自己定义的端口名称,端口名为自己定义的端口名称,端口模式说明端口模式说明数据通过该端口的流动方向,数据类型说明通过该数据通过该端口的流动方向,数据类型说明通过该端口的数据类型端口的数据类型如 PORT( a,b : IN STD_LOGIC;s: IN STD_LOGIC;y: OUT STD_LOGIC );第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 端口模式端口模式 方向定义含 义IN输入OUT输出(结构体内不能再使用)INOUT双向(可以输入,也可以输出)BUFFER输出
7、(结构体内可再使用),可以读或写第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 BUFFER与与INOUT的区别在于:的区别在于:INOUT是双向信号,是双向信号,既可以输入,也可以输出,而既可以输入,也可以输出,而BUFFER也是实体的输出信号,也是实体的输出信号,但作输入用时,信号不是由外部驱动,而是从输出反馈得到但作输入用时,信号不是由外部驱动,而是从输出反馈得到,即BUFFER类的信号在输出外部电路的同时,也可以被实体本身的结构体读入,这种类型的信号常用来描述带反馈的逻辑电路,如计数器等。INOUTBUFFERINOUT第第3 3章章 VHDLVHDL程序结构与要素程序结
8、构与要素 3.1.2 结构体结构体结构体是一个实体的组成部分,是对实体功能的结构体是一个实体的组成部分,是对实体功能的具体描述。具体描述。在电路中,如果实体代表一个器件符号,在电路中,如果实体代表一个器件符号,则结构体描述了这个符号的内部行为。则结构体描述了这个符号的内部行为。结构体主要是描述实体的硬件结构、元件之间的结构体主要是描述实体的硬件结构、元件之间的互连关系、实体所完成的逻辑功能以及数据的传输变互连关系、实体所完成的逻辑功能以及数据的传输变换等方面的内容。具体编写结构体时,可以从其中的换等方面的内容。具体编写结构体时,可以从其中的某一方面来描述,也可综合各个方面来进行描述。某一方面来
9、描述,也可综合各个方面来进行描述。结构体不能单独存在,它必须有一个界面说明,结构体不能单独存在,它必须有一个界面说明,即一个实体。即一个实体。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 结构体的一般语句格式结构体的一般语句格式 ARCHITECTURE 结构体名结构体名 OF 实体名实体名 IS 说明语句说明语句 BEGIN 功能描述语句功能描述语句 END ARCHITECTURE 结构体名结构体名;其中,实体名必须是所在设计实体的名字,实体名必须是所在设计实体的名字,而而结构体名可以由设计者自己选择,结构体名可以由设计者自己选择,但当一个实体具但当一个实体具有多个结构体时
10、,结构体的取名不可重复。有多个结构体时,结构体的取名不可重复。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 结构体说明语句结构体中的说明语句是对结构体的功能描述语句结构体中的说明语句是对结构体的功能描述语句中将要用到的信号中将要用到的信号(SIGNAL)、数据类型、数据类型(TYPE)、常、常数数(CONSTANT)、元件、元件(COMPONENT)、函数、函数(FUNCTION)和过程和过程(PROCEDURE)等加以说明的语等加以说明的语句。句。在一个结构体中说明和定义的数据类型、常数、在一个结构体中说明和定义的数据类型、常数、元件、函数和过程只能用于这个结构体中,若希望其
11、元件、函数和过程只能用于这个结构体中,若希望其能用于其他的实体或结构体中,则需要将其作为程序能用于其他的实体或结构体中,则需要将其作为程序包来处理。包来处理。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 ARCHITECTURE behavioral OF example_dairu IS SIGNAL a, b, c, d : BIT ; SIGNAL temp0, temp1 : STD_LOGIC ;BEGIN . . .END ARCHITECTURE behavioral ;结构体的信号定义和端口说明语句相类似结构体的信号定义和端口说明语句相类似,应有应有信号的名称和
12、数据类型的说明信号的名称和数据类型的说明,但不需要定义信号但不需要定义信号的模式,因为它是内部信号。的模式,因为它是内部信号。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 功能描述语句功能描述语句功能描述语句位于功能描述语句位于和和之间;具体描述结之间;具体描述结构体的行为及其连接关系。构体的行为及其连接关系。语句结构可以含有五种不同类型的,以并行方语句结构可以含有五种不同类型的,以并行方式工作。而在式工作。而在每一语句结构的内部可能含有并行运每一语句结构的内部可能含有并行运行的逻辑描述语句或顺序运行的逻辑描述语句。行的逻辑描述语句或顺序运行的逻辑描述语句。第第3 3章章 VH
13、DLVHDL程序结构与要素程序结构与要素 半加器半加器输输 入入输出输出被加数被加数A 加数加数 B和数和数S 进位数进位数C0 00 00 10 11 01 01 11 10 00 01 01 01 01 00 10 1 半加器的真值表中的半加器的真值表中的A和和B分别表示被加数和加数分别表示被加数和加数输入,输入,S为本位和输出,为本位和输出,C为向相邻高位的进位输出。为向相邻高位的进位输出。 BABABASBABABASABC 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 半加器的完整半加器的完整VHDL描述描述例例3-4 其中其中x、y为加数与被加数,为加数与被加数,s
14、为和信号,为和信号,c为进位信号为进位信号ENTITY half_adder IS PORT( x,y : IN BIT; s: OUT BIT; c: OUT BIT);END ENTITY half_adder;ARCHITECTURE dataflow OF half_adder IS BEGIN s = x XOR y; c = x AND y;END ARCHITECTURE dataflow;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.1.3 描述风格描述风格在在VHDL程序中,结构体具体描述了设计实体程序中,结构体具体描述了设计实体的行为和逻辑功能,对于相同
15、的逻辑功能可以有不的行为和逻辑功能,对于相同的逻辑功能可以有不同的描述方式或实现方案。同的描述方式或实现方案。这些不同的描述方式或者说是建模方法,被称这些不同的描述方式或者说是建模方法,被称为描述风格,为描述风格,VHDL中一般有种常用的描述风格:中一般有种常用的描述风格:行为描述、数据流描述、结构描述、混合描述。行为描述、数据流描述、结构描述、混合描述。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 .行为描述行为描述如果程序的结构体只描述了所期望电路的功能或行为,如果程序的结构体只描述了所期望电路的功能或行为,即电路输入、输出间的转换行为,而没有包含任务实现这即电路输入、输出
16、间的转换行为,而没有包含任务实现这些功能的硬件信息,这种描述风格称为行为描述。些功能的硬件信息,这种描述风格称为行为描述。行为描述是一种高层次的描述方式,设计者只需要关行为描述是一种高层次的描述方式,设计者只需要关注设计实体即功能单元正确的行为描述,无需关心硬件电注设计实体即功能单元正确的行为描述,无需关心硬件电路的结构形式,即编程与硬件无关,类似于高级编程语言路的结构形式,即编程与硬件无关,类似于高级编程语言的编程方式。的编程方式。将将VHDL的行为描述语句转换为门级电路由的行为描述语句转换为门级电路由VHDL开开发工具自动完成,是综合器的任务。不同的综合器对于相发工具自动完成,是综合器的任
17、务。不同的综合器对于相同的行为描述,有时会综合出的结果有较大的差别。同的行为描述,有时会综合出的结果有较大的差别。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 选数据选择器的行为描述程序选数据选择器的行为描述程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 ISPORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE behav OF mux21 IS BEGIN PROCESS(a,b,s) BEGIN IF s=0 TH
18、EN y=a; ELSE y=b; END IF; END PROCESS;END ARCHITECTURE behav;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2. 数据流描述数据流描述数据流描述也称为数据流描述也称为RTL(寄存器传输级)描述(寄存器传输级)描述行为,行为,类似于布尔方程类似于布尔方程,它既表示某种行为,又隐,它既表示某种行为,又隐含结构信息,主要是指非结构化的并行描述语句。含结构信息,主要是指非结构化的并行描述语句。这种描述方式主要是反映数据经过一定的逻辑这种描述方式主要是反映数据经过一定的逻辑运算后在输入、输出间的传递,可以清楚地看到数运算后在输入
19、、输出间的传递,可以清楚地看到数据的流动方向、路径和结果。据的流动方向、路径和结果。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1多路选择器数据流描述程序多路选择器数据流描述程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS PORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE dataflow OF mux21 IS BEGIN y=(a AND (NOT s) OR (b AND s);END ARC
20、HITECTURE dataflow;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 3.结构描述结构描述结构描述主要心元件或已完成的功能模块为基结构描述主要心元件或已完成的功能模块为基础,础,应用于采用元件例化的应用于采用元件例化的VHDL程序设计中。通程序设计中。通过描述元件及它们之间的相互连接关系,可以将各过描述元件及它们之间的相互连接关系,可以将各种子模块连接成更为复杂的功能模块或系统。种子模块连接成更为复杂的功能模块或系统。在结构描述中,元件间的连接是通过定义的端在结构描述中,元件间的连接是通过定义的端口界面来实现的,主要描述端口及其互联关系,因口界面来实现的,主要描述
21、端口及其互联关系,因此,结构描述电能提高设计的效率,因为它可以将此,结构描述电能提高设计的效率,因为它可以将已有的设计成果方便的应用新的设计中,且结构清已有的设计成果方便的应用新的设计中,且结构清晰。晰。第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 2选选1多路选择器结构描述程序多路选择器结构描述程序 -二输入与门二输入与门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY and21 IS PORT(i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY and21;ARCHITEC
22、TURE one OF and21 IS BEGIN q=i0 AND i1; END ARCHITECTURE one;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 -二输入或门二输入或门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY or21 IS PORT(i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY or21;ARCHITECTURE one OF or21 IS BEGIN q=i0 OR i1; END ARCHITECTURE one;第第3 3章章 VHD
23、LVHDL程序结构与要素程序结构与要素 -非门非门LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY inv21 IS PORT(i0 : IN STD_LOGIC; q: OUT STD_LOGIC );END ENTITY inv21;ARCHITECTURE one OF inv21 IS BEGIN q= (NOT i0); END ARCHITECTURE one;第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21 IS
24、 PORT(a,b,s : IN STD_LOGIC; y: OUT STD_LOGIC );END ENTITY mux21;ARCHITECTURE struct OF mux21 IS COMPONENT and21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC); END COMPONENT;COMPONENT or21PORT (i0,i1 : IN STD_LOGIC; q: OUT STD_LOGIC);END COMPONENT;COMPONENT inv21 PORT (i0: IN STD_LOGIC; q: OUT STD_LOG
25、IC); END COMPONENT;SIGNAL tmp1,tmp2,tmp3:STD_LOGIC;BEGIN u1: and21 PORT MAP (b, s,tmp1); u2: inv21 PORT MAP(s,tmp2); u3: and21 PORT MAP (a,tmp2,tmp3); u4: or21 PORT MAP(tmp1,tmp3,y);END ARCHITECTURE struct; 第第3 3章章 VHDLVHDL程序结构与要素程序结构与要素 4. 混合描述混合描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY xor
展开阅读全文