收藏 分销(赏)

VHDL库.包.配置PPT.ppt

上传人:精*** 文档编号:10231534 上传时间:2025-04-28 格式:PPT 页数:50 大小:1.03MB
下载 相关 举报
VHDL库.包.配置PPT.ppt_第1页
第1页 / 共50页
VHDL库.包.配置PPT.ppt_第2页
第2页 / 共50页
VHDL库.包.配置PPT.ppt_第3页
第3页 / 共50页
VHDL库.包.配置PPT.ppt_第4页
第4页 / 共50页
VHDL库.包.配置PPT.ppt_第5页
第5页 / 共50页
点击查看更多>>
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,4,章,VHDL,的库程序包和配置,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,主要内容:,程序包和,配置,重点内容:,配置,第,4,章,VHDL,的库、程序包和配置,1,1.,库(,Library,),库是经编译后的数据的集合,存放包集合定义、实体定义、结构体定义和配置定义。,库的功能类似于,UNIX,和,MS-DOS,操作系统中的目录,库中存放设计的数据。,在,VHDL,中,库的说明总放在设计单元的最前面。,库中的各个设计单元可以用作进行其他设计的资源,一个设计可以使用多个库中

2、的设计单元。,第,4,章,VHDL,的库、程序包和配置,4.1 VHDL,的库、程序包和配置,2,第,4,章,VHDL,的库、程序包和配置,(,1,)库的使用,首先在设计的开头说明要引用的库,然后使用,use,子句指明要使用库中的哪一个设计单元,其书写格式为:,Library,库名;,Use,库名,.,程序包名,.all,;,其中:程序包名就是实际设计要使用的库中的设计单元;,all,表示使用程序包中的所有项目。,3,第,4,章,VHDL,的库、程序包和配置,引用库和程序包中的说明语句有以下,4,种形式:,假定设计实体中的信号类型为,std_logic,,其类型说明在,ieee,库的,std_

3、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_1164,.Std_logic);,End and2;,库说明,程序包,数据类型,4,第,4,章,VHDL,的库、程序包和配置,形式,2,:,Library ieee;,Use ieee.all;,Entity and2 is,Port(a:in,Std_logic_1164,.Std_

4、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_logic;,c:out std_logic);,End and2;,5,第,4,章,VHDL,的库、程序包和配置,引用库和程序包中的说明语句有以下,4,种形式:,假定设计实体中的信号类型为,std_logic,,其类型说明在,ieee,库的,s

5、td_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;,6,第,4,章,VHDL,的库、程序包和配置,2.,库的种类,VHDL,提供的库可分为两大类:,设计库:,对当前设计是永远可见的,不需在程序开头对它们进行说明。一般包括,std,库,和,work,库,。,资源库:,用来存放常规元件和常用模块的库,在使用时要进行说明。资源库的内容与厂商

6、直接相关,现在的,VHDL,厂商和,EDA,工具厂商都有自己的资源库,其中含有厂商自定义的程序包。应用最广泛的资源库是,ieee,库、,vital,库,和,用户自定义的库,。,7,第,4,章,VHDL,的库、程序包和配置,(1)std 库,是VHDL的标准库,,包含程序包standard和textio。,程序包standard中定义了bit、bit_vector、character和time等数据类型;程序包textio主要包含了对文本文件进行读写操作的过程和函数。,注,意:,使用程序包textio时要对库和程序包进行说明:,Library std;,Use std.textio.all;,使

7、用程序包standard时,由于VHDL规定,standard程序包总是可见的,因此不必进行说明。,8,第,4,章,VHDL,的库、程序包和配置,(2)work库,是VHDL的工作库。在编译一VHDL的时候,默认其保存在work库中,因此work库可以用来临时保存设计人员以前编译过的元件和模块,也可以通过该库来使用其中的元件和模块。,VHDL标准中规定了work库也是永远可见的,因此在使用work库的时候,不需要对它进行说明,。,9,第,4,章,VHDL,的库、程序包和配置,(3)ieee库,是应用最广泛的资源库。主要包括程序包std_logic_1164、numeric_bit、numeri

