VHDL程序基本结构课件.ppt

上传人(卖家):晟晟文业 文档编号:4371936 上传时间:2022-12-03 格式:PPT 页数:52 大小:187.44KB
下载 相关 举报
VHDL程序基本结构课件.ppt_第1页
第1页 / 共52页
VHDL程序基本结构课件.ppt_第2页
第2页 / 共52页
VHDL程序基本结构课件.ppt_第3页
第3页 / 共52页
VHDL程序基本结构课件.ppt_第4页
第4页 / 共52页
VHDL程序基本结构课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、第第3章章 VHDL的语法结构及编程的语法结构及编程 l3.1 3.1 概述概述 l3.2 VHDL3.2 VHDL程序基本结构程序基本结构 l3.3 VHDL3.3 VHDL语言要素语言要素 l3.4 VHDL3.4 VHDL顺序语句顺序语句 l3.5 VHDL3.5 VHDL并行语句并行语句 l3.6 3.6 子程序子程序(SUBPROGRAM)(SUBPROGRAM)l3.7 VHDL3.7 VHDL描述风格描述风格 VHDL:VHSIC Hardware Description Language.HDL-Hardware Description Language 一种用于描述数字电路的

2、功能或行为的语言。目的是提为电路设计效率,缩一种用于描述数字电路的功能或行为的语言。目的是提为电路设计效率,缩短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。短设计周期,减小设计成本,可在芯片制造前进行有效的仿真和错误检测。优点:优点:HDL设计的电路能获得非常抽象级的描述。如基于设计的电路能获得非常抽象级的描述。如基于RTL(Register Transfer Level)描述的描述的IC,可用于不同的工艺。,可用于不同的工艺。HDL设计的电路,在设计的前期,就可以完成电路的功能级的验证。设计的电路,在设计的前期,就可以完成电路的功能级的验证。HDL设计的电路类似于计算机编

3、程。设计的电路类似于计算机编程。常用的常用的HDL语言:语言:VHDL、Verilog HDL 3.1 3.1 概概 述述.3.1.1 3.1.1 常用硬件描述语言简介常用硬件描述语言简介 常用硬件描述语言有常用硬件描述语言有VHDLVHDL、VerilogVerilog和和ABELABEL语语言。下面从使用方面将三者进行对比。言。下面从使用方面将三者进行对比。(1)(1)逻辑描述层次逻辑描述层次其层次由高到低依次可分为其层次由高到低依次可分为行为级、行为级、RTLRTL级和门级和门电路级。电路级。.VHDLVHDL语言是一种高级描述语言,适用于行为级和语言是一种高级描述语言,适用于行为级和R

4、TLRTL级的描述,最适于描述电路的行为;级的描述,最适于描述电路的行为;VerilogVerilog语言和语言和ABELABEL语言是一种较低级的描述语语言是一种较低级的描述语言,适用于言,适用于RTLRTL级和门电路级的描述,最适于描级和门电路级的描述,最适于描述门级电路。述门级电路。.(2)(2)设计要求:设计要求:VHDLVHDL进行电子系统设计时可以不了解电路的结构细节;进行电子系统设计时可以不了解电路的结构细节;后两者需要设计者了解电路的结构细节后两者需要设计者了解电路的结构细节(3)(3)综合过程:综合过程:任何一种语言源程序,任何一种语言源程序,最终都要转换成门电路级才能最终都

5、要转换成门电路级才能被布线器或适配器所接受。被布线器或适配器所接受。VHDLVHDL语言源程序的综合通语言源程序的综合通常要经过行为级常要经过行为级RTLRTL级级门电路级的转化。而门电路级的转化。而VerilogVerilog语言和语言和ABELABEL语言源程序的综合过程要经过语言源程序的综合过程要经过RTLRTL级级门电路级的转化。门电路级的转化。.(4)(4)支持的支持的EDAEDA工具:工具:v支持支持VHDLVHDL和和VerilogVerilog的的EDAEDA工具很多,但支持工具很多,但支持ABELABEL的综合器仅仅的综合器仅仅DataioDataio一家。一家。(5)(5)

6、国际化程度:国际化程度:vVHDLVHDL和和VerilogVerilog已成为已成为IEEEIEEE标准,而标准,而ABELABEL正朝正朝国际化标准努力。国际化标准努力。.3.1.2 VHDL3.1.2 VHDL的优点的优点v VHDLVHDL的英文全名是的英文全名是V Very-High-Speed Integrated ery-High-Speed Integrated Circuit Circuit H Hardware ardware D Description escription L Languageanguage,诞生于诞生于19821982年。年。v19871987年底,年

