自定义数据类型及转换

自定义数据类型及转换

ID:39364363

大小:264.31 KB

页数:20页

时间:2019-07-01

自定义数据类型及转换_第1页
自定义数据类型及转换_第2页
自定义数据类型及转换_第3页
自定义数据类型及转换_第4页
自定义数据类型及转换_第5页
资源描述:

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

1、第九讲VHDL自定义数据类型及类型转换本讲知识点:自定义数据类型数据类型转换(1)TYPE语句用法:TYPE数据类型名IS数据类型定义[OF基本数据类型];用户自定义数据类型用户定义的数据类型可以有多种,如枚举类型、整数类型、实数类型、数组类型、记录类型和时间类型等。上述格式中的数据类型名由设计者自定;数据类型定义部分用来描述所定义元素的表达方式和表达内容;基本数据类型是指数据类型定义中所定义的基本数据类型,一般都是取已有的预定义数据类型。例:typest1isarray(0to15)ofstd_logic;typeweekis(sun,mon,tue,wed,thu,fri,sat);常

2、用的自定义数据类型※枚举数据类型:typeweekis(sun,mon,tue,wed,thu,fri,sat);在逻辑电路中,所有的数据都是用“1”或“0”来表示的,但是人们在考虑逻辑关系时,只有数字往往是不方便的。在VHDL语言中,可以用文字符号来表示一组实际的二进制数。“000”“001”“010”“011”“100”“101”“110”例如:typem_stateis(state1,state2,state3,state4,state5);signalp_state,n_state:m_state;在综合过程中,枚举类型文字元素的编码通常是自动的,编码顺序是默认的,一般将第一个枚举

3、量(最左边的量)编码为0,以后的依次加1。默认编码值如下:state1=’000’;state2=’001’;state3=’010’;state4=’011’;state5=’100’;思考:如何表示STD_LOGIC类型?※数组类型:语句格式如下:(1)TYPE数组名ISARRAY(数组范围)OF数据类型;(2)TYPE数组名ISARRAY(数组下标名RANGE<>)OF数据类型数组类型属复合类型,是将一组具有相同数据类型的元素集合在一起,作为一个数据对象来处理的数据类型。数组可以是一维数组或多维数组。例:typestbisarray(7downto0)ofstd_logic;该数组有

4、8个元素,其下标排列是7、6、…1、0。typedata_busisarray(0to7)ofbit;该数组有8个元素,其下标排列是0、1、…6、7。TYPEbit_numberISARRAY(naturalRANGE<>)OFBIT;VARIABLEbb:bit_number(1to6);对数组赋值有两种方法:一是对整个数组进行一次赋值;二是按下标对每一个数组元素进行赋值。例:typedata_busisarray(0to7)ofbit;signala:data_bus;整体赋值:a<=“01000111”;分别赋值:a(0)<=‘0’;a(1)<=‘1’;a(2)<=‘0’;a(3)<

5、=‘0’;a(4)<=‘0’;a(5)<=‘1’;a(6)<=‘1’;a(7)<=‘1’;※物理类型:语句格式如下:(1)TYPE数据类型名IS范围;UNITS基本单位;单位;ENDUNITS例:P89例4-8用来表示时间、电压、容量和阻抗等物理量。※记录类型:将不同类型的数据和数据名组织在一起,而形成新的对象。语句格式如下:TYPE记录类型名ISRECORD记录元素名1:数据类型名;记录元素名2:数据类型名;……ENDRECORD;下面是记录类型定义的一个例子:typec_timeisrecordyear:integerrange0to3000;month:integerrange1to

6、12;date:integerrange1to31;enable:bit;data:std_logic_vector(15downto0);endrecord;记录类型的对象的说明:signalnumber:c_time;一个记录的每一个元素要由它的记录元素名来进行访问。对于记录类型的对象的赋值和数组类似,可以对其进行整体赋值,也可分别赋值,从记录类型的对象中提取记录元素时应使用“.”。对记录元素分别赋值:number.year<=2005;number.mouth<=9;number.date<=22;number.enable<=‘1’;number.data<=data_in;对记录

7、元素整体赋值:number<=(2005,9,22,‘1’,data_in);例2:P90例4-9用户定义的子类型SUBTYPE是TYPE所定义的数据类型的一个子集,它满足原数据类型的所有约束条件,原数据类型称为基本数据类型,SUBTYPE格式如下:SUBTYPE子类型名IS基本数据类型[约束范围];上述格式中的子类型名由设计者自定;基本数据类型必须是前面已有过type定义的类型。例:subtypedigisintege

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

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

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