8、c_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_1164.all;,10,第,4,章,VHDL,的库、程序包和配置,(4)vital库,是应用比较广泛的

9、资源库。主要包括程序包vital_timing和vital_primitives。其中vital_timing 是一个时序程序包;,vital_primitives 是一个基本元件程序包,。它们可以提高VHDL门级时序模拟精度。,(5)用户自定义库,用来存放设计中共用的一些程序包,这是设计人员自己建立的资源库。可以提高设计的灵活性。,在VHDL的开头要对库进行说明。,11,第,4,章,VHDL,的库、程序包和配置,2.,程序包(,Package,),在,VHDL,中,设计的实体和结构体中定义的数据类型、常量、子程序说明和元件说明等部分只能在该设计实体中使用,而对其他设计实体是不可见的。,程序包

10、说明像,C,语言中,include,语句一样,用来单纯地罗列,VHDL,中所要用到的信号定义、常量定义、数据类型、子程序说明和元件说明等,是一个可编译的设计单元。,要使用程序包中的某些说明和定义,要用,use,语句说明。各种,VHDL,编译系统都含有多个标准程序包,如,Std_Logic_1164,和,Standard,程序包。用户也可已自行设计程序包(保存到,WORK,下)。,12,第,4,章,VHDL,的库、程序包和配置,程序包由两个独立的单元组成:程序包说明部分和程序包包体部分构成。,(1)程序包说明部分的一般格式:,PACKAGE,程序包名,IS,说明语句,END 程序包名;,其中说明

11、语句为:数据类型说明、常量说明、子程序说明、信号定义及元件说明等。,(2)程序包体单元的一般格式:,PACKAGE BODY,程序包名,IS,包体语句,END 程序包名;,13,第,4,章,VHDL,的库、程序包和配置,PACKAGE fun IS,SUBTYPE 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

12、 IS,BEGIN,WITH 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库中定义程序包并立即使用实例,14,第,4,章,VHDL,的库、程

13、序包和配置,几种应用较广的程序包,(,1,),Standard,预先在,std,库中编译,主要定义了布尔类型、,bit,类型、,character,类型、出错级别、实数类型、整数类型、时间类型、延迟长度子类型、自然数子类型、正整数子类型、,string,类型、,bit_vector,子类型、文件打开方式类型和文件打开状态类型。对所有设计模块可见。,(,2,),textio,预先在,std,库中编译,定义了,line,类型、,text,类型、,side,类型、操作宽度,width,子类型、文件,input,、文件,output,、,readline,过程、对应于不同数据类型的,read,过程、,

14、writeline,过程和对应于不同数据类型的,write,过程。,对所有设计模块都不可见,使用时要进行说明。,15,(,3,),std_logic_1164,预先在,ieee,库中编译,是使用最广泛的程序包,定义了设计人员长采用的一些数据类型和函数。,定义了,std_ulogic,类型、,std_ulogic_vector,类型、,std_logic,子类型、,std_logic_vector,类型。决断函数,resolved,、,X01Z,子类型、,UX01,子类型、,UX01Z,子类型、对应于不同数据类型的,and,、,nand,、,or,、,nor,、,xor,、,xnor,、,not

15、函数、对应于不同数据类型的,To_bot,、,To_bitvector,、,To_stdulogic,、,To_stdlogicvector,、,To_stdulogicvector,、,To_X01,、,To_X01Z,、,To_UX01,转换函数、上升沿函数,rising_edge,、下降沿函数,falling_edge,和对应于不同类型的,Is_X,函数。对所有设计模块都不可见。使用时要进行说明。,第,4,章,VHDL,的库、程序包和配置,16,第,4,章,VHDL,的库、程序包和配置,(,4,),numeric_std,已被定义为标准程序包,定义了用于综合的数据类型和算术函数。定义了

