首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xilinx MicroBlaze浮点兼容性

Xilinx MicroBlaze浮点兼容性
EN

Stack Overflow用户
提问于 2014-07-02 14:50:56
回答 2查看 910关注 0票数 0

我有一个针对MicroBlaze CPU的'c‘代码。

当我在Eclipse + GCC或Visual Studio中将代码作为c程序进行调试时,我得到了我想要的结果。

然而,当我在目标上运行时,结果就不同了。

它只发生在浮点运算(乘法和除法)上。

我怎样才能使它在完全浮点精度下工作?

有没有特别的GCC旗帜?

附注:

MicroBlaze的配置是启用浮点运算的所有硬件。

EN

回答 2

Stack Overflow用户

发布于 2014-07-02 16:02:53

我对MicroBlaze不是很有经验,但是the Wikipedia page说:

此外,可以有选择地添加/移除很少使用但在硬件中实现成本较高的关键处理器指令(即,乘法、除法和浮点运算)。

重点是我的。

因此,请确保您的特定MicroBlaze确实支持浮点运算,否则我认为您的结果将非常随机。

还要确保您的编译器工具链生成适当的指令,有时是用于嵌入式开发支持软件模拟浮点的工具链。通过反汇编最终的代码,并查看浮点操作是如何实现的,这应该是微不足道的。

票数 1
EN

Stack Overflow用户

发布于 2014-07-03 20:46:35

硬件中的MicroBlaze浮点支持IEEE754,但《MicroBlaze参考指南》中列出了一些例外。

浮点在所有机器上并不是100%相同的。它取决于执行操作时的实际精度(硬件在执行单精度操作时可以使用扩展精度),还取决于舍入模式的配置(IEEE定义了四种不同的舍入模式)。

MicroBlaze不支持非规范化浮点(它们将被认为是零)。然而,正常的编码应该避免非正规化值,因为它们具有降低的准确性。

你认为有什么不同?

戈兰·比尔斯基

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24524615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档