Board logo

标题: 请教:Quartus波形仿真中的浮点数(十六进制Hex)转换成十进制小数(Fractional) [打印本页]

作者: czjkk@163.com    时间: 2009-5-14 13:23     标题: 请教: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不是浮点数?

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

作者: lisa1027    时间: 2009-5-17 13:57

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


作者: ww1921    时间: 2015-1-18 12:55

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

首位为符号位   其余位为小数部分的补码




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0