16、两种数据类型:,unsigned,和,signed,,其中,unsigned,表示无符号的位矢量,,signed,表示带符号的位矢量,其最左端是最高位。还含有所有,unsigned,和,signed,类型的重载算术运算,还含有一些有用的类型转换函数、时钟检测函数和其他一些使用的函数。,(,5,),numeric_bit,与程序包,numeric_std,基本相同,不同之处在于它的基本元素类型是,bit,,而不是,std_logic,。,17,3.,配置(,Configuration,),配置语句用于描述各种设计实体和元件之间的连接关系以及设计实体和结构体之间的连接关系。,设计者可以利用这种配置

17、语句来选择不同的结构体,使其与要设计的实体相对应。仿真某一时实体时,可以利用配置来选择不同的结构体,进行性能对比实验以得到性能最佳的结构体。,例如,要设计一个二输入四输出的译码器。如果一种结构中的基本元件采用反相器和三输入与门,而另一种结构中的基本元件都采用与非门。它们各自的结构体是不一样的,并且放在各自不同的库中。要设计译码器就可以利用配置语句实现对两种不同的结构体的选择。,第,4,章,VHDL,的库、程序包和配置,18,(,1,)默认配置,配置语句的基本格式:,Configuration of is,语句说明,;,End,;,配置语句根据不同的情况,其说明语句有简有繁。,最简单的缺省配置格

18、式:,Configuration of is,For,End for,;,End,;,(,教材中,128,页例题,),第,4,章,VHDL,的库、程序包和配置,默认配置只能用来选择不含有任何块语句和元件的结构体,19,Library ieee,;,Use ieee.std_logic_1164.all;,Entity example is,port(a,b:in std_logic;y:out std_logic);,End example;,Architecture and2_arc of example is,Begin,process(a,b),variable comb:std_vec

19、tor(1 downto 0);,Begin,comb:=a,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,的库、程序包和配置,22,Configuration cfg1 of example is,for and2_arc,end for;,End cfg1;,Configuration cfg2 of example is,for or2_arc,end for;,End cfg2;,Conf

20、iguration 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_arc,end for;,End cfg5;,第,4,章,VHDL,的库、程序包和配置,配置语句,cfg1,将进行逻辑与操作的结构体配置给实体,配置语句,cfg2,将进行逻辑或操作的结构体配置给实体,23,(,2,)元件配置,为了避免混淆,需要给出所说明元件属于

21、哪一个设计库里的哪一个设计实体,以及设计实体所对应的是哪一个结构体。,低级的配置,实体,-,结构体对的配置,第,4,章,VHDL,的库、程序包和配置,24,基本书写结构:,CONFIGURATION,配置名,OF,实体名,IS,FOR,选配结构体名,FOR,元件例化标号名:元件名,USE CONFIGURATION,库名,.,元件配置名;,END FOR,;,FOR,元件例化标号名:元件名,USE CONFIGURATION,库名,.,元件配置名;,END FOR,;,END FOR,END,配置名;,注意:所规定的低级配置一定要在当前配置库中已经存在时才能编译,第,4,章,VHDL,的库、程

22、序包和配置,低级的配置,25,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 xor2,PORT(a,b:IN std_logic;,c:OUT std_logic);,END COMPONENT;,SIGNAL tmp1,tmp2,tmp3,:std_logic;

23、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;,26,U2:and2 PORT MAP(tmp1,Cin,tmp2);,U3:xor2 PORT MAP(tmp1,Cin,S);,U4:and2 PORT MAP(a,b.tmp3);,U5:or2 PORT M

24、AP(tmp2,tmp3,Co);,END sturcture;,CONFIGURATION full_adder_cfg OF full_adder IS,FOR structure,FOR U1,U3:xor2 USE CONFIGURATION work.xor2_cfg;,END FOR;,FOR U2,U4:and2 USE CONFIGURATION work.and2_cfg;,END FOR;,FOR U5:or2 USE CONFIGURATION work.or2_cfg;,END FOR;,END FOR;,End full_adder_cfg;,第,4,章,VHDL,的

