VHDL自定义类型

发布时间:2024-03-21
在vhdl中,用户自定义库的类型有几种类型:枚举类型、整数和实数类型、数组类型、记录类型、子类型。
vhdl自定义类型定义语句type和子类型定义语句subtype实现用户自定义数据类型。
(1)枚举类型
枚举该类型的所有可能的值。格式:
如:type std_logic is('u','x','0','1','z','w','l','h','-)
type 类型名称 is (枚举文字{,枚举文字});
枚举类型的编码:
综合器自动实现枚举类型元素的编码,一般将第一个枚举量(最左边)编码为0,以后的依次加1。
编码用位矢量表示,位矢量的长度将取所需表达的所有枚举元素的最小值。
(2)整数类型
用户定义的整数类型是标准包中整数类型的子范围。格式:
例:type my_integer is integer range 0 to 9;
(3)数组类型
数组:同类型元素的集合。vhdl支持多维数组。
多维数组的声明:
type byte is array(7 downto 0) of bit;
type vector is array(3 downto 0) of byte;
限定数组、非限定数组、属性:
type 类型名称 is range 整数范围;
限定数组:
其索引范围有一定的限制。
type 数组名 is array(数组范围) of 数据类型;
非限定数组:数组索引范围被定义成一个类型范围。
type 数组名 is array(类型名称 range <>) of 数据类型;
属性:vhdl为多种类型定义了属性。
(4)记录类型
记录是不同类型的名称域的集合。
格式如下:
访问记录体元素的方式:记录体名.元素名
type 记录类型名is record
元素名:数据类型名;
元素名:数据类型名;
(5)子类型
子类型是已定义的类型或子类型的一个子集。
格式:
bit_vector 类型定义如下:
type bit_vector is array (natural range <>) of bit;
如设计中只用16bit;可定义子类型如下:
subtype my_vector is bit_vector(0 to 15);
注:子类型与基(父)类型具有相同的操作符和子程序。可以直接进行赋值操作。
上一个:起诉离婚是否需要去当地起诉
下一个:货车追尾司机死亡怎么办

查看电脑分区格式,苹果电脑安装windows分区格式
网易全新邮箱\&quot;
酒驾处理怎么处罚
火花断了一天怎么挽救天数会回来吗(火花断了一天怎么挽救除了冲svip)
磁盘修复怎么修复,磁盘损坏如何修复
使用测土配方施肥仪科学施肥的几个要点分析
蚯蚓,兰花的大敌!
招投标担保公司
做手机网站的几个小细节
微软surface能刷win7吗(surface平板电脑怎么刷机)