VHDL数据类型转换

VHDL 数据类型的转换

在 VHDL 中 , 数据类型的定义是十分严格的 , 不同类型的数据之间是不能进行运算或者赋值操作的 , 这一点读者一定要注意。对于某一数据类型的常量、变量、信号和文件之间进行运算或者赋值操作时 , 必须要保证数据类型的一致性 , 否则仿真和综合过程中 EDA工具将会给出错误信息。可见 , 数据类型的转换在编写 VHDL 程序中显得十分重要。

通常 , VHDL 提供了 3 种数据类型的转换方法 , 它们分别是类型标识符转换、常量转换 和函数转换。

1. 类型标识符转换

这里 , 所谓类型标识符转换实际上就是利用数据类型的名称来进行类型的转换 , 这种方法通常只适用于那些关系比较密切的数据类型之间的转换。例如 , 整数和实数之间的数据类型转换 :

SIGNAL m: integer;

SIGNAL n: real;

m<= integer (n);

n < = real (m);

需要注意的是 , 上面实数转换整数时会发生四舍五入现象。不难看出, 采用类型标识符转换方法十分简单易行。但是, 类型标识符转换只适用于那些关系密切的数据类型 , 如果对关系并不十分密切的数据类型之间使用了这种方法 , 那么仿真和综合过程中 EDA 工具将会 给出错误信息。

2. 常量转换

这里 , 常量转换就是借助一个具有转换表格性质的常量来进行某些数据类型的转换 , 通常它的的仿真效率要比利用转换函数的效率高得多。在进行某些复杂算法或者数字信号处理的过程中 , 采用常量转换是一种非常有效的方法。

采用常量转换方法的具体操作步骤是首先定义一个数组常量 ( 它实际上就是一个转换表 ) , 然后通过给转换信号赋常量数组的元素值来完成数据类型类型的转换。

3. 函数转换

函数转换 , 顾名思义 , 就是利用一些特殊的转换函数来进行数据类型之间的转换。采用这种转换方法的具体步骤是首先定义一个转换函数 , 然后将要转换的对象作为实参赋给函数行参 , 最后通过调用函数就可以完成数据类型的转换。

一般来讲 , 转换函数可以由设计人员自己来编写 , 但是现在一些程序包中已经为设计人员提供了很多现成的转换函数 , 因此这里可以直接调用这些函数来进行数据类型之间的转换操作 , 从而省去了编写转换函数的麻烦。需要注意的是 , 如果要调用程序包中的转换函数, 设计人员必须要在调用前进行程序包使用的说明 .

下面简单列出一些程序包中提供的转换函数 :

to_stdlogicvector (s): bit vector 类型转换为 std _ logic _ vector 类型的函数;

to bitvector (s): std_logic _ vecator 类型转换成 bit _ vector 类型的函数;

to_stdlogic (s): bit 类型转换成 std _ logic 类型的函数 ;

to _bit(s): std _ logic 类型转换成 bit 类型的函数 ;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值