当前位置:文档之家› VHDL语言数据类型及相互转换

VHDL语言数据类型及相互转换

VHDL语言数据类型及相互转换
VHDL语言数据类型及相互转换

标准数据类型

1,整数(INTEGER)

范围:-46

2,实数(REAL)

范围:(综合器不支持)

书写时一定要有小数?

3,位(BIT)

在数字系统中,信号经常用位值表示,位值用带单引号的'1'和'0'来表示标准数据类型

4,位矢量(BIT_VECTOR)

位矢量是用双引号括起来的一组位数据

"010101"

5,布尔量(BOOLEAN)

只有"真”和"假”两个状态,可以进行关系运算

6,字符(CHARACTER)

字符量通常用单引号括起来,对大小写敏感

明确说明1是字符时:CHARACTER'('1')

标准数据类型

7,字符串(STRING)

字符串是双引号括起来的由字母,数字或@,%,$组成的一串字符.区分大小写"laksdklakld" "10"

8,时间(TIME)

时间的单位:fs,ps,ns,ms,sec,min,hr

例:10 ns

整数数值和单位之间应有空格标准数据类型

9,错误等级(SEVERITY LEVEL)

在VHDL仿真器中,错误等级用来表示系统的状态,它共有4种:

NOTE注意)

WARNING警告)

ERROR错误)

FAILURE(失败)

标准数据类型

10,自然数(NATURAL)正整数(POSITIVE)

自然数是整数的一个子类型,包括0和正整数;正整数也是整数的一个子类型

只能是正整数数据除定义类型外,有时还需要定义约束范围?

INTEGER RANGE 100 DOWNTO 0

BIT_ VECTOR (3 DOWNTO 0)

REAL RANGE TO

IEEE定义的逻辑位与矢量

在IEEE |的程序包std_logic_1164 中定义了两个非常重要的数据类型:

1 ,std_logic

取值:0,1,Z,X,W,L,H

Z:高阻X:不定W:弱信号不定

L:弱信号0 H:弱信号1

2,Std_logic_vector

注意

1,在使用"std_logic" 和"std」ogic_vector" 时,在程序中必须声明库及程序包说明语句,即

LIBRARY ieee和这两句在程序中必不可少.

2,std_logic 有多个取值,与BIT不同,在编程时应特别注意,需要考虑全所有情况

用户自定义的数据类型

1,枚举类型

格式:TYPE数据类型名IS(元素,元素,…);

TYPE STD_LOGIC IS

(U';X;0';V;Z':W:L:H';-y;

TYPE week IS (Su n,Mo n,Tue,wed,Thu,Fri,Sat);

TYPE color IS (red,gree n,yellow,blue)

TYPE lift_state IS

(stop on 1,doorpee n, doorclose, doorwait1, doorwait2, doorwait3,

doorwait4, doorwait5,up,dow n, stop)

枚举类型的声明

TYPE color IS (red,gree n, yellow,blue);

VARIABLE A:COLOR;

SIGNAL B:COLOR;

A:=RED;

B<=YELLOW;

TYPE lever IS ('0','1','z');

SIGNAL V:lever;

V<='1';

用户自定义的数据类型

2,整数(INTEGER)

格式:TYPE数据类型名IS数据类型定义约束范围

例TYPE digit IS INTEGER RANGE 0 TO 9

VARIABLE A:DIGIT;

A:=5;

A:=28;

用户自定义的数据类型

3,实数(REAL)

格式:TYPE数据类型名IS数据类型定义约束范围TYPE current IS REAL RANGE -1E4 TO 1E4 VARIABLE A:CURRENT;

A:=1E3;

A:=1E10;

用户自定义的数据类型

4,数组(ARRAY)

格式:TYPE数据类型名IS ARRAY范围OF原数据类型名例:TYPE word IS ARRAY (1 TO 8) OF STD_LOGIC; TYPE word IS ARRAY (INTEGER 1 TO 8) OF STD_LOGIC; 数组常在总线,ROM和RAM中使用.

用户自定义的数据类型

5,记录(RECODE)类型

将不同的数据类型放在一块,就是记录类型数据

格式:TYPE记录类型名IS RECORD

元素名:数据类型名;

元素名:数据类型名;

END RECORD S录类型名];

记录(RECODE)类型

例:TYPE ba nk IS RECORD

addrO: STD_LOGIC_VECTOR(7 DOWNTO 0);

addr1: STD_LOGIC_VECTOR(7 DOWNTO 0);

r0: INTEGER;

END RECORD;

记录(RECODE)类型

例:CONSTANT LEN:i nteger:=100;

TYPE array logic IS ARRAY (99 dow nto 0)OF STD_LOGIC_VECTOR(7 DOWNTO 0) TYPE table IS RECORD

a: array logic;

b: STD_LOGIC_VECTOR(7 DOWNTO 0);

c: in teger RANGE 0 to len ;

END RECORD;

数据类型的转换

数据类型转换函数有VHDL语言的包提供

例如:STD_LOGIC_1164,

STD_LOGICARITH

STD_LOGIC_UNSIGNED等

函数

说明

1、STD_LOGIC_1164包

TO_STDLOGIC_VECTOR(A)

相关主题
文本预览
相关文档 最新文档