7、底,VHDLVHDL被被IEEE(The Institute of IEEE(The Institute of Electrical and Electronics Engineers)Electrical and Electronics Engineers)和美国国防和美国国防部确认为标准硬件描述语言。部确认为标准硬件描述语言。.19931993年,年,IEEEIEEE对对VHDLVHDL进行了修订,公布了新版进行了修订,公布了新版本的本的VHDLVHDL,即,即IEEEIEEE标准的标准的1076-19931076-1993版本。版本。现在,现在,VHDLVHDL和和VerilogVeri

8、log作为作为IEEEIEEE的工业标准硬件的工业标准硬件描述语言,将承担起几乎全部的数字系统设计描述语言,将承担起几乎全部的数字系统设计任务。任务。.(1)(1)与其他的硬件描述语言相比,与其他的硬件描述语言相比,VHDLVHDL具有更强的具有更强的行为描述能力行为描述能力 (2)VHDL (2)VHDL具有丰富的仿真语句和库函数,能查验具有丰富的仿真语句和库函数,能查验设计系统的功能可行性,随时可对系统进行仿真模拟,设计系统的功能可行性,随时可对系统进行仿真模拟,并做出判断。并做出判断。应用应用VHDLVHDL进行工程设计的优点是多方面的,具体如下:进行工程设计的优点是多方面的,具体如下:

9、.(3)(3)用用VHDLVHDL完成一个确定的设计,可以利用完成一个确定的设计,可以利用EDAEDA工具工具把把VHDLVHDL描述设计转变成描述设计转变成门级网表门级网表。降低了开发成本。降低了开发成本。(4)VHDL(4)VHDL对设计的描述具有相对独立性。对设计的描述具有相对独立性。(5)VHDL (5)VHDL具有类属描述语句和子程序调用等功能,具有类属描述语句和子程序调用等功能,在不改变源程序的条件下,只需改变类属参量或函数,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。就能轻易地改变设计的规模和结构。.3.1.3 VHDL3.1.3 VHDL程序

10、设计约定程序设计约定(1)(1)语句结构描述中方括号语句结构描述中方括号“”“”内的内容为可选内内的内容为可选内容。容。(2)(2)对于对于VHDLVHDL的编译器和综合器来说,的编译器和综合器来说,程序文字的大程序文字的大小写是不加区分的。小写是不加区分的。本书一般使用本书一般使用大写大写。(3)(3)程序中的注释使用双横线程序中的注释使用双横线“-”“-”。在。在VHDLVHDL程序的程序的任何一行中,任何一行中,双横线双横线“-”“-”后的文字都不参加编译和后的文字都不参加编译和综合。综合。.(4)(4)为了便于程序的阅读与调试,书写和输入程序为了便于程序的阅读与调试,书写和输入程序时,

11、使用层次缩进格式,同一层次的对齐,时,使用层次缩进格式,同一层次的对齐,低层次的低层次的较高层次的缩进两个字符。较高层次的缩进两个字符。(5)(5)考虑到大多数开发工具要求源程序文件的名字考虑到大多数开发工具要求源程序文件的名字与实体名必须一致,与实体名必须一致,建议建议各个源程序文件的命名均与各个源程序文件的命名均与其实体名一致。其实体名一致。.使用使用VHDLVHDL语言设计一个硬件电路时,至少语言设计一个硬件电路时,至少需要描述三个方面的信息:需要描述三个方面的信息:设计是在什么设计是在什么规范范围内设计的,规范范围内设计的,这就是库、程序包使用说这就是库、程序包使用说明明;所设计的硬件

12、电路与外界的接口信号,所设计的硬件电路与外界的接口信号,这就是设计实体的说明这就是设计实体的说明;所设计的硬件电所设计的硬件电路其内部各组成部分的逻辑关系以及整个系统路其内部各组成部分的逻辑关系以及整个系统的逻辑功能,的逻辑功能,这就是该设计实体对应的结构体这就是该设计实体对应的结构体说明。说明。3.2 VHDL3.2 VHDL程序基本结构程序基本结构.1设计思路设计思路 根据数字电子技术的知识,我们知道,根据数字电子技术的知识,我们知道,74LS00是一个四是一个四2输入与非门,亦即该芯片输入与非门,亦即该芯片由由四个四个2输入与非门组成输入与非门组成,因此我们设计时可,因此我们设计时可先设