25、库、程序包和配置,元件例化标名号为,U1,和,U3,所指定的是元件库,work,中的设计实体,xor2,其结构体为低级配置,xor2_cfg,指定的结构体。,27,实体,-,结构体对的配置,基本书写结构:,CONFIGURATION,配置名,OF,实体名,IS FOR,选配结构体名,FOR,元件调用标号名:元件名,USE ENTITY,库名,.,实体名(结构体名);,END FOR,;,FOR,元件调用标号名:元件名,USE ENTITY,库名,.,实体名(结构体名);,END FOR,;,END FOREND,配置名;,注意:所规定的元件实体和其对应的结构体一定要在当前的配置库中已经存在,否

26、则编译会出错。,就是在配置的过程中为每一个元件直接指定实体的结构体,而不是指定该实体的低级配置。,第,4,章,VHDL,的库、程序包和配置,28,CONFIGURATION full_adder_cfg OF full_adder IS,FOR stucture,FOR U1,U3:xor2 USE ENTITY work.xor2(xor2_arc);,END FOR;,FOR U2,U4:and2 USE ENTITY work.and2(and2_arc);,END FOR;,FOR U5:or2 USE ENTITY work.or2(or2_arc);,END FOR;,END FO

27、R;,END full_adder_cfg;,第,4,章,VHDL,的库、程序包和配置,29,(,3,)块的配置,要指明元件所在的块,块配置在结构体和元件之间分出另一层次。若对某个含有块语句的结构体进行文件配置时,必须指明是哪一个块的配置。,与元件配置相同,块配置也有两种不同的形式:低级的配置形式和实体,-,结构体对的配置形式。,第,4,章,VHDL,的库、程序包和配置,30,低级块配置格式:,CONFIGURATION,配置名,OF,实体名,IS FOR,选配结构体名,FOR,块名,FOR,元件调用标号名:元件名,USE CONFIGURATION,库名,.,元件配置名;,END FOR,;

28、END FOR FOR,块名,FOR,元件调用标号名:元件名,USE CONFIGURATION,库名,.,元件配置名;,END FOR,;,END FOR,;,END FOR,;,END,配置名;,第,4,章,VHDL,的库、程序包和配置,31,实体,-,结构体对的块配置格式:,CONFIGURATION,配置名,OF,实体名,IS FOR,选配结构体名,FOR,块名,FOR,元件调用标号名:元件名,USE ENTITY,库名,.,实体名(结构体名);,END FOR,;,END FOR,;,FOR,块名,FOR,元件调用标号名:元件名,USE ENTITY,库名,.,实体名(结构体名);

29、END FOR,;,END FOR,;,END FOR,;,END,配置名;,第,4,章,VHDL,的库、程序包和配置,32,BEGIN,sum:BLOCK,BEGIN,U1:xor2 PORT MAP(a,b,tmp1);,U2:xor2 PORT MAP(tmp1,Cin,S);,END BLOCK sum;,carry:BLOCK,BEGIN,U3:or2 PORT MAP(tmp2,tmp3,Co);,middle:BLCOK,BEGIN,U4:and2 PORT MAP(tmp1,Cin,tmp2);,U5:and2 PORT MAP(a,b,tmp3);,END BLOCK mi

30、ddle;,END BLOCK carry;,END structure;,第,4,章,VHDL,的库、程序包和配置,33,FOR structure,FOR sum,FOR all:xor2 USE CONFIGURATION work.xor2_cfg;,END FOR;,END FOR;,FOR carry,FOR U3:or2 USE CONFIGURATION work.or2_cfg;,END FOR;,FOR middle,FOR all:and2 USE CONFIGURATION work.and2_cfg;,END FOR;,END FOR;,END FOR;,END FO

