第三讲 VHDL字符及数据类型.ppt

上传人:s****8 文档编号:68704227 上传时间:2022-12-29 格式:PPT 页数:41 大小:690.50KB
返回 下载 相关 举报
第三讲 VHDL字符及数据类型.ppt_第1页
第1页 / 共41页
第三讲 VHDL字符及数据类型.ppt_第2页
第2页 / 共41页
点击查看更多>>
资源描述

《第三讲 VHDL字符及数据类型.ppt》由会员分享,可在线阅读,更多相关《第三讲 VHDL字符及数据类型.ppt(41页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 VHDL字符及数据类型字符及数据类型1 VHDL VHDL词法规则与标识符词法规则与标识符 VHDL VHDL语言的数据类型语言的数据类型第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 VHDL的语言要素,作为硬件描述语言的基的语言要素,作为硬件描述语言的基本结构元素,主要有:本结构元素,主要有:p 数据对象数据对象p 数据类型数据类型p 各类操作数及运算操作符各类操作数及运算操作符 VHDL词法规则与标识符词法规则与标识符 而这些基本元素都是由而这些基本元素都是由VHDL文字文字组成,而组成,而VHDL文字主要包括文

2、字主要包括词法构成(注释,数字,字符词法构成(注释,数字,字符(串),下标)和标识符(串),下标)和标识符。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 n词法规则词法规则注释注释u为了提高为了提高VHDL源程序的可读性,在源程序的可读性,在VHDL中可以中可以写入注释。写入注释。u注释以注释以-开头直到本行末尾的一段文字。在开头直到本行末尾的一段文字。在quartus中可以看见,敲入中可以看见,敲入-之后,后面字体的之后,后面字体的颜色就发生改变。颜色就发生改变。u注释不是注释不是VHDL设计描述的一部分,编译后存入数设计描述的一部分,编译后存入数据库中的信息不包含注释。据库

3、中的信息不包含注释。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 注释举例:注释举例:Q:OUT STD_LOGIC_VECTOR(0 TO 11););-A/D转换数据输出显示(行注释)转换数据输出显示(行注释)-SRAM 数据写入控制状态机(段注释)数据写入控制状态机(段注释)WRIT_STATE:PROCESS(clk,rst)-SRAM写入控制状态机时序电路进程写入控制状态机时序电路进程 第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 数字型文字可以有多种表达方式:可以是十进制数,数字型文字可以有多种表达方式:可以是十进制数,也可以表示为二进制、八进制或十

4、六进制等为基的数,也可以表示为二进制、八进制或十六进制等为基的数,可以是整数,也可以是含有小数点的浮点数。可以是整数,也可以是含有小数点的浮点数。数字数字u十进制整数表示法:十进制整数表示法:如如:012 5 78_456(=78456)2E6 在相邻数字之间插入下划线,对十进制数值不产生在相邻数字之间插入下划线,对十进制数值不产生影响,仅仅是为了提高文字的可读性。允许在数字之前影响,仅仅是为了提高文字的可读性。允许在数字之前冠以若干个冠以若干个0,但不允许在数字之间存在空格。,但不允许在数字之间存在空格。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 u 以基表示的数:以基表示

5、的数:用这种方式表示的数由五个部分组成。用这种方式表示的数由五个部分组成。第一部分,用十进制数标明数值进位的基数;第一部分,用十进制数标明数值进位的基数;第二部分,数值隔离符号第二部分,数值隔离符号“#”;第三部分,表达的文字;第三部分,表达的文字;第四部分,指数隔离符号第四部分,指数隔离符号“#”;第五部分,用十进制表示的指数部分,这一部分的数如第五部分,用十进制表示的指数部分,这一部分的数如 果为果为0可以省去不写。可以省去不写。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 l SIGNAL d1,d2,d3,d4,d5:INTEGER RANGE 0 TO 255;d1=

6、10#170#;-(十进制表示,等于十进制表示,等于 170)d2=16#FE#;-(十六进制表示,等于十六进制表示,等于 254)d3=2#1111_1110#;-(二进制表示,等于二进制表示,等于 254)d4=8#376#;-(八进制表示,等于八进制表示,等于 254)d5=16#E#E1 ;-(十六进制表示,等于十六进制表示,等于2#1110000#,等于,等于224)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 u 实数:实数必须带有小数点。实数:实数必须带有小数点。如如:12.0 0.0 3.14 6_741_113.666 52.6 E-2u物物理理量量文文字字:

