VHDL语言数据类型及相互转换_第1页
VHDL语言数据类型及相互转换_第2页
VHDL语言数据类型及相互转换_第3页
VHDL语言数据类型及相互转换_第4页
VHDL语言数据类型及相互转换_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

标准数据类型

1,整数(INTEGER)

范围:-2147483547---2147483646

2,实数(REAL)

范围:-1.0E38---1.0E38(综合器不支持)

书写时一定要有小数.

3,位(BIT)

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

标准数据类型

4,位矢量(BIT_VECTOR)

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

"010101"

5,布尔量(BOOLEAN)

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

6,字符(CHARACTER)

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

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

标准数据类型

7,字符串(STRING)

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

"laksdklakld""1010101010"

8,时间(TIME)

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

例:10ns

整数数值和单位之间应有空格

标准数据类型

9,错误等级(SEVERITYLEVEL)

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

NOTE(注意)

WARNING(警告)

ERROR(错误)

FAILURE(失败)

标准数据类型

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

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

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

INTEGERRANGE100DOWNTO0

BIT_VECTOR(3DOWNTO0)

REALIEEE定义的逻辑位与矢量

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

1,std_logic

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

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

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

2,Std_logic_vector

注意

1,在使用"std_logic"和"std_logic_vector"时,在程序中必须声明库及程序包说明语句,即LIBRARYieee和std_logic_1164.ALL这两句在程序中必不可少.

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

用户自定义的数据类型

1,枚举类型

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

TYPESTD_LOGICIS

('U','X','0','1','Z','W','L','H','-');

TYPEweekIS(Sun,Mon,Tue,wed,Thu,Fri,Sat);

TYPEcolorIS(red,green,yellow,blue)

TYPElift_stateIS

(stopon1,doorpeen,doorclose,doorwait1,doorwait2,doorwait3,doorwait4,doorwait5,up,down,stop)

枚举类型的声明

TYPEcolorIS(red,green,yellow,blue);

VARIABLEA:COLOR;

SIGNALB:COLOR;

A:=RED;

B<=YELLOW;

TYPEleverIS('0','1','z');

SIGNALV:lever;

V<='1';

用户自定义的数据类型

2,整数(INTEGER)

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

例TYPEdigitISINTEGERRANGE0TO9

VARIABLEA:DIGIT;

A:=5;

A:=28;

用户自定义的数据类型

3,实数(REAL)

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

TYPEcurrentISREALRANGE-1E4TO1E4

VARIABLEA:CURRENT;数据类型的转换

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

例如:STD_LOGIC_1164,

STD_LOGIC_ARITH

STD_LOGIC_UNSIGNED等等

函数

说明

1、STD_LOGIC_1164包

TO_STDLOGIC_VECTOR(A)

TO_BITVECTOR(A)

TO_LOGIC(A)

TO_BIT(A)

由BIT_VECTOR转换成STD_LOGIC_VECTOR

由STD_LOGIC_VECTOR转换成BIT_VECTOR

由BIT转换成STD_LOGIC

由STD_LOGIC转换成BIT

2、STD_LOGIC_ARITH包

CONV_STD_LOGIC_VECTOR(A,位长)

CONV_INTEGER(A)

由INTEGER,UNSIGNED和SIGNED转换成

STD_LOGIC_VECTOR

由UNSIGNED和SIGNED转换成INTEGER

3、STD_LOGIC_UNSIGNED包

CONV_INTEGER(A)

_

STD_LOGIC_VECTOR转换成INTEGERVHDL属性

VHDL没有一般程序语言中的那些运算类标准函数,取而代之的是多种能反映和影响硬件行为的属性.属性在描述时序电路的VHDL设计文件中几乎处处可见,如检测上升沿,下降沿,知道前一次发生的事件.

VHDL属性

属性指的是关于实体,结构体,类型及信号的一些特征.有的属性对综合(设计)非常有用.

VHDL的属性可分为数值类属性,函数类属性,范围类属性,信号类属性,类型类属性.其引用的一般形式为:对象'属性.

数值类属性

数值类属性用于返回数组,块或一般数据的有关值,如边界,数组长度等信息.对一般的数据有4种数值类属性:对象类型的左边界,右边界,上边界,下边界,对应的关键字是:LEFT,RIGHT,HIGH,LOW.数组在加一个长度属性LENGTH.

数值类属性

sdown:INstd_logic_vector(8DOWNTO0);

sup:INstd_logic-vector(0to8);

这两个信号的各属性值如下:

sdown'left=8;sdown'right=0;sdown'low=0;sdown'high=8;sdown'length=9;

sup'left=0;sup'right=8;sup'low=0;sup'high=8;sup'length=9;

数值类属性

TYPEbit32ISARRAY(63DOWNTO32)OFBIT

VARIABLE:left_range,right_range,up_range,low_range,len:INTEGER;

BEGIN

left-range:=bit32'LEFT;--return63

right-range:=bit32'RIGHT;--return32

up-range:=bit32'HIGH;--return63

low-range:=bit32'LOW;--return32

len:=bit32'LENGTH;--return32

函数类属性

信号属性函数属于函数类属性,用来返回有关信号行为功能的信息.共有5种信号属性函数,分别是:'EVENT(事件);'ACTIVE(活跃);

'LAST_EVENT(最近一次事件到现在经过多少时间);'LAST_ACTIVE(最近一次活跃到现在经过多少时间);'LAST_VALUE(信号变化前的取值是什么)

EVENT

EVENT:它的值为布尔型,取值为TRUE或FALSE;

如果刚好有事件发生在该属性所附着的信号上(即信号有变化),取值为TRUE.

利用此属性可决定时钟边沿是否有效,即时钟是否发生.

EVENT

SIGNALclk:INstd_logic;

clk'EVENTANDclk='1'

clk='1'ANDclk'EVENT

clk'EVENTANDclk='0'

clk='0'ANDclk'EVENT

rising_edge(clk)falling_edge(clk)

EVENT和ACTIVE

EVENT要求信号值发生变化;1到0,0到1

ACTIVE信号值的任何变化,1到1,1到0,0到1,0到0;

所有的事件都是活跃,但并非所有的活跃都是事件

范围类属性

'RANGE属性,其生成一个限制性数据对象的范围.

例SIGNALdata_bus:std_logic_vector(15DOWNTO0);

data_bus'RANGE=15downto0用VHDL语言设计分频电路,把1KHZ的时钟分至约1HZ左右的时钟LIBRARYIEEE; USEIEEE.Std_Logic_1164.ALL; ENTITYFreDeviderIS PORT (Clkin:INStd_Logic; Clkout:OUTStd_Logic); END; ARCHITECTUREDeviderOFFreDeviderIS CONSTANTN:Integer:=499; signalcounter:Integerrange0toN; signalClk:Std_Logic; BEGIN PROCESS(Clkin)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论