- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8讲 预定义数据类型2
第八讲 VHDL数据类型 数据类型 * 本讲知识点: VHDL标准数据类型 IEEE预定义数据类型 其他预定义数据类型 前面介绍了VHDL的数据对象,对于每一个对象来说,都要指定其数据类型,因此,VHDL需要提供用来指定对象的数据类型。 VHDL的强类型特性,使得VHDL在进行硬件描述时具有很高的灵活性。 VHDL的强类型特性主要体现在以下几个方面: 每一对象只能具有一个数据类型且只能具有那个数据类型的值。 对某对象进行操作的类型必须与该对象的类型相匹配。 不同类型之间的数据不能直接代入,即使数据类型相同,而位长不同也不能进行代入。 标量类型:是最基本的数据类型,通常用于描述一个单值数据对象。标量类型包括:实数类型、整数类型、枚举类型和时间类型。 复合类型:由细小的数据类型复合而成,如可由标量类型复合而成。复合类型主要有数组型和记录型。 子类型:是上述基本类型的子集,是对已有的数据类型加以限制。 VHDL中的数据类型可分为五大类: 上述五大类数据类型又可分成在现成程序包中可以随时获得的预定义数据类型和用户自定义数据类型两类。预定义数据类型是VHDL中最常用、最基本的数据类型,这些数据类型都已在VHDL的标准程序包Standard和std_logic_1164及其它的标准程序包中作了定义,可在设计中随时调用。 文件类型:不同类型的数据和数据名组织在一起形成新的数据对象。 存取类型:为数据对象提供存取方式。 1. VHDL的预定义数据类型 (1)整数(INTEGER)数据类型:正整数、负整数和零。可以使用预定义的运算操作符,但不能按位访问,也不能进行逻辑操作。 在VHDL中,整数的取值范围是-2147483647~+2147483647 仿真时:将其作为有符号数处理。综合时:作为无符号数处理。 例:SIGNAL a : INTEGER RANGE 0 TO 9; VHDL的预定义数据类型都是在VHDL标准程序包STANDARD中定义的。 (2)实数(REAL)数据类型: 类似于数学中的实数,或称为浮点数,通常情况下实数类型仅能用于VHDL的仿真,综合器一般不支持实数。 (3)位(BIT)数据类型:数字系统中通常用位来表示信号值,取值只能是‘1’和‘0’。 (4)位矢量(BIT_VECTOR)数据类型:是BIT的数组,使用位矢量必须注明位宽。例:signal a: bit_vector(7 downto 0); 其前可以加上数制标记如X、B、0等。 (5)布尔(BOOLEAN)数据类型:属于枚举型,取值为false和true。 (6)字符(CHARACTER)数据类型:字符类型通常用单引号引起来。如:‘a’ 。字符类型区分大小写,这一点和标识符的大小写是不同的。 (7)字符串(STRING)数据类型: 字符串必须用双引号标明。例: VARIABLE str : STRING (1 TO 7 ) ; str := a b c d ; (8)时间(TIME)数据类型 VHDL中唯一的预定义物理类型是时间。完整的时间类型包括整数和物理量单位两部分,整数和单位之间至少留一个空格,例: 55 ms,20 ns等。 (9)错误等级(severity level) 错误等级类型数据用来表征系统的状态共有4种:NOTE(注意)WARNING(警告)ERROR(出错)FAILURE(失败)。 (10)自然数(natural),正整数(positive) 2. IEEE预定义标准逻辑位与矢量 (1)标准逻辑位STD_LOGIC数据类型 (2)标准逻辑矢量(STD_LOGIC_VECTOR)数据类型 std_logic_vector是std_logic的数组形式。 因为是ieee的预定义数据类型,使用时必须先打开ieee库。 即: library ieee; use ieee.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)无符号数
文档评论(0)