13、计一个先设计一个2输入与非门输入与非门(如图如图3.1(a)所示所示),再,再由 四 个由 四 个 2 输 入 与 非 门 构 成 一 个 整 体输 入 与 非 门 构 成 一 个 整 体 MY74LS00(如图如图3.1(b)所示所示)。例:简单例:简单VHDL语言的设计语言的设计.图3.1 MY74LS00的设计过程示意图.2VHDL源程序源程序1)2输入与非门输入与非门NAND2的逻辑描述的逻辑描述-IEEE库及其中程序包的使用说明库及其中程序包的使用说明 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-实体实体NAND2的说明的说明 ENTITY N

14、AND2 IS PORT(A,B:IN STD_LOGIC;Y:OUT STD_LOGIC);END ENTITY NAND2;.-实体实体NAND2的结构体的结构体ART1的说明的说明 ARCHITECTURE ART1 OF NAND2 IS BEGIN YA1,B=B1,Y=Y1);U2:NAND2 PORT MAP(A=A2,B=B2,Y=Y2);U3:NAND2 PORT MAP(A3,B3,Y3);U4:NAND2 PORT MAP(A4,B4,Y4);END ARCHITECTURE ART2;.3 3说明与分析说明与分析 (1)(1)整个设计包括两个设计实体,整个设计包括两个设

15、计实体,分别为分别为NAND2NAND2和和MY74LS00MY74LS00,其中,实体,其中,实体MY74LS00MY74LS00为顶层为顶层实体。实体。(2)(2)实体实体NAND2NAND2定义了定义了2 2输入与非门输入与非门NAND2NAND2的引的引脚信号脚信号A A、B(B(输入输入)和和Y(Y(输出输出),其对应的结构体其对应的结构体ART1ART1描述了输入与输出信号间的逻辑关系,即将描述了输入与输出信号间的逻辑关系,即将输入信号输入信号A A、B B与非后传给输出信号端与非后传给输出信号端Y Y。.(3)(3)实体实体MY74LS00MY74LS00及对应的结构体及对应的结

16、构体ART2ART2描述描述了一个如图所示的四了一个如图所示的四22输入与非门。由其输入与非门。由其结构结构体的描述可以看到,它是由四个体的描述可以看到,它是由四个2 2输入与非门构输入与非门构成的。成的。(4)(4)在在MY74LS00MY74LS00接口逻辑接口逻辑VHDLVHDL描述中,根据描述中,根据图图3.1(b)3.1(b)右侧的右侧的MY74LS00MY74LS00的原理图,的原理图,实体实体MY74LS00MY74LS00定义了引脚的端口信号属性和数据类型。定义了引脚的端口信号属性和数据类型。(5)(5)在结构体在结构体ART2ART2中,中,COMPONENTEND COMP

17、ONENTEND COMPONENT COMPONENT 语句结构对所要调用的语句结构对所要调用的NAND2NAND2元件作元件作了声明。了声明。.(6)实体实体MY74LS00引导的逻辑描述也是由三个引导的逻辑描述也是由三个主要部分构成的,即主要部分构成的,即库、程序包使用说明,实库、程序包使用说明,实体说明和结构体。体说明和结构体。.实体(实体(Entity):描述所设计的系统的外部接口信号,定义):描述所设计的系统的外部接口信号,定义电路设计中所有的输入和输出端口;电路设计中所有的输入和输出端口;结构体结构体(Architecture):描述系统内部的结构和行为;:描述系统内部的结构和行

18、为;包集合包集合(Package):存放各设计模块能共享的数据类型、常:存放各设计模块能共享的数据类型、常数和子程序等;数和子程序等;配置配置(Configuration):指定实体所对应的结构体;:指定实体所对应的结构体;库库(Library):存放已经编译的实体、结构体、包集合和配:存放已经编译的实体、结构体、包集合和配置。置。.LIBRARY IEEE;-库、程序包的说明调用库、程序包的说明调用 USE IEEE.Std_Logic_1164.ALL;ENTITY FreDevider IS -实体声明实体声明PORT(Clock:IN Std_logic;Clkout:OUT Std_

19、logic);END;ARCHITECTURE Behavior OF FreDevider IS -结构体定义结构体定义SIGNAL Clk:Std_Logic;BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock)THEN Clk=NOT Clk;END IF;END PROCESS;Clkout=Clk;END;VHDL的基本设计单元结构:程序包说明、实体说明和结构体说明三部分。的基本设计单元结构:程序包说明、实体说明和结构体说明三部分。.3.2.1 实体(实体(Entity)ENTITY 实体名实体名 IS GENERIC(常数名:数据类型:设定

20、值)(常数名:数据类型:设定值)PORT(端口名端口名1:端口方向:端口方向 端口类型;端口类型;端口名端口名2:端口方向:端口方向 端口类型;端口类型;.端口名端口名n:端口方向:端口方向 端口类型端口类型);END 实体名实体名;实体描述了设计单元的输入输出接口信号或引脚,实体描述了设计单元的输入输出接口信号或引脚,是设计实体经封装后对外的一个通信界面。是设计实体经封装后对外的一个通信界面。.ENTITY FreDevider ISPORT(Clock:IN Std_logic;Clokout:OUT Std_logic);END;实体名实体名最后一条端口声明语句无分号最后一条端口声明语句

21、无分号端口方向端口方向端口类型端口类型端口名端口名 实体名实体名由设计者自由命名,用来表示被设计电路芯片的名称,由设计者自由命名,用来表示被设计电路芯片的名称,但是必须与但是必须与VHDL程序的文件名称相同。程序的文件名称相同。要与文件名一致;要与文件名一致;.2 2类属类属(GENERIC)(GENERIC)说明语句说明语句 类属类属(GENERIC)(GENERIC)参量是参量是端口界面常数端口界面常数,以,以说明的形式放在实体前说明的形式放在实体前 。类属为设计实体和类属为设计实体和其外部环境提供了静态信息通道,常用来规定其外部环境提供了静态信息通道,常用来规定端口的大小,定时特性等端口

22、的大小,定时特性等。设计者可以通过设设计者可以通过设定类属参量的值来改变一个设计实体。定类属参量的值来改变一个设计实体。.例如:例如:GENERIC(wide:integer:=32););-说明宽度为说明宽度为32 GENERIC(tmp:integer:=1ns););-说明延时说明延时1 ns 类属说明类属说明(GENERIC)格式:格式:GENERIC(常数名:数据类型:设定值;(常数名:数据类型:设定值;常数名:数据类型:设定值);常数名:数据类型:设定值);以关键词以关键词GENERIC引导,在表中提供引导,在表中提供时间参数或时间参数或总线宽度总线宽度等信息。主要等信息。主要用于

