打印

VHDL数据类型转换

[复制链接]
1835|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星星之火红|  楼主 | 2012-10-16 20:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
VHDL 数据类型的转换
在 VHDL 中 , 数据类型的定义是十分严格的 , 不同类型的数据之间是不能进行运算或者赋值操作的 , 这一点读者一定要注意。对于某一数据类型的常量、变量、信号和文件之间进行运算或者赋值操作时 , 必须要保证数据类型的一致性 , 否则仿真和综合过程中 EDA工具将会给出错误信息。可见 , 数据类型的转换在编写 VHDL 程序中显得十分重要。
通常 , VHDL 提供了 3 种数据类型的转换方法 , 它们分别是类型标识符转换、常量转换 和函数转换。
1. 类型标识符转换
这里 , 所谓类型标识符转换实际上就是利用数据类型的名称来进行类型的转换 , 这种方法通常只适用于那些关系比较密切的数据类型之间的转换。例如 , 整数和实数之间的数据类型转换 :
SIGNAL m: integer;
SIGNAL n: real;
m<= integer (n);
n < = real (m);
需要注意的是 , 上面实数转换整数时会发生四舍五入现象。不难看出, 采用类型标识符转换方法十分简单易行。但是, 类型标识符转换只适用于那些关系密切的数据类型 , 如果对关系并不十分密切的数据类型之间使用了这种方法 , 那么仿真和综合过程中 EDA 工具将会 给出错误信息。

相关帖子

沙发
星星之火红|  楼主 | 2012-10-16 20:42 | 只看该作者
2. 常量转换

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

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

3. 函数转换

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

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

使用特权

评论回复
板凳
星星之火红|  楼主 | 2012-10-16 20:42 | 只看该作者
下面简单列出一些程序包中提供的转换函数 :

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 类型的函数 ;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

101

主题

1782

帖子

22

粉丝