VHDL库.包.配置.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VHDL库.包.配置.ppt》由会员分享,可在线阅读,更多相关《VHDL库.包.配置.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主要内容:主要内容:程序包和程序包和配置配置 重点内容:重点内容:配置配置第第4章章 VHDL的库、程序包和配置的库、程序包和配置11.库(库(Library)u 库是经编译后的数据的集合,存放包集合定义、实体定义、结构体定义和配置定义。库是经编译后的数据的集合,存放包集合定义、实体定义、结构体定义和配置定义。义、结构体定义和配置定义。义、结构体定义和配置定义。u 库的功能类似于库的功能类似于UNIX和和MS-DOS操操作作系系统统中中的的目目录录,库中存放设计的数据。库中存放设计的数据。u 在在VHDL中,库的说明总放在设计单元的最前面。中,库的说明总放在设计单元的最前面。u 库中的各个设计
2、单元可以用作进行其他设计的资源,一个设计可以使用多个库中的设计单元。库中的各个设计单元可以用作进行其他设计的资源,一个设计可以使用多个库中的设计单元。个设计可以使用多个库中的设计单元。个设计可以使用多个库中的设计单元。第第4章章 VHDL的库、程序包和配置的库、程序包和配置4.1 VHDL的库、程序包和配置的库、程序包和配置2第第4章章 VHDL的库、程序包和配置的库、程序包和配置(1)库的使用)库的使用 首首先先在在设设计计的的开开头头说说明明要要引引用用的的库库,然然后后使使用用use子子句句指明要使用库中的哪一个设计单元,其书写格式为:指明要使用库中的哪一个设计单元,其书写格式为:Lib
3、rary 库名;库名;Use 库名库名.程序包名程序包名.all;其其中中:程程序序包包名名就就是是实实际际设设计计要要使使用用的的库库中中的的设设计计单单元;元;all表示使用程序包中的所有项目。表示使用程序包中的所有项目。3第第4章章 VHDL的库、程序包和配置的库、程序包和配置引用库和程序包中的说明语句有以下引用库和程序包中的说明语句有以下4种形式:种形式:假定设计实体中的信号类型为假定设计实体中的信号类型为std_logic,其类型说明在,其类型说明在ieee库的库的std_logic_1164程序包中定义。程序包中定义。形式一:形式一:Library ieee;Entity and2
4、 is Port(a:in ieee.Std_logic_1164.Std_logic;b:in ieee.Std_logic_1164.Std_logic;c:out ieee.Std_logic_1164.Std_logic);End and2;库说明库说明程序包程序包数据类型数据类型4第第4章章 VHDL的库、程序包和配置的库、程序包和配置形式形式2:Library ieee;Use ieee.all;Entity and2 is Port(a:in Std_logic_1164.Std_logic;b:in Std_logic_1164.Std_logic;c:out Std_logi
5、c_1164.Std_logic);End and2;形式形式3:Library ieee;Use ieee.std_logic_1164.all;Entity and2 is Port(a:in std_logic;b:in std_logic;c:out std_logic);End and2;5第第4章章 VHDL的库、程序包和配置的库、程序包和配置引用库和程序包中的说明语句有以下引用库和程序包中的说明语句有以下4种形式:种形式:假定设计实体中的信号类型为假定设计实体中的信号类型为std_logic,其类型说明在,其类型说明在ieee库的库的std_logic_1164程序包中定义。程序
6、包中定义。形式形式4:Library ieee;Use ieee.std_logic_1164.std_logic;Entity and2 is Port(a:in std_logic;b:in std_logic;c:out std_logic);End and2;6第第4章章 VHDL的库、程序包和配置的库、程序包和配置2.库的种类库的种类 VHDL提供的库可分为两大类:提供的库可分为两大类:u 设计库:对当前设计是永远可见的,不需在程序开头对它们进行说明。一般包括设计库:对当前设计是永远可见的,不需在程序开头对它们进行说明。一般包括对它们进行说明。一般包括对它们进行说明。一般包括std库
7、库和和work库库。u 资源库:用来存放常规元件和常用模块的库,在使用时要进行说明。资源库的内容与厂商直接相关,现在的资源库:用来存放常规元件和常用模块的库,在使用时要进行说明。资源库的内容与厂商直接相关,现在的时时要要进进行行说说明明。资资源源库库的的内内容容与与厂厂商商直直接接相相关关,现现在在的的VHDL厂厂商商和和EDA工工具具厂厂商商都都有有自自己己的的资资源源库库,其其中中含含有有厂厂商商自自定定义义的的程程序序包包。应应用用最最广广泛泛的的资资源源库库是是ieee库库、vital库库和和用户自定义的库用户自定义的库。7第第4章章 VHDL的库、程序包和配置的库、程序包和配置(1)
8、std 库库 是是VHDL的标准库,的标准库,包含程序包包含程序包standard和和textio。程序包程序包standard中定义了中定义了bit、bit_vector、character和和time等数据类型;程序包等数据类型;程序包textio主要包主要包含了对文本文件进行读写操作的过程和函数。含了对文本文件进行读写操作的过程和函数。注注 意:意:n 使用程序包使用程序包textio时要对库和程序包进行说明:时要对库和程序包进行说明:Library std;Use std.textio.all;n 使用程序包使用程序包standard时,由于时,由于VHDL规定规定standard程序
9、包总是可见的,因此不必进行说明。程序包总是可见的,因此不必进行说明。8第第4章章 VHDL的库、程序包和配置的库、程序包和配置(2)work库库n 是是VHDL的的工工作作库库。在在编编译译一一VHDL的的时时候候,默默认认其其保保存存在在work库库中中,因因此此work库库可可以以用用来来临临时时保保存存设设计计人人员员以以前前编编译译过过的的元元件件和和模模块块,也也可可以以通通过过该该库来使用其中的元件和模块。库来使用其中的元件和模块。n VHDL标标准准中中规规定定了了work库库也也是是永永远远可可见见的的,因因此在使用此在使用work库的时候库的时候不需要对它进行说明不需要对它进
10、行说明。9第第4章章 VHDL的库、程序包和配置的库、程序包和配置(3)ieee库库n 是应用最广泛的资源库。主要包括程序包是应用最广泛的资源库。主要包括程序包std_logic_1164、numeric_bit、numeric_std、math_complex和和math_real,其其中中程程序序包包std_logic_1164、numeric_bit、numeric_std是是ieee标标准化组织认可的程序包。准化组织认可的程序包。n 现在有些公司,如现在有些公司,如 synopsys公司提供了程序包公司提供了程序包std_logic_arith、std_logic_signed和和st
11、d_logic_unsigned等等,虽虽没得到没得到ieee标准化组织的认可,但仍然定义在标准化组织的认可,但仍然定义在ieee库中。库中。n 使用使用ieee库时必须进行说明:库时必须进行说明:Library ieee;Use ieee.std_logic_1164.all;10第第4章章 VHDL的库、程序包和配置的库、程序包和配置(4)vital库库p 是应用比较广泛的资源库。主要包括程序包是应用比较广泛的资源库。主要包括程序包vital_timing和和vital_primitives。其中。其中vital_timing 是一个是一个时序程序包;时序程序包;vital_primiti
12、ves 是一个基本元件程序包是一个基本元件程序包。它。它们可以提高们可以提高VHDL门级时序模拟精度。门级时序模拟精度。(5)用户自定义库)用户自定义库p 用来存放设计中共用的一些程序包,这是设计人员自用来存放设计中共用的一些程序包,这是设计人员自己建立的资源库。可以提高设计的灵活性。己建立的资源库。可以提高设计的灵活性。p 在在VHDL的开头要对库进行说明。的开头要对库进行说明。11第第4章章 VHDL的库、程序包和配置的库、程序包和配置2.程序包(程序包(Package)p在在VHDL中中,设设计计的的实实体体和和结结构构体体中中定定义义的的数数据据类类型型、常常量量、子子程程序序说说明明
13、和和元元件件说说明明等等部部分分只只能能在在该该设设计计实实体体中中使用,而对其他设计实体是不可见的。使用,而对其他设计实体是不可见的。p程程序序包包说说明明像像C语语言言中中include语语句句一一样样,用用来来单单纯纯地地罗罗列列VHDL中中所所要要用用到到的的信信号号定定义义、常常量量定定义义、数数据据类类型型、子程序说明和元件说明等,是一个可编译的设计单元。子程序说明和元件说明等,是一个可编译的设计单元。p要要使使用用程程序序包包中中的的某某些些说说明明和和定定义义,要要用用use语语句句说说明明。各各 种种 VHDL编编 译译 系系 统统 都都 含含 有有 多多 个个 标标 准准
14、程程 序序 包包,如如Std_Logic_1164和和Standard程程序序包包。用用户户也也可可已已自自行行设设计计程序包(保存到程序包(保存到WORK下)。下)。12第第4章章 VHDL的库、程序包和配置的库、程序包和配置p 程序包由两个独立的单元组成:程序包说明部分和程程序包由两个独立的单元组成:程序包说明部分和程序包包体部分构成。序包包体部分构成。(1)程序包说明部分的一般格式:)程序包说明部分的一般格式:PACKAGE 程序包名程序包名 IS 说明语句说明语句 END 程序包名程序包名;其中说明语句为:数据类型说明、常量说明、子其中说明语句为:数据类型说明、常量说明、子程序说明、信
15、号定义及元件说明等。程序说明、信号定义及元件说明等。(2)程序包体单元的一般格式:)程序包体单元的一般格式:PACKAGE BODY 程序包名程序包名 IS 包体语句包体语句 END 程序包名程序包名;13第第4章章 VHDL的库、程序包和配置的库、程序包和配置PACKAGE fun ISSUBTYPE segment IS BIT _Vector(0 to 6););TYPE BCD IS RANGE 0 to 9;END fun;ENTITY decoder IS PORT(INPUT:BCD;DRIVE:OUT SEGMENT);END decoder;ARCHITECTURE art
16、OF decoder ISBEGIN WITH INPUT SELECTDRIVE=B“1111110”WHEN 0,B“0110000”WHEN 1,B“1101101”WHEN 2,B“1111001”WHEN 3,B“0110011”WHEN 4,B“1011011”WHEN 5,B“1011111”WHEN 6,B“1110000”WHEN 7,B“1111111”WHEN 8,B“1111011”WHEN 9,B“0000000”WHEN OTHERS;END art;例:在现行例:在现行WORK库中定义程序包并立即使用实例库中定义程序包并立即使用实例14第第4章章 VHDL的库、程
17、序包和配置的库、程序包和配置 几种应用较广的程序包几种应用较广的程序包(1)Standard 预先在预先在std库中编译,主要定义了布尔类型、库中编译,主要定义了布尔类型、bit类型、类型、character类型、出错级别、实数类型、整数类型、时间类类型、出错级别、实数类型、整数类型、时间类型、延迟长度子类型、自然数子类型、正整数子类型、型、延迟长度子类型、自然数子类型、正整数子类型、string类型、类型、bit_vector子类型、文件打开方式类型和文件子类型、文件打开方式类型和文件打开状态类型。对所有设计模块可见。打开状态类型。对所有设计模块可见。(2)textio 预先在预先在std库
18、中编译,定义了库中编译,定义了line类型、类型、text类型、类型、side类类型、操作宽度型、操作宽度width子类型、文件子类型、文件input、文件、文件output、readline过程、对应于不同数据类型的过程、对应于不同数据类型的read过程、过程、writeline过过程和对应于不同数据类型的程和对应于不同数据类型的write过程。过程。对所有设计模块都不对所有设计模块都不可见,使用时要进行说明。可见,使用时要进行说明。15(3)std_logic_1164 预先在预先在ieee库中编译,是使用最广泛的程序包,定义库中编译,是使用最广泛的程序包,定义了设计人员长采用的一些数据类
19、型和函数。了设计人员长采用的一些数据类型和函数。定义了定义了std_ulogic类型、类型、std_ulogic_vector类型、类型、std_logic子类型、子类型、std_logic_vector类型。决断函数类型。决断函数resolved、X01Z子类型、子类型、UX01子类型、子类型、UX01Z子类型、对应于不同数子类型、对应于不同数据类型的据类型的and、nand、or、nor、xor、xnor、not函数、对应函数、对应于不同数据类型的于不同数据类型的To_bot、To_bitvector、To_stdulogic、To_stdlogicvector、To_stdulogicv
20、ector、To_X01、To_X01Z、To_UX01转换函数、上升沿函数转换函数、上升沿函数rising_edge、下降沿函数、下降沿函数falling_edge和对应于不同类型的和对应于不同类型的Is_X函数。对所有设计模函数。对所有设计模块都不可见。使用时要进行说明。块都不可见。使用时要进行说明。第第4章章 VHDL的库、程序包和配置的库、程序包和配置16第第4章章 VHDL的库、程序包和配置的库、程序包和配置(4)numeric_std 已已被被定定义义为为标标准准程程序序包包,定定义义了了用用于于综综合合的的数数据据类类型型和和算算术术函函数数。定定义义了了两两种种数数据据类类型型
21、:unsigned和和signed,其其中中unsigned表表示示无无符符号号的的位位矢矢量量,signed表表示示带带符符号号的的位位矢矢量量,其其最最左左端端是是最最高高位位。还还含含有有所所有有unsigned和和signed类类型型的的重重载载算算术术运运算算,还还含含有有一一些些有有用用的的类类型型转转换换函函数数、时时钟钟检检测测函函数数和和其其他他一一些些使使用用的的函函数。数。(5)numeric_bit 与与程程序序包包numeric_std基基本本相相同同,不不同同之之处处在在于于它它的的基基本元素类型是本元素类型是bit,而不是,而不是std_logic。173.配置(
22、配置(Configuration)u 配置语句用于描述各种设计实体和元件之间的连接关系配置语句用于描述各种设计实体和元件之间的连接关系以及设计实体和结构体之间的连接关系。以及设计实体和结构体之间的连接关系。u 设计者可以利用这种配置语句来选择不同的结构体,使其设计者可以利用这种配置语句来选择不同的结构体,使其与要设计的实体相对应。仿真某一时实体时,可以利用配置来与要设计的实体相对应。仿真某一时实体时,可以利用配置来选择不同的结构体,进行性能对比实验以得到性能最佳的结构选择不同的结构体,进行性能对比实验以得到性能最佳的结构体。体。例如,要设计一个二输入四输出的译码器。如果一种结构例如,要设计一个
23、二输入四输出的译码器。如果一种结构中的基本元件采用反相器和三输入与门,而另一种结构中的基中的基本元件采用反相器和三输入与门,而另一种结构中的基本元件都采用与非门。它们各自的结构体是不一样的,并且放本元件都采用与非门。它们各自的结构体是不一样的,并且放在各自不同的库中。要设计译码器就可以利用配置语句实现对在各自不同的库中。要设计译码器就可以利用配置语句实现对两种不同的结构体的选择。两种不同的结构体的选择。第第4章章 VHDL的库、程序包和配置的库、程序包和配置18(1)默认配置)默认配置p配置语句的基本格式:配置语句的基本格式:Configuration of is 语句说明语句说明;End;p
24、 配置语句根据不同的情况,其说明语句有简有繁。配置语句根据不同的情况,其说明语句有简有繁。最简单的缺省配置格式:最简单的缺省配置格式:Configuration of is For End for;End;(教材中教材中128页例题页例题)第第4章章 VHDL的库、程序包和配置的库、程序包和配置默认配置只能用来默认配置只能用来选择不含有任何块选择不含有任何块语句和元件的结构语句和元件的结构体体19Library ieee;Use ieee.std_logic_1164.all;Entity example is port(a,b:in std_logic;y:out std_logic);En
25、d example;Architecture and2_arc of example isBegin process(a,b)variable comb:std_vector(1 downto 0);Begin comb:=a&b;case comb is when“00”=y y y y y y y y y y y y y y y y y y y y y y y y y=X;end case;end process;End xor2_arc;第第4章章 VHDL的库、程序包和配置的库、程序包和配置22Configuration cfg1 of example is for and2_arc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 配置
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内