31、R;,END full_adder_cfg;,第,4,章,VHDL,的库、程序包和配置,CONFIGURATION full_adder_cfg OF full_adder IS,34,(,4,)结构体的配置,结构体配置也是对结构体中所引用的元件进行配置,但是这种配置与元件配置有很大的区别,:,元件配置是使用专门的配置语句来完成的,配置语句与元件所在的结构体是分开的,;,而结构体配置则是放在结构体的说明语句部分,它是一种配置说明不需要与元件所在的结构体分开的配置类型。,低级配置格式:,for :use configuation.;,实体,-,结构体对配置格式:,for :use entity

32、第,4,章,VHDL,的库、程序包和配置,35,1,、子程序重载,子程序重载允许设计人员用同一个名字编写两个或两个以上的子程序,但是这些子程序的参数类型、参数数目和返回值可能是不同的。,(,1,)参数类型的重载,是指被重载的子程序的参数类型是不同的。这时,VHDL,编译器将会根据子程序调用过程中的实参类型来选择与之相一致的子程序。,4.2,重载,第,4,章,VHDL,的库、程序包和配置,36,FUNCTION max(i1,i2:bit_vector)RETURN bit_vector;,FUNCTION max(i1,i2:integer)RETURN integer;,END exa

33、mple;,PACKAGE body example IS,FUNCTION max,(i1,i2:std_logic_vector)RETURN std_logic_vector IS,VARIABLE tmp:std_logic_vector(i1RANGE);,BEGIN,IF (i1i2)THEN tmp:=i1;,ELSE tmp:=i2;,END IF;,RETURN(tmp);,END max,第,4,章,VHDL,的库、程序包和配置,LIBRARY IEEE,;,USE IEEE.std_logic_1164.all;,PACKAGE example IS,FUNCTION m

34、ax(i1,i2:std_logic_vector)RETURN std_logic_vector;,37,FUNCTION max,(i1,i2:bit_vector)RETURN bit_vector IS,VARIABLE tmp:bit_vector(i1RANGE);,BEGIN,IF (i1i2)THEN,tmp:=i1,ELSE,tmp:=i2;,END IF,RETURN(tmp);,END max;,第,4,章,VHDL,的库、程序包和配置,FUNCTION max,(i1,i2:integer)RETURN integer IS,VARIABLE tmp:integer;,

35、BEGIN,IF(i1i2)THEN,tmp:=i1;,ELSE,tmp:=i2;,END IF,RETURN(tmp);,END max;,END example;,38,Library ieee;,Use ieee.std_logic_1164.all;,Use work.example.all;,Entity max_value is,Port(a1,a2:in std_logic_vector(7 downto 0);,b1,b2 in bit_vector(7 downto 0);,c1,c2:in integer;,a:out std_logic_vector(7 downto 0

36、);,b:out bit_vector(7 downto 0);,c:out integer);,end max_value;,architecture behave of max_value is,begin,a=max(a1,a2);,b=max(b1,b2);,c=max(c1,c2);,end behave;,第,4,章,VHDL,的库、程序包和配置,39,(,2,)参数数目的重载,是指相同名字的子程序具有不同数目的参数,参数类型却有可能相同。这时,VHDL,编译器将会根据子程序调用过程中的参数数目来选择与之相一致的子程序。,LIBRARY IEEE;,USE IEEE.std_log

37、ic_1164.all;,PACKAGE example IS,FUNCTION convert(a0,a1:std_logic)RETURN integer;,FUNCTION convert(a0,a1,a2:std_logic)RETURN integer;,FUNCTION convert(a0,a1,a2,a3:std_logic)RETURN integer;,END example;,PACKAGE body example IS,第,4,章,VHDL,的库、程序包和配置,40,FUNCTION convert(a0,a1:std_logic)RETURN integer IS,

38、VARIABLE result:integer:=0;,BEGIN,IF(a0=1)THEN,result:=result+1;,END IF,IF (a1=1)THEN,result:=result+2;,END IF,END convert;,FUNCTION convert(a0,a1,a2:std_logic)RETRUN integer IS,VARIABLE result:integer:=0;,BEGIN,result:=convert(a0,a1);,IF(a2=1)THEN,result:=result+4;,END IF;,RETURN(result);,END conve

