版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第八讲 VHDL数据类型,本讲知识点: VHDL标准数据类型 IEEE预定义数据类型 其他预定义数据类型,数据类型,前面介绍了VHDL的数据对象,对于每一个对象来说,都要指定其数据类型,因此,VHDL需要提供用来指定对象的数据类型。 VHDL的强类型特性,使得VHDL在进行硬件描述时具有很高的灵活性。,VHDL的强类型特性主要体现在以下几个方面:,每一对象只能具有一个数据类型且只能具有那个数据类型的值。 对某对象进行操作的类型必须与该对象的类型相匹配。 不同类型之间的数据不能直接代入,即使数据类型相同,而位长不同也不能进行代入。,标量类型:是最基本的数据类型,通常用于描述一个单值数据对象。标量
2、类型包括:实数类型、整数类型、枚举类型和时间类型。 复合类型:由细小的数据类型复合而成,如可由标量类型复合而成。复合类型主要有数组型和记录型。 子类型:是上述基本类型的子集,是对已有的数据类型加以限制。,VHDL中的数据类型可分为五大类:,上述五大类数据类型又可分成在现成程序包中可以随时获得的预定义数据类型和用户自定义数据类型两类。预定义数据类型是VHDL中最常用、最基本的数据类型,这些数据类型都已在VHDL的标准程序包Standard和std_logic_1164及其它的标准程序包中作了定义,可在设计中随时调用。,文件类型:不同类型的数据和数据名组织在一起形成新的数据对象。 存取类型:为数据
3、对象提供存取方式。,1. VHDL的预定义数据类型,(1)整数(INTEGER)数据类型:正整数、负整数和零。可以使用预定义的运算操作符,但不能按位访问,也不能进行逻辑操作。 在VHDL中,整数的取值范围是21474836472147483647 仿真时:将其作为有符号数处理。综合时:作为无符号数处理。 例:SIGNAL a : INTEGER RANGE 0 TO 9;,VHDL的预定义数据类型都是在VHDL标准程序包STANDARD中定义的。,(2)实数(REAL)数据类型: 类似于数学中的实数,或称为浮点数,通常情况下实数类型仅能用于VHDL的仿真,综合器一般不支持实数。 (3)位(BI
4、T)数据类型:数字系统中通常用位来表示信号值,取值只能是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
5、 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)数据
6、类型 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)无符号数据类型(UNSIGNED T
7、YPE) UNSIGNED数据类型代表一个无符号的数值,综合器将其解释为二进制数,二进制数的最左边的位为最高位。,(2)有符号数据类型(SIGNED TYPE) SIGNED数据类型代表一个有符号的数值,综合器将其解释为补码,最高位为符号位。,例如: VARIABLE var1 : UNSIGNED(0 TO 10) ; VARIABLE var2 : SIGNED(0 TO 10) ; 其中的var1和var2分别定义为UNSIGNED和SIGNED数据类型,则数值意义是不一样的。,使用上述数据类型时,应作如下声明: library ieee; use ieee.std_logic_arit
8、h.all;,(1)TYPE语句用法: TYPE 数据类型名 IS 数据类型定义 OF 基本数据类型 ;,4.用户自定义数据类型,除标准的预定义数据类型外,VHDL还允许用户自行定义新的数据类型,由用户定义的数据类型可以有多种,如枚举类型、整数类型、实数类型、数组类型、记录类型和时间类型等。 用户自定义数据类型是用类型定义语句实现的,格式如下:,上述格式中的数据类型名由设计者自定;数据类型定义部分用来描述所定义元素的表达方式和表达内容;基本数据类型是指数据类型定义中所定义的基本数据类型,一般都是取已有的预定义数据类型。,例: type st1 is array (0 to 15) of std_logic; type week is (sun,mon,tue,wed,thu,fri,sat);,(2)SUBTYPE语句用法: SUBTYPE是TYPE所定义的数据类型的一个子集,它满足原数据类型的所有约束条件,原数据类型称为基本数据类型,SUBTYPE 格式如下: SUBTYPE 子类型名 IS 基本数据类型 range 约束范围;,上述格
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47155-2026人工鱼礁建设技术规范
- 山东省临沂市2025-2026学年初三下学期第三次阶段检测试题英语试题含解析
- 云南省曲靖市沾益区播乐乡罗木中学2026届初三3月月考(语文试题文)含解析
- 重庆市北碚区重点达标名校2025-2026学年初三全真模拟考试(一)英语试题试卷含解析
- 四川省宜宾市翠屏区二片区达标名校2025-2026学年中考数学试题目标测试卷(3)含解析
- 山东省宁阳十一中2025-2026学年初三3月联考(英语试题文)试题含解析
- 重庆市荣昌清流镇民族中学2026届初三下学期四校联考试题(5月)语文试题试卷含解析
- 2026年从仿真看生产线设计的关键因素
- 2026年如何优化自动化仓储的企业文化
- 神经科中风康复治疗方案培训
- 涉法涉诉信访培训课件
- 2024云南省委党校研究生招生考试真题(附答案)
- 2025年四川省成都市初中学业水平考试中考(会考)地理试卷(真题+答案)
- 2025年焊工(技师)考试练习题库(附答案)
- 冷库节能措施方案(3篇)
- GB/T 2820.5-2025往复式内燃机驱动的交流发电机组第5部分:发电机组
- 学术自由与责任共担:导师制度与研究生培养制的深度探讨
- 高中数学三年教学规划
- 保卫科部门绩效考核标准
- 2025年上海市各区高三二模语文试题汇编《现代文一》含答案
- 公司履约保函管理制度
评论
0/150
提交评论