7、综综合合器器不不支支持持物物理理量量文文字字的的综合。综合。如如:60 s(秒)秒)100 m(米)米)10 A(安培)安培)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 字符和字符串字符和字符串 字符字符 用用单单引引号号引引起起来来的的ASC字字符符,可可以以是是数数值值,也也可可以以是是符号或字母符号或字母。如如:E,e,$,23,A 字符串字符串 一一维维的的字字符符数数组组,需需放放在在双双引引号号中中。有有两两种种类类型型的的字字符符串:串:文字字符串和位矢量字符串。文字字符串和位矢量字符串。文字字符串是用双引号引起来的一串文字。文字字符串是用双引号引起来的一串文字

8、。如如:“FALSE”,“X”,“THIS IS END”第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 位矢量字符串位矢量字符串 被被双双引引号号引引起起来来的的扩扩展展的的数数字字序序列列,数数字字序序列列前前冠以基数说明符。冠以基数说明符。基数符有基数符有“B”、“O”、“X”,他们的含义如下。他们的含义如下。B:二二进进制制基基数数符符号号,表表示示二二进进制制位位0或或1,在在字字符符串串中中每每一一个个位位表示一个表示一个BIT。O:八八进进制制基基数数符符号号,在在字字符符串串中中每每一一个个数数代代表表一一个个八八进进制制数数,即代表一个即代表一个3位(位(BIT

9、)的二进制数。的二进制数。X:十十六六进进制制基基数数符符号号,代代表表一一个个十十六六进进制制数数,即即代代表表一一个个4位位二进制数。二进制数。例如:例如:B“1011_1111”,O“152”,X“F821”第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 下标名下标名 下标名用于指示数组型变量或信号的某一元素。下标名用于指示数组型变量或信号的某一元素。SIGNAL a,b:BIT _VECTOR(0 TO 3););SIGNAL s:INTEGER RANGE 0 TO 2;SIGNAL x,y:BIT;x=a(s);y=b(3);上例中,上例中,a(s)为一下标语句,为一

10、下标语句,s是不可计算的下标名,只能在是不可计算的下标名,只能在特定情况下进行综合;特定情况下进行综合;b(3)的下标为的下标为3,可以进行综合。,可以进行综合。s,3 s,3 均为下标!均为下标!第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 标识符是最常用的操作符,可以是标识符是最常用的操作符,可以是常数、变量常数、变量、信信号、端口、子程序号、端口、子程序或或参数参数的名字。的名字。标识符规则是标识符规则是VHDL语言中符号书写的一般规则,语言中符号书写的一般规则,为为EDA工具提供了标准的书写规范。工具提供了标准的书写规范。l VHDL87版本标识符为短标识符版本标识符为

11、短标识符l VHDL93版标识符为扩展标识符。版标识符为扩展标识符。n 标识符标识符第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 短标识符短标识符VHDL短标识符需遵守以下规则:短标识符需遵守以下规则:l 必须以英文字母开头;必须以英文字母开头;l 英文字母、数字(英文字母、数字(09)和下划线都是有效的字符;)和下划线都是有效的字符;l 短标识符不区分大小写;短标识符不区分大小写;l 下划线(下划线(_)的前后都必须有英文字母或数字。)的前后都必须有英文字母或数字。一般的,在书写程序时,应将一般的,在书写程序时,应将VHDL的保留字大写或的保留字大写或黑体,设计者自己定义的字

12、符小写,以使得程序便于阅黑体,设计者自己定义的字符小写,以使得程序便于阅读和检查。尽管读和检查。尽管VHDL仿真综合时不区分大小写,但一仿真综合时不区分大小写,但一个优秀的硬件程序设计师应该养成良好的习惯。个优秀的硬件程序设计师应该养成良好的习惯。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 例:例:合法的标识符:合法的标识符:S_MACHINE,present_state,sig3不合法的标识符:不合法的标识符:present-state,3states,cons_,_now,entity,_sig为什么它们是为什么它们是不合法的?不合法的?第第3 3讲讲 VHDLVHDL字

