登录站点

用户名

密码

第三节 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的运算符及其优先级

类型

运算符

功能

优先级

逻辑运算

not

取反

 

 

 

 

乘除运算

abs

取绝对值

**

取幂

*

/

Mod

取模

Rem

取余

一元正负运算

+

-

加减合并运算

+

-

&

合并

关系运算

=

相等

/=

不等

<

小于

<=

小于等于

>

大于

>=

大于等于

逻辑运算

And

Or

Nand

与非

Nor

或非

Xor

异或

上一篇: FPGA简介 下一篇: VHDL移位操作符

分享 举报