首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

请教:Quartus波形仿真中的浮点数(十六进制Hex)转换成十进制小数(Fractional)

请教:Quartus波形仿真中的浮点数(十六进制Hex)转换成十进制小数(Fractional)

请教:Quartus波形仿真中的浮点数(十六进制Hex)转换成十进制小数(Fractional)

VHDL中的浮点数(十六进制)转换成十进制实数根据IEEE定义的浮点数,32位二进制(8位二进制)的表示方法为: 符号位(1位)+阶码(8位)+尾数(23位)

利用Quartus中的浮点数乘法器模块ALTFP_MULT(32位乘32位)仿真:
输入 十六进制(Hexadecimal) BE0F2248 * BF26952E 得结果 3DBA4746 (可知,此运算过程的十六进制表达式是正确的)
同时,理论上对应的正确的十进制运算是 (-0.139779205)*(-0.65071378)=0.0909567548509449

但是在Quartus里,将仿真显示结果的properties内的radix 改成Fractional,上述十六进制运算对应结果却是:
(-0.5156314968466759) * (-0.50663504842668772) =0.5027929525822401

在仿真结果中,这三个十六进制浮点数(正确值)分别对应的十进制数都不是理论正确值,为什么呢?是不是Quartus中的Fractional不是浮点数?

高手指教,如何才能得到正确的结果?能否直接设相关参数实现?还是需要再编程实现?

我也遇到过这个问题,你解决了没有?分享一下!

QuartusII里使用的是定点小数的表示

首位为符号位   其余位为小数部分的补码
返回列表