13、符及数据类型字符及数据类型 扩展标识符扩展标识符 扩展标识符的识别和书写有下面的规则:扩展标识符的识别和书写有下面的规则:l用反斜杠来界定扩展标识符用反斜杠来界定扩展标识符 如如 control_machine,s_block 等等都都是是合合法法的的扩扩展展标标识符识符l扩展标识符允许包含图形符号和空格扩展标识符允许包含图形符号和空格 如如 s&33,legal$state 是合法的扩展标识符是合法的扩展标识符l两个反斜杠之间的字可以和保留字相同两个反斜杠之间的字可以和保留字相同 如如 SIGNAL,ENTITY 是是合合法法的的标标识识符符,与与SIGNAL、ENTITY是不同的;是不同的

14、;第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 l两个反斜杠之间的标识符可以用数字开头两个反斜杠之间的标识符可以用数字开头 如如 15BIT,5ns是合法的;是合法的;l扩展标识符是区分大小写的扩展标识符是区分大小写的 如如 a 与与 A 是不同的标识符;是不同的标识符;l扩展标识符允许多个下划线相邻扩展标识符允许多个下划线相邻 如如 our_ _entity 是合法的扩展标识符(不推荐这种方式);是合法的扩展标识符(不推荐这种方式);l扩展标识符的名字中如果含有一个反斜杠,则用相扩展标识符的名字中如果含有一个反斜杠,则用相邻的两个反斜杠来代表它邻的两个反斜杠来代表它如如 te

15、xe 表示该扩展标识符的名字为表示该扩展标识符的名字为 texe(共共5个字符);个字符);第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 VHDL语言的数据类型语言的数据类型 在对在对VHDL的客体进行定义时,都要指定其数的客体进行定义时,都要指定其数据类型。据类型。VHDL有多种标准的数据类型,并且允许有多种标准的数据类型,并且允许用户自定义数据类型。用户自定义数据类型。在在VHDLVHDL语言语义约束中,对类型的要求语言语义约束中,对类型的要求l 赋值语句的目标与源的一致;赋值语句的目标与源的一致;l 表达式中操作的一致表达式中操作的一致l 子类型中约束与类型的一致等许多方

16、面。子类型中约束与类型的一致等许多方面。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 n 数据类型分类数据类型分类标量型标量型(Scalar Type)复合类型复合类型(Composite Type)(Composite Type)存取类型存取类型(Access Type)文件类型文件类型(Files Type)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 预定义类型在预定义类型在VHDLVHDL标准程序包标准程序包STANDARDSTANDARD中中定义,在应用中自动包含进定义,在应用中自动包含进VHDLVHDL的源文件,的源文件,不需要不需要USEUSE语句

17、显示调用。语句显示调用。n VHDLVHDL中预定义的数据类型中预定义的数据类型数据类型说数据类型说数据类型说数据类型说明如下明如下明如下明如下第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 整整数数与与数数学学中中整整数数的的定定义义相相似似,可可以以使使用用预预定定义义运运算算操操作作符符,如如加加“”、减减“-”、乘乘“”、除除“”进进行行算算术术运运算算。在在VHDL语语言言中中,整整数数的的表表示示范范围围为为 -21474836472147483647,即即从从-(231-1)到到(231-1)。在在进进行行算算法法研研究究或或实实验验时时,作作为为对对硬硬件件方方案

