VHDL数据类型的转换

3.数据类型的转换

VHDL程序中,不同类型的对象不能代入,因此要进行类型转换.类型转换的方法有:

(1)类型标记法.用类型名称来实现关系密切的标量类型之间的

转换.

例如: VARIABLE x:INTEGER;

VARIABLE y:REAL;

使用类型标记(即类型名)实现类型转换时,可采用赋值语句:

x :=INTEGER(y); y :=REAL(x).

(2)类型函数法.

VHDL程序包中提供了多种转换函数,使得某些类型的数据之间可以相互转换,以实现正确的赋值操作.常用的类型转换函数有:

CONV_INTEGER ( ):STD_LOGIC_VECTOR类型转换成

INTEGER类型.

CONV_STD_LOGIC_VECTOR( ):INTEGER类型,UNSIGNED

类型或SIGNED类型转换成STD_LOGIC_VECTOR类型.

TO_BIT( ):STD_LOGIC类型转换成BIT类型.

TO_BIT_VECTOR( ):STD_LOGIC_VECTOR类型转换

BIT_VECTOR类型.

TO_STD_LOGIC( ):BIT类型转换成STD_LOGIC类型.

TO_STD_LOGIC_VECTOR( ):BIT_VECTOR类型转换成

STD_LOGIC_VECTOR类型.

注意:引用时必须首先 打开库和相应的程序包.

该函数由STD_LOGIC_UNSIGNED

程序包定义

该函数由STD_LOGIC_ARITH

程序包定义

以下函数由STD_LOGIC_1164

-0-----------------------------------------------

类型转换

STD_LOGIC_VECTOR转换成INTEGER

STD_LOGIC_UNSIGNED包含集

CONV_INTEGER(A)

INTEGER,UNSDGNED,SIGNED转换成STD_LOGIC_VECTOR

UNSIGNED,SIGNED转换成INTEGER

STD_LOGIC_ARITH包集合

CONV_STD_LOGIC_VECTOR(A,位长)

CONV_INTEGER(A)

BIT_VECTOR转换为STD_LOGIC_VECTOR

STD_LOGIC_VECTO转换为BIT_VECTOR

BIT转换成STD_LOGIC

STD_LOGIC转换成BIT

STD_LOGIC_1164包集合

TO_STDLOGICVECTOR(A)

TO_BITVECTOR(A)

TO_STDLOGIC(A)

TO_BIT(A)

"STD_LOGIC_VECTOR"变换成"INTEGER"的实例

LIBRARY IEEE;

USE IEEESTD_LOGIC_1164.ALL;

USE IEEESTD_LOGIC_UNSIGNED.ALL;

ENTITY add5 IS

PORT (num:INSTD_LOGIC_VECTOR (2 DOWNTO 0);

);

END add5;

ARCHITECTURE rtl OF add5 IS

SIGNAL in_num:INTEGER RANGE 0 TO 5;

BEGIN

in_num<=CONV_INTEGER (num);位矢量转换成整数变换式

END rtl;

^0^

------------------------

                                                      

STD_LOGIC_1164包集合          

TO_STDLOGICVECTOR(A) BIT_VECTOR转换为STD_LOGIC_VECTOR

TO_BITVECTOR(A)           STD_LOGIC_VECTO转换为BIT_VECTOR

TO_STDLOGIC(A)             BIT转换成STD_LOGIC

TO_BIT(A)                      STD_LOGIC转换成BIT

STD_LOGIC_ARITH包集合

CONV_STD_LOGIC_VECTOR(A,INTEGER,UNSDGNED,SIGNED转换

位长)                                       STD_LOGIC_VECTOR

CONV_INTEGER(A)                 UNSIGNED,SIGNED转换成INTEGER

STD_LOGIC_UNSIGNED包含集 

CONV_INTEGER(A)                  STD_LOGIC_VECTOR转换成INTEGER

 

 

n         LIBRARY IEEE

n      USE IEEE STD_LOGIC_1164.ALL

n      USE IEEE STD_LOGIC_UNSIGNED.ALL

n      ENTITY add5 IS

n      PORT (num:IN STD_LOGIC_VECTOR (2 DOWNTO 0)

n      

n                         );

n      END add5

n      ARCHITECTURE rtl OF add5 IS

n      SIGNAL in_num:INTEGER RANGE 0 TO 5

n      

n      BEGIN

n      in_num<=CONV_INTEGER(num);位矢量转换成整数变换式

n      

n      END rtl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值