23、确定设计实体和其外部环境用于确定设计实体和其外部环境通信的参数,传递静态的信息通信的参数,传递静态的信息。.ENTITY MCK IS GENERIC(WIDTH:INTEGER:=15);PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH DOWNTO 0);.GENERICGENERIC语句对实体语句对实体MCKMCK的作为的作为地址总线的端口地址总线的端口ADD_BUSADD_BUS的数据类型和宽度作了定义的数据类型和宽度作了定义,即定义,即定义ADD_BUSADD_BUS为为一个一个1616位的位矢量。位的位矢量。.端口方向:端口方向:IN,OUT,INOU

24、T,BUFFERINOUTINOUTBUFFER“OUT”和和“BUFFER”都可定义输出端口都可定义输出端口;若实体内部需要反馈输出若实体内部需要反馈输出信号,则输出端口必须被信号,则输出端口必须被设置为设置为“BUFFER”,而不,而不能为能为“OUT”。.同方向、同类型的端口可放在同一个说明语句中。同方向、同类型的端口可放在同一个说明语句中。ENTITY Full_adder IS PORT(a,b,c:IN BIT;sum,carry:OUT BIT );END Full_adder;.3.2.2 3.2.2 结构体结构体(ARCHITECTURE)(ARCHITECTURE)结构体用

25、于描述设计实体的内部结构以及实体端结构体用于描述设计实体的内部结构以及实体端口间的逻辑关系口间的逻辑关系。一般地,一个完整的结构体由两个一般地,一个完整的结构体由两个基本层次组成:基本层次组成:对数据类型、常数、信号、子程序和元件等元素对数据类型、常数、信号、子程序和元件等元素的的说明部说明部分。分。描述实体逻辑行为描述实体逻辑行为,以各种不同的描述风格表达的功能描以各种不同的描述风格表达的功能描述语句。述语句。.图图3.5 3.5 结构体构造图结构体构造图.1.1.结构体的一般语句格式结构体的一般语句格式 结构体的语句格式如下:结构体的语句格式如下:ARCHITECTURE ARCHITEC

