admin管理员组

文章数量:1531982

2024年4月5日发(作者:)

vhdl基本语法

VHDL 基础语法篇 ―― VHDL VHDL硬件描述语言 1.1 VHDL概

述 1.1.1 VHDL的特点

VHDL语言作为一种标准的硬件描述语言,具有结构严谨、描述

能力强的特点,由于

VHDL语言E1 = 14*161 = 224; (3) 位(BIT)数据类型

位数据类型的位值用字符.0.和.1.表示,将值放在单引号中,表示

二值逻辑的0和1。这里

的0和1与整数型的0和1不同,可以进行算术运算和逻辑运

算,而整数类型只能进行算术运算。 位数据类型的定义格式为: TYPE

BIT is ( '0', '1' ); 例如:

RESULT : OUT BIT; RESULT= .1.;

将RESULT引脚设置为高电平。

(4) 位向量(BIT_VECTOR)数据类型

位向量是基于BIT数据类型的数组。VHDL位向量的定义格式为:

TYPE BIT_VECTOR is array (***** range ) of BIT;

使用位向量必须注明位宽,即数组的个数和排列顺序,位向量的

数据要用双引号括起来。 例如 “1010”,X “A8”。其中1010是四位二

进制数,用X表示双引号里的数是十六进制数。 例如:

SIGNAL A :BIT_VECTOR (3 DOWNTO 0 ); A = “1110” ;

表示A是四个BIT型元素组成的一维数组,数组元素的排列顺序

是A3=1,A2=1,A1=1, A0=0。

(5) 布尔(*****)数据类型

一个布尔量具有真(TRUE)和假(FALSE)两种状态。布尔量没

有数值的含义,不能

用于数值运算,它的数值只能通过关系运算产生。例如,在IF语

句中,AB是关系运算,如果A=3,B=2,则AB关系成立,结果是布

尔量TRUE,否则结果为FALSE。 VHDL中,布尔数据类型的定义格

式为: TYPE ***** IS (FALSE, TRUE); (6) 字符(*****ER)数据类型

在*****D程序包中预定义了128个ASCII码字符类型,字符类型

用单引号括起来,如.A.,.b.,.1.等,与VHDL标识符不区分大小写不

同,字符类型中的字符大小写是不同的,如.B.和.b.不同。 (7) 字符串

(STRING)

在*****D程序包中,字符串的定义是:

TYPE STRING is array (*****E range ) of *****ER;

字符串数据类型是由字符型数据组成的数组,字符串必须用双引

号括起来。 例如:

*****T STR1 :STRING := “Hellow world”; 定义常数ST1是字符串,

初值是“Hellow world ”。 小提示:

与C语言类似,字符类型用单引号括起来,而字符串必须用双引

号括起来,别弄混了。 (8) 时间(TIME)数据类型

表示时间的数据类型,一个完整的时间类型包括整数表示的数值

部分和时间单位两个部 分,数值和单位之间至少留一个空格,如1

ms,20 ns等。 *****D程序包中定义时间格式为:

TYPE TIME is range -***-********-*****808 to ***-********-

*****807 UNITS fs; -- 飞秒

ps = 1000 fs; -- 皮秒 ns = 1000 ps; -- 纳秒 us = 1000 ns; --

微秒 ms = 1000 us; -- 毫秒 sec = 1000 ms; -- 秒 min = 60 sec; --

分 hr = 60min; -- 小时 END UNITS; 小提示:

实数,时间类型仅用于VHDL仿真,一般综合器不支持。 2. IEEE

预定义的标准逻辑位和标准逻辑位向量 (1) 标准逻辑位(STD_LOGIC)

数据类型

STD_LOGIC是位(BIT)数据类型的扩展,是STD_ULOGIC数据

类型的子类型。它是一

个逻辑型的数据类型,其取值取代BIT数据类型的取值0和1两

种数值,扩展定义了九种值,在IEEE *****程序包中,STD_ULOGIC和

本文标签: 类型数据类型字符数组运算