预定义数据类型

预定义数据类型

ID:38351640

大小:263.81 KB

页数:18页

时间:2019-06-10

预定义数据类型_第1页
预定义数据类型_第2页
预定义数据类型_第3页
预定义数据类型_第4页
预定义数据类型_第5页
资源描述:

《预定义数据类型》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第八讲VHDL数据类型本讲知识点:VHDL标准数据类型IEEE预定义数据类型其他预定义数据类型数据类型前面介绍了VHDL的数据对象,对于每一个对象来说,都要指定其数据类型,因此,VHDL需要提供用来指定对象的数据类型。VHDL的强类型特性,使得VHDL在进行硬件描述时具有很高的灵活性。VHDL的强类型特性主要体现在以下几个方面:每一对象只能具有一个数据类型且只能具有那个数据类型的值。对某对象进行操作的类型必须与该对象的类型相匹配。不同类型之间的数据不能直接代入,即使数据类型相同,而位长不同也不能进行代入。标量类型:是最基本的数据类型,通常用于描述一个单值数据对

2、象。标量类型包括:实数类型、整数类型、枚举类型和时间类型。复合类型:由细小的数据类型复合而成,如可由标量类型复合而成。复合类型主要有数组型和记录型。子类型:是上述基本类型的子集,是对已有的数据类型加以限制。VHDL中的数据类型可分为五大类:上述五大类数据类型又可分成在现成程序包中可以随时获得的预定义数据类型和用户自定义数据类型两类。预定义数据类型是VHDL中最常用、最基本的数据类型,这些数据类型都已在VHDL的标准程序包Standard和std_logic_1164及其它的标准程序包中作了定义,可在设计中随时调用。文件类型:不同类型的数据和数据名组织在一起形成

3、新的数据对象。存取类型:为数据对象提供存取方式。1.VHDL的预定义数据类型(1)整数(INTEGER)数据类型:正整数、负整数和零。可以使用预定义的运算操作符,但不能按位访问,也不能进行逻辑操作。在VHDL中,整数的取值范围是-2147483647~+2147483647仿真时:将其作为有符号数处理。综合时:作为无符号数处理。例:SIGNALa:INTEGERRANGE0TO9;VHDL的预定义数据类型都是在VHDL标准程序包STANDARD中定义的。(2)实数(REAL)数据类型:类似于数学中的实数,或称为浮点数,通常情况下实数类型仅能用于VHDL的仿真,

4、综合器一般不支持实数。(3)位(BIT)数据类型:数字系统中通常用位来表示信号值,取值只能是‘1’和‘0’。(4)位矢量(BIT_VECTOR)数据类型:是BIT的数组,使用位矢量必须注明位宽。例:signala:bit_vector(7downto0);其前可以加上数制标记如X、B、0等。(5)布尔(BOOLEAN)数据类型:属于枚举型,取值为false和true。(6)字符(CHARACTER)数据类型:字符类型通常用单引号引起来。如:‘a’。字符类型区分大小写,这一点和标识符的大小写是不同的。(7)字符串(STRING)数据类型:字符串必须用双引号标明。

5、例:VARIABLEstr:STRING(1TO7);str:="abcd";(8)时间(TIME)数据类型VHDL中唯一的预定义物理类型是时间。完整的时间类型包括整数和物理量单位两部分,整数和单位之间至少留一个空格,例:55ms,20ns等。(9)错误等级(severitylevel)错误等级类型数据用来表征系统的状态共有4种:NOTE(注意)WARNING(警告)ERROR(出错)FAILURE(失败)。(10)自然数(natural),正整数(positive)2.IEEE预定义标准逻辑位与矢量(1)标准逻辑位STD_LOGIC数据类型(2)标准逻辑矢量

6、(STD_LOGIC_VECTOR)数据类型std_logic_vector是std_logic的数组形式。因为是ieee的预定义数据类型,使用时必须先打开ieee库。即:libraryieee;useieee.std_logic_1164.all;std_logic是一个9值的逻辑。其取值为:U-未初始化状态;X-不定态;O-逻辑0;1-逻辑1;Z-高阻态;W-弱不定态;L-弱0;H-弱1;--不可能情况;3.其他预定义标准数据类型Synopsys公司在IEEE库中加入的程序包STD_LOGIC_ARITH中定义了3种数据类型,下面是其中常用的2种:(1)无

7、符号数据类型(UNSIGNEDTYPE)UNSIGNED数据类型代表一个无符号的数值,综合器将其解释为二进制数,二进制数的最左边的位为最高位。(2)有符号数据类型(SIGNEDTYPE)SIGNED数据类型代表一个有符号的数值,综合器将其解释为补码,最高位为符号位。例如:VARIABLEvar1:UNSIGNED(0TO10);VARIABLEvar2:SIGNED(0TO10);其中的var1和var2分别定义为UNSIGNED和SIGNED数据类型,则数值意义是不一样的。使用上述数据类型时,应作如下声明:libraryieee;useieee.std_lo

8、gic_arith.all;(1)TY

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。