26、TURE 结构体名结构体名 OFOF 实体名实体名 IS IS 说明语句说明语句;BEGINBEGIN 功能描述语句功能描述语句;END ARCHITECTUREEND ARCHITECTURE 结构体名结构体名;实体名必须是所在设计实体的名字实体名必须是所在设计实体的名字,而结构体名可以由设,而结构体名可以由设计者自己选择,但计者自己选择,但当一个实体具有多个结构体时,结构体的取当一个实体具有多个结构体时,结构体的取名不可重复。名不可重复。.ARCHITECTUREARCHITECTURE bhvbhv OF OF CNT4CNT4 IS IS-说明语句说明语句SIGNAL Q1:STD_L

27、OGIC_VECTOR(3 DOWNTO 0);SIGNAL Q1:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN BEGIN-功能描述语句功能描述语句 PROCESS(CLK)PROCESS(CLK)BEGIN BEGIN IF CLKEVENT AND CLK=1 THEN IF CLKEVENT AND CLK=1 THEN Q1=Q1+1;Q1=Q1+1;END IF;END IF;END PROCESS;END PROCESS;Q1=Q1;Q1=Q1;END ARCHITECTUREEND ARCHITECTURE bhv bhv;bhvbhv:结构体名结构体名

28、 CNT4 CNT4:实体名:实体名.2 2结构体说明语句结构体说明语句 结构体中的说明语句是对结构体的功能描述语句中结构体中的说明语句是对结构体的功能描述语句中将要用到的将要用到的信号信号(SIGNAL)(SIGNAL)、数据类型、数据类型(TYPE)(TYPE)、常数、常数(CONSTANT)(CONSTANT)、元件、元件(COMPONENT)(COMPONENT)、函数、函数(FUNCTION)(FUNCTION)和过和过程程(PROCEDURE)(PROCEDURE)等加以说明的语句。在一个结构体中说等加以说明的语句。在一个结构体中说明和定义的数据类型、常数、元件、函数和过程明和定义

29、的数据类型、常数、元件、函数和过程只能用只能用于这个结构体中于这个结构体中。.3 3功能描述语句结构功能描述语句结构 功能描述语句结构可以含有五种不同类型的、功能描述语句结构可以含有五种不同类型的、以并行方式以并行方式工作的语句结构工作的语句结构。而在其内部可能含有。而在其内部可能含有并行运行或顺序运行的并行运行或顺序运行的逻辑描述语句逻辑描述语句。各语句结构的基本组成和功能分别是:。各语句结构的基本组成和功能分别是:(1)(1)块语句块语句:由一系列并行执行语句构成的组合体。:由一系列并行执行语句构成的组合体。功能:将结构体中的功能:将结构体中的并行语句并行语句组成一个或多个模块。组成一个或

30、多个模块。.(2)(2)进程语句:进程语句:定义定义顺序语句顺序语句模块,将从外部获得的信号值,模块,将从外部获得的信号值,或内部的运算数据向其他的信号进行赋值。或内部的运算数据向其他的信号进行赋值。(3)(3)信号赋值语句:信号赋值语句:将实体内的处理结果向定义的信号或界面将实体内的处理结果向定义的信号或界面端口进行赋值。端口进行赋值。(4)(4)子程序调用语句:子程序调用语句:调用一个已设计好的子程序。调用一个已设计好的子程序。(5)(5)元件例化语句:元件例化语句:对其他的实体作元件调用说明,并将此元对其他的实体作元件调用说明,并将此元件的端口与其他的元件、信号或高层次实体的界面端口进行

