第四章 VHDL的语言要素

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章VHDL的语言要素

4.1 VHDL的数据对象

与其他高级语言一样,VHDL中把用来承载数据的容器叫做VHDL的数据对象,VHDL的数据对象主要有信号、常量和变量三类。

1 常量

在VHDL中,常量是一种不变的量,它只能在对它定义时进行赋值,并在整个程序中保持该值不变。常量的功能一方面可以在电路中代表电源、地线等,另一方面可提高程序的可读性,也便于修改程序。常量定义的格式为:

CONSTANT 常量名:数据类型:=表达式;

[例3.4] 常量定义举例

CONSTANT V: INTEGER:=8;

2 变量

变量是临时数据的容器,它没有物理意义,并且只能在进程和子程序中定义,也只能在进程和子程序中使用。变量一旦赋值立即生效。变量定义的描述格式为:VARIABLE 变量名:数据类型[:=表达式];

[例3.5]变量定义举例

VARIABLE y: INTEGER;

3 信号

信号是VHDL的一种重要数据对象,它定义了电路中的连线和元件的端口。其中端口和内部信号定义的差别是在端口定义中多了一个端口模式的定义。信号是一个全局量,可以用来进行各模块之间的通信。信号定义的格式为:

SIGNAL 信号名:数据类型;

[例3.6]信号定义举例

SIGNAL A: STD_LOGIC;

4.2 VHDL的数据类型

VHDL是一种强类型的语言,每一个数据对象都必须具有确定的数据类型定义,并且只有在相同数据类型的数据对象之间,才能进行数据交换。VHDL预定义了大量的数据类型,下面介绍几种最常用的数据类型。

1 整数数据类型(INTEGER)

整数类型的数有正整数负整数和零,在VHDL中其取值范围是:

-2147483547---2147483646 。

2 实数数据类型(REAL)

VHDL的实数与数学中的实数或浮点数相似,只是范围被限定为:-1.0E38---1.0E38,并且在书写时一定要有小数。

3 位数据类型(BIT)

在数字系统中,信号经常用位数据类型表示,位数据类型属于枚举类型,其值是用带单引号的‘1’和‘0’表示。

4 位矢量数据类型(BIT_VECTOR)

位矢量是用双引号括起来的一组位数据,例如“010101”,通常用来表示数据总线。

5 布尔量数据类型(BOOLEAN)

布尔量数据类型也属于枚举类型,其值只有“TRUE”和“FALSE”两种状态,通常用来表示关系运算和关系运算结果。

6 字符数据类型(CHARACTER)

VHDL的字符数据类型表示ASCII码的128个字符,书写时要求用单引号括起来,并且要区分大小写。例如:‘A’,‘a’等。

7 字符串数据类型(STRING)

字符串是双引号括起来的一串字符。例如:“laksdklakld”

8 STD_LOGIC数据类型

与位数据类型相似,STD_LOGIC数据类型也属于枚举类型,但它的取值有下面的九种:‘U’初始值

‘X’不定

‘0’0

‘1’1

‘Z’高阻

‘W’弱信号不定

‘L’弱信号0

‘H’弱信号1

‘-’不可能情况。

9 STD_LOGIC_VECTOR数据类型

STD_LOGIC_VECTOR数据类型,表示的是用双引号括起来的一组STD_LOGIC数据“10101101”,通常用来表示数据总线。

由于STD_LOGIC的九种取值,更能反映电路的实际情况,所以在VHDL描述中一般用STD_LOGIC和STD_LOGIC_VECTOR,取代BIT和BIT_VECTOR等数据类型。

因为STD_LOGIC数据类型,是在IEEE库的STD_LOGIC_1164程序包中说明的,所以当在设计中要使用这种数据类型时,必须在VHDL的库、程序包说明语区,加入下列库、程序包说明语句:

[例3.7]库、程序包说明举例

LIBRARY IEEE;

USE IEEE.std_logic_1164.ALL;

4.3 VHDL语言的操作符和表达式

VHDL中大量的设计思想是用表达式配合实现的。与其他高级软件编程语言相似,VHDL的表达式由操作数和操作符组成。操作数由前面介绍的具有确定数据类型的数据对象担任。操作符用来连接操作数,以完成所要求的数据的处理和转换。VHDL具有丰富的预定义操作符,由这些操作符可以完成各种形式的表达式的功能。预定义操作符可分为四种类型:算术操作符,关系操作符,逻辑操作符和连接操作符。下面分别介绍四种类型的操作符和对应的简单的表达式,关于表达式的综合表示形式将在后面的具体实例中进行介绍。

1 逻辑操作符和逻辑表达式

逻辑操作符在逻辑表达式中,用来完成逻辑类型数据对象的逻辑操作。VHDL的逻辑操作符如表3.2所示。

表3.2 逻辑操作符

[例3.8]简单逻辑表达式举例

A and B

not Z

注意,逻辑操作符左右的数据类型必须相同

2 算数操作符和算数表达式

VHDL提供的完成算数运算的操作符如表3.3所示。

表3.3 算数操作符

[例3.9]简单算数表达式举例

A +

B –C

3 关系操作符和关系表达式

关系操作符在关系表达式中,用于进行相同数据类型数据对象间的比较,关系表达式的结果是布尔类型,VHDL提供的关系操作符如表3.4所示。

表3.4 关系操作符

[例3.10]简单关系表达举例

Y >= G

相关文档
最新文档