18、案的的抽抽象象手手段段,常常常常采采用用实实数数四四则则运运算算。实实数数的的定定义义值值范范围围为为-1.0E+38+1.0E+38。实实数数有有正正负负数数,书书写写时时一一定定要要有小数点。例如:有小数点。例如:-1.0,+2.5,-1.0E+38 整数(整数(INTEGERINTEGER)实数(实数(REAL)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 位(位(BITBIT)用来表示数字系统中的信号值。位值用字符用来表示数字系统中的信号值。位值用字符0或者或者1(将值放在引号中)表示。与整数中的(将值放在引号中)表示。与整数中的1和和0不不同,同,1和和0仅仅表示一个

19、位的两种取值。仅仅表示一个位的两种取值。位数据可以用来描述数字系统中总线的值。位数据不位数据可以用来描述数字系统中总线的值。位数据不同于布尔数据,可以用转换函数进行转换。同于布尔数据,可以用转换函数进行转换。位位矢矢量量是是用用双双引引号号括括起起来来的的一一组组数数据据。例例如如:“001100”,X“00bb”。在在这这里里位位矢矢量量前前面面的的X表表示示是是十十六六进进制制。用用位位矢矢量量数数据据表表示示总总线线状状态态最最形形象象也也最最方方便便,在在VHDL程程序序中中将将会会经经常常遇到。使用位矢量时必须注明位宽,即数组中元素个数和排列遇到。使用位矢量时必须注明位宽,即数组中元

20、素个数和排列.例如:例如:SIGNAL s1:BIT_VECTOR(15 DOWNTO 0););位矢量(位矢量(BIT_VECTOR)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 一一个个布布尔尔量量具具有有两两种种状状态态,“真真”或或者者“假假”。虽虽然然布布尔尔量量也也是是二二值值枚枚举举量量,但但它它和和位位不不同同没没有有数数值值的的含含义义,也也不不能能进进行行算算术术运运算算。它它能能进进行行关关系系运运算算。例例如如,它它可可以以在在if语语句句中中被被测测试试,测测试试结结果果产产生生一一个个布布尔尔量量TRUE或或者者FALSE。字字符符也也是是一一种种数

21、数据据类类型型,所所定定义义的的字字符符量量通通常常用用单单引引号号括括起起来来,如如a。一一般般情情况况下下VHDL对对大大小小写写不不敏敏感感,但但对对字字符符量量中的大小写则认为是不一样的。例如,中的大小写则认为是不一样的。例如,B不同于不同于b。布尔量(布尔量(BOOLEAN)字符(字符(CHARACTER)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 字符量中的字符可以是从字符量中的字符可以是从a到到z中的任一个字中的任一个字母母,从,从0到到9中中的任一个的任一个数数以及空格或者特殊字符,以及空格或者特殊字符,如如$,%等等。等等。包集合包集合standard中给出

22、了预定义的中给出了预定义的128个个ASC码字符码字符,不能打印的用标识符给出。,不能打印的用标识符给出。字符字符1与整数与整数1和实数和实数1.0都是不相同的,都是不相同的,当要明确指出当要明确指出1的字符数据的字符数据 时,则可写为:时,则可写为:CHARACTER(1)。)。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 字字符符串串是是由由双双引引号号括括起起的的一一个个字字符符序序列列,也也称称字字符符矢矢量量或或字符串组。字符串常用于程序的提示和说明。字符串组。字符串常用于程序的提示和说明。字符串举例如下:字符串举例如下:VATIABLE string_1:STRIN

23、G(0TO 3);string_1:=“a b c d”;时时间间是是一一个个物物理理量量数数据据。完完整整的的时时间间量量数数据据应应包包含含整整数数和和单位两部分,而且整数和单位之间至少应留一个空格的位置单位两部分,而且整数和单位之间至少应留一个空格的位置。例如例如55 sec,2 min等。等。时间(时间(TIME)字符串(字符串(STRING)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 在在包包集集合合STANDARDSTANDARD中中给给出出了了时时间间的的预预定定义义,其其单单位位为为fsfs,psps,nsns,ss,msms,secsec,minmin和和h

24、rhr。例例如如:20 20 ss,100 100 nsns,3 sec3 sec。在在系系统统仿仿真真时时,时时间间数数据据特特别别有有用用,用用它它可可以以表表示示信信号号延时,从而使模型系统能更逼近实际系统的运行环境。延时,从而使模型系统能更逼近实际系统的运行环境。错错误误等等级级类类型型数数据据用用来来表表征征系系统统的的状状态态,共共有有4种种:note(注注意意),warning(警警告告),error(出出错错),failure(失败)。失败)。在在系系统统仿仿真真过过程程中中可可以以用用这这4种种状状态态来来提提示示系系统统当当前前的的工工作作情情况况,从从而而使使设设计计人人

25、员员随随时时了了解解当当前前系系统统工工作作的的情情况况,并并根根据系统的不同状态采取相应的对策。据系统的不同状态采取相应的对策。错误等级(错误等级(SEVERITY LEVEL)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 这这两两种种数数据据是是整整数数的的子子类类,NATURALNATURAL类类数数据据为为取取0 0和和0 0以以上的正整数;而上的正整数;而POSITIVE POSITIVE 则只能为正整数。则只能为正整数。上述上述1010种数据类型是种数据类型是VHDLVHDL语言中标准的数据类型,在编程语言中标准的数据类型,在编程时可以直接引用。时可以直接引用。如果

26、用户需使用这如果用户需使用这1010种以外的数据类型,则必须进行自定义。种以外的数据类型,则必须进行自定义。但大多数的但大多数的CADCAD厂商已在包集合中对标准数据类型进行了扩展。厂商已在包集合中对标准数据类型进行了扩展。例如,数组型数据等,请同学们注意。例如,数组型数据等,请同学们注意。大于等于零的整数大于等于零的整数NATURAL),正整数(),正整数(POSITIVE)第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 标准化数据类型标准化数据类型 IEEE93增增 加加 了了 多多值值逻逻辑辑包包STD_LOGIC_1164,使使得得“STD_LOGIC”数数据据具具有有9

27、种不同的值。种不同的值。其定义如右所示:其定义如右所示:nIEEE预定义标准预定义标准 TYPE STD_LOGIC IS(U,-初始值初始值 X,-不定不定 0,-0 1,-1 Z,-高阻高阻 W,-弱信号不定弱信号不定 L,-弱信号弱信号0 H,-弱信号弱信号1 -不可能情况不可能情况 ););第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 有符号数和无符号数 在在ieee库中有一个名为库中有一个名为std_logic_arith的包集,其中包括有符号数(的包集,其中包括有符号数(signed)和)和无符号数(无符号数(unsigned)例例 SIGNAL x:signed(

28、7 DOWNTO 0);SIGNAL y:signed(0 TO 7);注意:注意:signed 和和unsigned的合法和非法运算,的合法和非法运算,同时和标准逻辑位和逻辑位矢量一样,应用前必同时和标准逻辑位和逻辑位矢量一样,应用前必须进行包声明。须进行包声明。第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 可以由用户定义的数据类型有:可以由用户定义的数据类型有:枚举(枚举(ENUMERATED)类型;类型;n 用户自定义的数据类型用户自定义的数据类型 TYPE bit IS(0,1);TYPE state IS (idle,forward,backward,stop);TY

29、PE bit_vector IS ARRAY(NATURAL RANGE)OF BIT;TYPE my_logic IS (0,1,z);TYPE color IS (red,green,blue,white);第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 整数(整数(INTEGER)类型)类型TYPE integer IS RANGE-2147483647 TO+2147483647TYPE natural IS RANGE 0 TO +2147483647TYPE my_integer IS RANGE -32 TO+32TYPE student_grade IS RANG

30、E 0 TO 100第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 子类型子类型在原有的已定义数据类型基础上加上一些约束条件,可以在原有的已定义数据类型基础上加上一些约束条件,可以定义数据类型的子类型。定义数据类型的子类型。SUBTYPE natural IS INTEGER RANGE 0 TO INTEGERS HIGH;SUBTYPE my_color IS color RANGE red TO blue;SUBTYPE my_logic IS STD_lOGIC RANGE 0 TO z;第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 数组(数组(ARRAY

31、ARRAY)类型)类型 数组(数组(arrayarray)是将相同数据类型的数据结合在一起形成的)是将相同数据类型的数据结合在一起形成的一种新的数据类型,它可以是一维的,也可以是二维一种新的数据类型,它可以是一维的,也可以是二维的。数组定义语句格式如下数组定义语句格式如下:TYPE TYPE 数组名数组名 IS ARRAY(IS ARRAY(数组范围数组范围)OF)OF 数据类型数据类型 ;TYPE row IS ARRAY(7 DOWNTO 0)OF STD_LOGIC -一维数组TYPE matrix IS ARRAY(0 TO 2)OF row -1*1维数组TYPE matrix IS

32、 ARRAY(0 TO 2)OF STD_LOGIC_VECTOR(7 DOWNTO 0)-1*1维数组第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 TYPE matrix IS ARRAY(0 TO 3,7 DOWNTO 0)OF STD_LOGIC -二维数组0 1 0 0 0 1 1 10 1 0 0 0 1 1 10 1 0 1 0 1 0 01 0 0 1 1 0 1 00 1 0 1 0 0 1 01 0 0 0 0 1 1 10 1 0 1 0 1 0 11D*1D数组数组1D数组数组2D数组数组1 1 0 0 0 1 1 1第第3 3讲讲 VHDLVHDL字符及

33、数据类型字符及数据类型 端口数组类型端口数组类型由于预定义的数据类型都没有超过一维。然而在定义电由于预定义的数据类型都没有超过一维。然而在定义电路的输入输出端口时,又是需要把端口定义为矢量阵列,路的输入输出端口时,又是需要把端口定义为矢量阵列,而在而在entity中不允许使用中不允许使用TYPE进行类型定义,所以必须进行类型定义,所以必须在包集合中进行设计。在包集合中进行设计。LIBRARY IEEE;USE IEE.STD_LOGIC_1164.ALL;PACKAGE my_data_types IS TYPE vector_array is ARRAY(NATIRAL)OF STD_LOG

34、IC_VECTOR(7 DOWNTO 0);END my_data_types在包集合中定义了在包集合中定义了端口数组类型端口数组类型第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 LIBRARY IEEE;USE IEE.STD_LOGIC_1164.ALL;USE IEE.work.my_data_types.ALL;ENTITY mux IS PORT(inp:IN vector_array(0 TO 3););END mux;在实体中声明端口在实体中声明端口数组类型数组类型第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 记录(记录(RECORDE)类型)类型

35、 记录类型和数组类型有些相似,RECORD类型内部可以包含不同类型的数据,而ARRAY只能包含相同类型的数据。例例 TYPE birthday IS RECORD day:INTEGER RANGE 1 TO 31 month:month_name;END RECORD;定义记录数据类型定义记录数据类型第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 n 用函数进行类型转换用函数进行类型转换 VHDL语言中,程序包中提供了变换函数,这些程序包语言中,程序包中提供了变换函数,这些程序包有有3种,每个程序包中的变换函数不一样。现列表如下。种,每个程序包中的变换函数不一样。现列表如下。S

36、TD_LOGIC_1164包集合函数包集合函数 函数函数 TO_ STDLOGICVECTOR(A):-由由BIT_VECTOR转换为转换为STD_LOGIC_VECTOR 函数函数 TO_ BITVECTOR(A):-由由STD_LOGIC_VECTOR转换为转换为BIT_VECTOR 函数函数 TO_ STDLOGIC(A):-由由BIT转换为转换为STD_LOGIC 函数函数 TO_ BIT(A):-由由STD_LOGIC转换为转换为BIT第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 STD_LOGIC_ARITH包集合函数包集合函数 函数:函数:CONV_STD_LOG

37、IC_VECTOR(A,位长位长):-由由UNSINGED,SINGED转换为转换为STD_LOGIC_ UNSINGED包集合包集合 函数:函数:CONV_INTEGER(A):-由由STD_LOGIC_VECTOR转换为转换为INTEGERSTD_LOGIC_ UNSINGED包集合包集合 函数:函数:CONV_INTEGER(A):-由由INTEGER,UNSINGED,SINGED转换为转换为 STD_LOGIC_VECTOR第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 类类型型标标记记就就是是类类型型的的名名称称。类类型型标标记记法法适适合合那那些些关关系系密密切切的

38、的标标量量类类型型之之间间的的类类型型转转换换,即即整整数数和和实实数数的的类型转换。类型转换。例如:例如:VARIABLE I:INTEGER;VARIABLE R:REAL;I:=INTEGER(R););R:=REAL(I););n类型标记法实现类型转换类型标记法实现类型转换第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 就就模模拟拟效效率率而而言言,利利用用常常数数实实现现类类型型转转换换比比利利用用类类型转换函数的效率更高。型转换函数的效率更高。下下面面的的例例子子使使用用常常数数把把类类型型为为STD_LOGIC的的值值转转换换为为BIT型的值。型的值。n 常数实现类

39、型转换常数实现类型转换第第3 3讲讲 VHDLVHDL字符及数据类型字符及数据类型 例例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY typeconv ISEND;ARCHITECTURE arch OF typeconv IS TYPE typeconv_type IS ARRAY(STD_ULOGIC)OF BIT;CONSTANT typecon_con:typeconv_type:=(0/L=0,1/H=1,OTHERS=0););SIGNAL b:BIT;SIGNAL b:BIT;SIGNAL s:STD_ULOGIC;BEGIN b=typecon_con(s);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com