请教:Quartus波形仿真中的浮点数(十六进制Hex)转换成十进制小数(Fractional)
- UID
- 790263
- 性别
- 男
|
请教: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不是浮点数?
请高手指教,如何才能得到正确的结果?能否直接设相关参数实现?还是需要再编程实现? |
|
|
|
|
|
- UID
- 520653
- 性别
- 男
|
|
|
|
|
|
- UID
- 1025911
|
QuartusII里使用的是定点小数的表示
首位为符号位 其余位为小数部分的补码 |
|
|
|
|
|