第三节 VHDL的数据组成
已有 242 次阅读 2011-12-16 21:33第三节 VHDL的数据组成 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
时间:2007-1-30 23:24:00,点击:557 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(二)VHDL允许的自定义数据类型 自定义数据类型主要有复合类型、存取类型、文件类型和子类型等。 1.复合类型复合类型包括数组类型和记录类型两种。 (1)数组类型是一组相同数据类型元素的集合,数组的元素可以是任何一种数据类型。数组中元素的个数,以及元素的排序方向(即下标数是由低到高,或是由高到低)由数组元素的下标范围决定。如子句“0 TO 7”是由低到高排序的8个元素;“15DOWNTO0”是由高到低排序的16个元素。 VHDL可以定义限定性数组和非限定性数组两种不同类型的数组。它们的区别在于,限定性数组下标的取值范围在数组定义时就被确定了,而非限定性数组下标的取值范围需留待随后确定。 定义限定性数组的语句格式如下: TYPE 数组名IS ARRAY (数组范围) OF 数据类型; 其中,数组名是新定义的限定性数组类型的名称;数组范围是元素的数量和排序方式,并且以整数表示;数据类型则是数组各元素的数据类型。 非限制性数组未说明所定义的数组下标的取值范围,而是定义某一数据对象为该数组类型时,再确定该数组下标范围的取值,如此,可通过不同的定义取值,使相同的数据对象具有不同下标取值。 定义非限制性数组的语句格式如下: TYPE 数组名 IS ARRAY (数组下标名RANGE <>)OF 数据类型; 其中,数组名是定义的非限制性数组类型的名称;数组下标名是以整数类型设定的一个数组下标名称;<>是下标范围待定符号,用到该数组类型时再填入具体的数值范围(注意:符号<>间不能有空格);数据类型是数组中每一元素的数据类型。 (2)记录类型是不同数据类型元素的集合。 记录是一种异构复合类型,记录中的元素可以是不同的类型。 定义记录类型的语句格式如下: TYPE 记录类型名ISRECORD 元素名: 元素数据类型; 元素名: 元素数据类型; … END RECORD [记录类型名]; 2.子类型子类型是已经定义的类型或者子类型的一个子集。有类型定义的地方就可以有子类型。子类型继承了被父类型定义的所有操作符和子程序。例如,在STANDARD程序包中,NATURAL和POSITIVE是INTEGER类型的子类型,它们可以用于任何INTEGER函数。 定义子类型的语句格式如下: SUBTYPE 子类型名IS 数据类型名[范围]; 表8-2VHDL的运算符及其优先级
|
发表评论 评论 (0 个评论)