31、连件的端口与其他的元件、信号或高层次实体的界面端口进行连接。接。.ARCHITECTURE Behavior OF FreDevider IS -结构体定义结构体定义SIGNAL Clk:Std_Logic;-信号声明信号声明BEGIN PROCESS(Clock)BEGIN IF rising_edge(Clock)THEN Clk=NOT Clk;END IF;END PROCESS;Clkout=Clk;END;功能描述语句功能描述语句进程进程顺序顺序语句语句.3.2.3 配置(配置(CONFIGURATION)配置的基本格式为:配置的基本格式为:CONFIGURATION 配置名配置名

32、 OF 实体名实体名 IS 配置说明配置说明;END 配置名;配置名;配置语句配置语句描述了层与层之间的连接关系,以及实体与结描述了层与层之间的连接关系,以及实体与结构体之间的连接关系。(一个实体(构体之间的连接关系。(一个实体(ENTITY)可以有多个可以有多个结构体)设计者可以利用配置语句选择不同的构造体,使其结构体)设计者可以利用配置语句选择不同的构造体,使其与要设计的实体相对应;在仿真某一个实体时,可以利用配与要设计的实体相对应;在仿真某一个实体时,可以利用配置选择不同的构造体进行性能对比实验,以得到性能最佳的置选择不同的构造体进行性能对比实验,以得到性能最佳的构造体。构造体。.CON

33、FIGURATION 配置名配置名 OF 实体名实体名 IS FOR 选配结构体名选配结构体名 END FOR;END 配置名配置名;配置语句根据不同情况,其说明语句有简有繁。最简单配置语句根据不同情况,其说明语句有简有繁。最简单的缺省配置格式为的缺省配置格式为:例:例:加入了配置的加入了配置的4位等值比较器设计文件位等值比较器设计文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY comp4 IS PORT(a,b:IN STD_LOGIC_VECTOR(3 downto 0);y:OUT STD_LOGIC);END comp4;.-结构体结

34、构体 1:ARCHITECTURE behavior OF comp4 IS BEGIN Comp:PROCESS(a,b)BEGIN IF a=b THEN y=1;ELSE y=0;END IF;END PROCESS comp;END behavior;-结构体结构体 2:ARCHITECTURE dataflow OF comp4 IS BEGIN y=1 WHEN(a=b)ELSE 0;END dataflow;.-结构体结构体 3:ARCHITECTURE structural OF comp4 IS COMPONENT xnor2 PORT(in1,in2:IN STD_LOGI

35、C;Out:OUT STD_LOGIC);END COMPONENT;COMPONENT and4 PORT(in1,in2,in3,in4:IN STD_LOGIC;Out:OUT STD-LOGIC);END COMPONENT;SIGNAL s:STD_LOGIC_VECTOR(0 to 3);BEGIN u0:xnor2 PORT MAP(a(0),b(0),c(0);u1:xnor2 PORT MAP(a(1),b(1),c(1);u2:xnor2 PORT MAP(a(2),b(2),c(2);u3:xnor2 PORT MAP(a(3),b(3),c(3);u4:and4 POR

36、T MAP(s(0),s(1),s(2),s(3),y);END structural;.ys0b0a0b1a1b2a2b3a3s1s2s3abu0u1u3u2u4-配置配置:CONFIGURATION comp4_con OF comp4 IS FOR behavior END FOR;END comp4_con;.l库(库(LIBRARY)库是经编译后的数据的集合。库是用来放置可编译的设计单库是经编译后的数据的集合。库是用来放置可编译的设计单元(它存放包定义、实体定义、构造定义和配置定义)的地方元(它存放包定义、实体定义、构造定义和配置定义)的地方,通过其目录可查询和调用。,通过其目录可查

37、询和调用。VHDL中的库大致可归纳为中的库大致可归纳为5种:种:IEEE库、库、STD库、库、ASIC矢矢量库、量库、WORK库和用户定义库。库和用户定义库。v IEEE库库:常用的资源库。常用的资源库。IEEE库包含经过库包含经过IEEE正式认可正式认可的的STD_LOGIC_1164包集合和某些公司提供的一些包集合,包集合和某些公司提供的一些包集合,如如STD_LOGIC_ARITH(算术运算包集合)等。算术运算包集合)等。vSTD库库:VHDL的标准库。库中存放有称为的标准库。库中存放有称为“standard”的标准的标准包集合,其中定义了多种常用的数据类型,包集合,其中定义了多种常用的

38、数据类型,均不加说明可直接均不加说明可直接引用。引用。3.2.4 库、程序包库、程序包.vWORK库。库。WORK库是现行作业库。库是现行作业库。设计者所描述的设计者所描述的VHDL语句不需要任何说明,将都存放在语句不需要任何说明,将都存放在WORK库中。库中。WORK库对所有设计都是隐含可见的,因此在使用该库时无库对所有设计都是隐含可见的,因此在使用该库时无需进行任何说明。需进行任何说明。vASIC矢量库。矢量库。在在VHDL语言中,为了进行门级仿真,各公司语言中,为了进行门级仿真,各公司可提供面向可提供面向ASIC的逻辑门库。在该库中存放着与逻辑门一一对的逻辑门库。在该库中存放着与逻辑门一

39、一对应的实体。为了使用面向应的实体。为了使用面向ASIC的库,对库进行说明是必要的。的库,对库进行说明是必要的。v用户定义库。用户定义库。用户定义库简称用户库,是由用户自己创建并定用户定义库简称用户库,是由用户自己创建并定义的库。义的库。设设计者可以把自己经常使用的非标准(一般是自己开发计者可以把自己经常使用的非标准(一般是自己开发的)包集合和实体等汇集成在一起定义成一个库的)包集合和实体等汇集成在一起定义成一个库,作为对作为对VHDL标准库的补充。用户定义库在使用时同样要首先进行说明。标准库的补充。用户定义库在使用时同样要首先进行说明。q上述上述5类库中,除了类库中,除了STD库和库和WOR

40、K库之外的其它库库之外的其它库均为均为资源库资源库。资源库是存放常规元件和标准模块的库,资源库是存放常规元件和标准模块的库,使用时使用时需预先说明需预先说明。.IEEEIEEE库库 定义了四个常用的程序包:定义了四个常用的程序包:std_logic_1164(std_logic types&related std_logic_1164(std_logic types&related functions)functions)std_logic_arith(arithmeticstd_logic_arith(arithmetic functions)functions)std_logic_sign

41、ed(signedstd_logic_signed(signed arithmetic arithmetic functions)functions)std_logic_unsigend(arithmeticstd_logic_unsigend(arithmetic functions)functions).库说明语句的语法形式为:库说明语句的语法形式为:LIBRARY 库名;库名;-说明使用什么库说明使用什么库 USE 包集合名;包集合名;-说明使用库中哪一个包集合及包集说明使用库中哪一个包集合及包集 合中的项目(如过程名、函数名等)合中的项目(如过程名、函数名等)包集合名最多为三个层次:包

42、集合名最多为三个层次:即即 library-name.packge-name.item-name LIBRARY 语句和语句和USE语句的作用范围:语句的作用范围:仅限于紧跟起后的实体和结构体。仅限于紧跟起后的实体和结构体。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;.USEUSE语句的使用有两种常用格式:语句的使用有两种常用格式:USE 库名库名.程序包名程序包名.项目名项目名;USE 库名库名.程序包名程序包名.ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.STD_ULOGIC;USE IEEE.STD_LOGIC_

43、1164.RISING_EDGE;USE IEEE.STD_LOGIC_1164.All;注意:注意:std库符合库符合VHDL标准,故在应用中不必如标准,故在应用中不必如ieee库那样以显式表达,即下列语句是不必要的:库那样以显式表达,即下列语句是不必要的:LIBRARY std;USE std.standard.ALL;.LIBRARY IEEE;USE IEEE.Std_Logic_1164.ALL;LIBRARY 库名库名;USE 库名库名.程序包名程序包名.项目名;项目名;调用此程序包中所有的资源调用此程序包中所有的资源LIBRARY IEEE;USE IEEE.Std_Logic_

44、1164.ALL;USE IEEE.Std_Logic_Arith.ALL;USE IEEE.Std_Logic_Unsigned.ALL;.l程序包(程序包(PACKAGE)程序包的语法结构如下:程序包的语法结构如下:PACKAGE 程序包名程序包名 IS 包说明项包说明项;程序包首程序包首 END 程序包名程序包名;PACKAGE BODY 程序包名程序包名 IS 包体内容包体内容;程序程序包体包体 END BODY;程序包程序包是一种使其中的是一种使其中的类型、元件、函数和其它说明类型、元件、函数和其它说明对对其其它设计单元它设计单元可见可见的设计单元。与之相反,构造体中的这些说的设计单元。与之相反,构造体中的这些说明仅仅对其自身可见。明仅仅对其自身可见。程序包包括包首和包体两部分。程序包包括包首和包体两部分。包首包首 用来声明包中的类型用来声明包中的类型、元件、函数和子程序;而、元件、函数和子程序;而包体包体 则用来存放说明中的函数和则用来存放说明中的函数和子程序。不含有子程序和函数的包集合不需要包体。子程序。不含有子程序和函数的包集合不需要包体。.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(VHDL程序基本结构课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|