VHDL数据类型的转换

上一篇 / 下一篇  2007-08-20 09:08:54 / 天气: 晴朗 / 心情: 高兴 / 个人分类:VHDL

标签:

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 IEEE
STD_LOGIC_1164.ALL;
USE IEEE
STD_LOGIC_UNSIGNED.ALL;
ENTITY add5 IS
PORT (num:IN
STD_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

 


FPGA/CPLD器件价格查询

TAG: VHDL

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-12-02  
 123456
78910111213
14151617181920
21222324252627
28293031   

我的存档

数据统计

  • 访问量: 2187
  • 日志数: 8
  • 文件数: 3
  • 建立时间: 2007-08-19
  • 更新时间: 2007-08-22

RSS订阅

Open Toolbar