39、rt;,第,4,章,VHDL,的库、程序包和配置,41,FUNCTION convert(a0,a1,a2,a3:std_logic)RETURN integer IS,VARIABLE resutl:integer:=0;,BEGIN,result:=convert(a0,a1,a2);,IF(a3=1)THEN,result:=result+8;,END IF,RETURN(result);,END convert;,END example;,第,4,章,VHDL,的库、程序包和配置,42,Library ieee;,Use ieee.std_logic_1164.all;,Use wor

40、k.example.all;,Entity test is,Port(i0,i1,i2,i3:in std_logic);,End test;,Architecture behave of test is,Signal int1,int2,int3:integer;,Begin,Int1=convert(i0,i1);,Int 2=convert(i0,i1,i2);,Int3i2)THEN,tmp:=i1;,ELSE,tmp:=i2;,END IF;,RETURN(tmp);,END max,第,4,章,VHDL,的库、程序包和配置,45,FUNCTION max,(i1,i2:std_lo

41、gic_vector),RETURN bit_vector,IS,VARIABLE tmp:std_logic_vector(i1RANGE);,BEGIN,IF (i1i2)THEN,tmp:=i1;,ELSE,tmp:=i2;,END IF,RETURN(to_bitvector(tmp);,END max,END example;,第,4,章,VHDL,的库、程序包和配置,46,Library ieee;,Use ieee.std_logic_1164.all;,Use work.example.all;,Entity max_value is,Port(a1,a2:in std_log

42、ic_vector(7 downto 0);,b1,b2:in std_logic_vector(7 downto 0);,a:out std_logic_vector(7 downto 0);,b:out bit_vector(7 downto 0);,End max_value;,Architecture behave of max_value is,Begin,a=max(a1,a2);,b=max(b1,b2);,End behave;,第,4,章,VHDL,的库、程序包和配置,47,二、运算符重载,重载运算符是指功能由用户定义,并且可对各种类型的数据进行运算的运算符。,在,IEEE1

43、076,标准中,,“,+,”,运算符仅被定义为用于标量类型中的整数、浮点数和物理类型的加运算。然而设计人员在设计过程中,往往要对,std_logic_vector,或者是,bit_vector,类型的数据进行加运算,因此必须定义一个针对这些类型的函数,这就是运算符的重载。,第,4,章,VHDL,的库、程序包和配置,48,PACKAGE example IS,FUNCTION“+”(1:integer;r:integer)RETURN integer;,FUNCTION“+”(1:bit_vector;r:bit_vector)RETURN integer;,FUNCTION“+”(1:std_

44、logic_vector;r:std_logic_vector)RETURN integer;,END example;,PACKAGE body example IS,FUNCTION vector_to_int (a:IN bit_vector)RETURN integer IS,VARIALBE result,tmp:integer:=0;,BEGIN,FOR i IN a low TO ahigh LOOP,tmp:=0;,IF(a(i)=1)THEN,tmp:=2*(i-alow);,END IF,第,4,章,VHDL,的库、程序包和配置,LIBRARY IEEE;,USE IEEE

45、std_logic_1167.all;,USE IEEE.std_logic_unsigned.all;,49,result:=result+tmp;,END LOOP;,RETURN(result);,END vector_to_int;,FUNCTION“+”(1:integer;r:integer)RETURN integer IS,BEGIN,RETURN(1+r);,END;,FUNCTION“+”(1:bit_vector;r:bit_vector)RETURN integer IS,BEGIN,RETURN(vector_to_int(1)+vector_to_int(r);,END;,FUNCTION“+”(1:std_logic_vector;r:std_logic_vector)RETURN integer IS,BEGIN,RETURN(conv_integer(1)+con_integer(r);,END;,END example;,第,4,章,VHDL,的库、程序包和配置,50,

展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服