3.3 VHDL语言要素
(4)记录类型 记录是不同类型的名称域的集合。格式如下: type 数据类型名 is record 元素名:数据类型名; 元素名:数据类型名; ┇ end record; 对于记录类型的数据对象赋值的方式,可以是整体赋值也可以是对其中的单个元素进行赋值。在使用整体赋值方式时,可以有位置关联方式或名字关联方式两种表达方式。如果使用位置关联,则默认为元素赋值的顺序与记录类型声明时的顺序相同。如果使用了OTHERS选项,则至少应有一个元素被赋值,如果有两个或更多的元素由OTHERS选项来赋值,则这些元素必须具有相同的类型。此外,如果有两个或两个以上的元素具有相同的子类型,就可以以记录类型的方式放在一起定义。 例: constant len : integer:= 8 ; subtype byte_vec is bit_vector (len-1 downto 0) ; type byte_and_ix is record byte : byte_vect ; ix : integer range 0 to len ; end record ; signal x, y, z : byte_and_ix ; signal data : byte_vect ; signal num : integer ; ……. x.byte <= “11110000” ; x.ix <= 2 ; data <= y.byte ; num <= y.ix ; z <= x ;
(5)子类型 子类型是已定义的类型或子类型的一个子集。格式: subtype 子类型名 is 数据类型名[范围]; 例: bit_vector 类型定义如下: type bit_vector is array (natural range <>) of bit; 如设计中只用16bit;可定义子类型如下: subtype my_vector is bit_vector(0 to 15); 注: 子类型与基(父)类型具有相同的操作符和子程序。
|
|||