VHDL库.包.配置.ppt
《VHDL库.包.配置.ppt》由会员分享,可在线阅读,更多相关《VHDL库.包.配置.ppt(50页珍藏版)》请在三一办公上搜索。
1、1,主要内容:程序包和配置 重点内容:配置,第4章 VHDL的库、程序包和配置,2,1.库(Library)库是经编译后的数据的集合,存放包集合定义、实体定义、结构体定义和配置定义。库的功能类似于UNIX和MS-DOS操作系统中的目录,库中存放设计的数据。在VHDL中,库的说明总放在设计单元的最前面。库中的各个设计单元可以用作进行其他设计的资源,一个设计可以使用多个库中的设计单元。,第4章 VHDL的库、程序包和配置,4.1 VHDL的库、程序包和配置,3,第4章 VHDL的库、程序包和配置,(1)库的使用 首先在设计的开头说明要引用的库,然后使用use子句指明要使用库中的哪一个设计单元,其书
2、写格式为:Library 库名;Use 库名.程序包名.all;其中:程序包名就是实际设计要使用的库中的设计单元;all表示使用程序包中的所有项目。,4,第4章 VHDL的库、程序包和配置,引用库和程序包中的说明语句有以下4种形式:假定设计实体中的信号类型为std_logic,其类型说明在ieee库的std_logic_1164程序包中定义。,形式一:Library ieee;Entity and2 is Port(a:in ieee.Std_logic_1164.Std_logic;b:in ieee.Std_logic_1164.Std_logic;c:out ieee.Std_logic
3、_1164.Std_logic);End and2;,库说明,程序包,数据类型,5,第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_logic_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
4、_logic;c:out std_logic);End and2;,6,第4章 VHDL的库、程序包和配置,引用库和程序包中的说明语句有以下4种形式:假定设计实体中的信号类型为std_logic,其类型说明在ieee库的std_logic_1164程序包中定义。,形式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;,7,第4章 VHDL的库、程序包和配置,2.库的种类 VHDL提供的库可分为两大
5、类:设计库:对当前设计是永远可见的,不需在程序开头对它们进行说明。一般包括std库和work库。资源库:用来存放常规元件和常用模块的库,在使用时要进行说明。资源库的内容与厂商直接相关,现在的VHDL厂商和EDA工具厂商都有自己的资源库,其中含有厂商自定义的程序包。应用最广泛的资源库是ieee库、vital库和用户自定义的库。,8,第4章 VHDL的库、程序包和配置,(1)std 库 是VHDL的标准库,包含程序包standard和textio。程序包standard中定义了bit、bit_vector、character和time等数据类型;程序包textio主要包含了对文本文件进行读写操作的
6、过程和函数。注 意:使用程序包textio时要对库和程序包进行说明:Library std;Use std.textio.all;使用程序包standard时,由于VHDL规定standard程序包总是可见的,因此不必进行说明。,9,第4章 VHDL的库、程序包和配置,(2)work库是VHDL的工作库。在编译一VHDL的时候,默认其保存在work库中,因此work库可以用来临时保存设计人员以前编译过的元件和模块,也可以通过该库来使用其中的元件和模块。VHDL标准中规定了work库也是永远可见的,因此在使用work库的时候不需要对它进行说明。,10,第4章 VHDL的库、程序包和配置,(3)i
7、eee库是应用最广泛的资源库。主要包括程序包std_logic_1164、numeric_bit、numeric_std、math_complex和math_real,其中程序包std_logic_1164、numeric_bit、numeric_std是ieee标准化组织认可的程序包。现在有些公司,如synopsys公司提供了程序包std_logic_arith、std_logic_signed和std_logic_unsigned等,虽没得到ieee标准化组织的认可,但仍然定义在ieee库中。使用ieee库时必须进行说明:Library ieee;Use ieee.std_logic_11
8、64.all;,11,第4章 VHDL的库、程序包和配置,(4)vital库是应用比较广泛的资源库。主要包括程序包vital_timing和vital_primitives。其中vital_timing 是一个时序程序包;vital_primitives 是一个基本元件程序包。它们可以提高VHDL门级时序模拟精度。(5)用户自定义库用来存放设计中共用的一些程序包,这是设计人员自己建立的资源库。可以提高设计的灵活性。在VHDL的开头要对库进行说明。,12,第4章 VHDL的库、程序包和配置,2.程序包(Package)在VHDL中,设计的实体和结构体中定义的数据类型、常量、子程序说明和元件说明等
9、部分只能在该设计实体中使用,而对其他设计实体是不可见的。程序包说明像C语言中include语句一样,用来单纯地罗列VHDL中所要用到的信号定义、常量定义、数据类型、子程序说明和元件说明等,是一个可编译的设计单元。要使用程序包中的某些说明和定义,要用use语句说明。各种VHDL编译系统都含有多个标准程序包,如Std_Logic_1164和Standard程序包。用户也可已自行设计程序包(保存到WORK下)。,13,第4章 VHDL的库、程序包和配置,程序包由两个独立的单元组成:程序包说明部分和程序包包体部分构成。(1)程序包说明部分的一般格式:PACKAGE 程序包名 IS 说明语句 END 程
10、序包名;其中说明语句为:数据类型说明、常量说明、子程序说明、信号定义及元件说明等。(2)程序包体单元的一般格式:PACKAGE BODY 程序包名 IS 包体语句 END 程序包名;,14,第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 OF decoder ISBEGIN W
11、ITH INPUT SELECT,DRIVE=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库中定义程序包并立即使用实例,15,第4章 VHDL的库、程序包和配置,几种应用较广的程序包(1)Standard 预先在std库中编
12、译,主要定义了布尔类型、bit类型、character类型、出错级别、实数类型、整数类型、时间类型、延迟长度子类型、自然数子类型、正整数子类型、string类型、bit_vector子类型、文件打开方式类型和文件打开状态类型。对所有设计模块可见。(2)textio 预先在std库中编译,定义了line类型、text类型、side类型、操作宽度width子类型、文件input、文件output、readline过程、对应于不同数据类型的read过程、writeline过程和对应于不同数据类型的write过程。对所有设计模块都不可见,使用时要进行说明。,16,(3)std_logic_1164 预
13、先在ieee库中编译,是使用最广泛的程序包,定义了设计人员长采用的一些数据类型和函数。定义了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_stdulogicvector、To_X01、To_X01Z、To_UX01转换函数、上升沿
14、函数rising_edge、下降沿函数falling_edge和对应于不同类型的Is_X函数。对所有设计模块都不可见。使用时要进行说明。,第4章 VHDL的库、程序包和配置,17,第4章 VHDL的库、程序包和配置,(4)numeric_std 已被定义为标准程序包,定义了用于综合的数据类型和算术函数。定义了两种数据类型:unsigned和signed,其中unsigned表示无符号的位矢量,signed表示带符号的位矢量,其最左端是最高位。还含有所有unsigned和signed类型的重载算术运算,还含有一些有用的类型转换函数、时钟检测函数和其他一些使用的函数。(5)numeric_bit
15、与程序包numeric_std基本相同,不同之处在于它的基本元素类型是bit,而不是std_logic。,18,3.配置(Configuration)配置语句用于描述各种设计实体和元件之间的连接关系以及设计实体和结构体之间的连接关系。设计者可以利用这种配置语句来选择不同的结构体,使其与要设计的实体相对应。仿真某一时实体时,可以利用配置来选择不同的结构体,进行性能对比实验以得到性能最佳的结构体。例如,要设计一个二输入四输出的译码器。如果一种结构中的基本元件采用反相器和三输入与门,而另一种结构中的基本元件都采用与非门。它们各自的结构体是不一样的,并且放在各自不同的库中。要设计译码器就可以利用配置语
16、句实现对两种不同的结构体的选择。,第4章 VHDL的库、程序包和配置,19,(1)默认配置配置语句的基本格式:Configuration of is 语句说明;End;配置语句根据不同的情况,其说明语句有简有繁。最简单的缺省配置格式:Configuration of is For End for;End;(教材中128页例题),第4章 VHDL的库、程序包和配置,默认配置只能用来选择不含有任何块语句和元件的结构体,20,Library ieee;Use ieee.std_logic_1164.all;Entity example is port(a,b:in std_logic;y:out s
17、td_logic);End example;Architecture and2_arc of example isBegin process(a,b)variable comb:std_vector(1 downto 0);Begin comb:=a,第4章 VHDL的库、程序包和配置,Architecture or2_arc of example isBegin process(a,b)variable comb:std_vector(1 downto 0);Begin comb:=a,21,Architecture xor2_arc of example isBegin process(a
18、,b)variable comb:std_vector(1 downto 0);Begin comb:=a,第4章 VHDL的库、程序包和配置,Architecture nor2_arc of example isBegin process(a,b)variable comb:std_vector(1 downto 0);Begin comb:=a,22,Architecture nand2_arc of example isBegin process(a,b)variable comb:std_vector(1 downto 0);Begin comb:=a,第4章 VHDL的库、程序包和配
19、置,23,Configuration cfg1 of example is for and2_arc end for;End cfg1;Configuration cfg2 of example is for or2_arc end for;End cfg2;Configuration cfg3 of example is for nand2_arc end for;End cfg3;Configuration cfg4 of example is for nor2_arc end for;End cfg4;Configuration cfg5 of example is for xor2_a
20、rc end for;End cfg5;,第4章 VHDL的库、程序包和配置,配置语句cfg1将进行逻辑与操作的结构体配置给实体,配置语句cfg2将进行逻辑或操作的结构体配置给实体,24,(2)元件配置,为了避免混淆,需要给出所说明元件属于哪一个设计库里的哪一个设计实体,以及设计实体所对应的是哪一个结构体。,低级的配置实体-结构体对的配置,第4章 VHDL的库、程序包和配置,25,基本书写结构:CONFIGURATION 配置名 OF 实体名 IS FOR 选配结构体名 FOR 元件例化标号名:元件名 USE CONFIGURATION 库名.元件配置名;END FOR;FOR 元件例化标号名
21、:元件名 USE CONFIGURATION 库名.元件配置名;END FOR;END FOR END 配置名;注意:所规定的低级配置一定要在当前配置库中已经存在时才能编译,第4章 VHDL的库、程序包和配置,低级的配置,26,ARCHITECTURE structure OF full_adder IS COMPONENT or2 PORT(a,b:IN std_logic;c:OUT std_logic);END COMPONENT;COMPONENT and2 PORT(a,b:IN std_logic;c:OUT std_logic);END COMPONENT;COMPONENT x
22、or2 PORT(a,b:IN std_logic;c:OUT std_logic);END COMPONENT;SIGNAL tmp1,tmp2,tmp3,:std_logic;BEGIN U1:xor2 PORT MAP(a,b,tmp1);,第4章 VHDL的库、程序包和配置,例题:全加器的实现LIBRARY IEEE;USE IEEE.sti_logic_1164.all;ENTITY full_adder IS PORT(a,b,Cin:IN std_logic;Co,S:OUT std_logic);END full_adder;,27,U2:and2 PORT MAP(tmp1,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 配置

链接地址:https://www.31ppt.com/p-5576400.html