在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 15333|回复: 30

[原创] 在FPGA中对一个浮点数进行下取整有什么好的方法?

[复制链接]
发表于 2011-3-9 14:49:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
小弟在FPGA中进行浮点运算时,需要对某些浮点数下取整,在Vhdl语言中似乎没有这样的函数,所以出来向大侠们请教一下。做过这方面的前辈们可否给些代码(VHDL)以供参考,或给些思路。小弟不胜感激!
发表于 2011-3-9 15:17:15 | 显示全部楼层
指的是运算值的舍入吗?
在IEEE754标准中,舍入处理提供了四种可选方法:
就近舍入 其实质就是通常所说的"四舍五入"。例如,尾数超出规定的23位的多余位数字
是10010,多余位的值超过规定的最低有效位值的一半,故最低有效位应增1。若多余的5位
是01111,则简单的截尾即可。对多余的5位10000这种特殊情况:若最低有效位现为0,则截
尾;若最低有效位现为1,则向上进一位使其变为 0。
朝0舍入 即朝数轴原点方向舍入,就是简单的截尾。无论尾数是正数还是负数,截尾都使取
值的绝对值比原值的绝对值小。这种方法容易导致误差积累。
朝+∞舍入 对正数来说,只要多余位不全为0则向最低有效位进1;对负数来说则是简单的
截尾。
朝-∞舍入 处理方法正好与 朝+∞舍入情况相反。对正数来说,只要多余位不全为0则
简单截尾;对负数来说,向最低有效位进1。
参考:
2.6.1浮点加法、减法运算.pdf (127.67 KB, 下载次数: 115 )
2.6.2浮点乘法、除法运算.pdf (88.8 KB, 下载次数: 91 )
2.6.3浮点运算流水线.pdf (127.48 KB, 下载次数: 61 )
2.6.4浮点运算器实例.pdf (114.65 KB, 下载次数: 97 )
-----------------
还是说浮点转换成整型时的舍入?
 楼主| 发表于 2011-3-9 15:39:20 | 显示全部楼层
回复 2# jackertja


    谢谢您的耐心回复,我的意思是将一个浮点数只取它的整数部分。比如0100000010100110*****,取整后为010000001010000*****。
 楼主| 发表于 2011-3-9 15:40:34 | 显示全部楼层
回复 2# jackertja


    转为整形时的舍入。
发表于 2011-3-10 09:02:11 | 显示全部楼层
在转换时直接舍弃低位不就可以了吗?
附件提供一个参考。
flt_to_int_example.pdf (23.15 KB, 下载次数: 89 )
发表于 2011-3-10 09:05:52 | 显示全部楼层
哦,你是说去掉浮点数的小数部分,只留下整数部分,结果仍然以浮点数形式保存。
那也类似,根据指数判断有几位小数,把那几位置为0就可以了。
 楼主| 发表于 2011-3-10 09:08:22 | 显示全部楼层
回复 5# jackertja


    谢谢您的耐心解答,我下下来看看。
 楼主| 发表于 2011-3-10 09:12:43 | 显示全部楼层
回复 6# jackertja


    我用的是if-elsif-...else,来判断小数位的个数的。用case语句的话,对于指数部分小于127和大于149的情况不好表达。
发表于 2011-3-10 09:28:52 | 显示全部楼层
正数比较好处理,只需要根据指数判断小数点到底在哪,然后后面置零即可。

负数,如果你要做-5.234 = -6的话,需要进行一次进位。

做出来不难,做的快的话,是有很多说道的。
 楼主| 发表于 2011-3-10 09:48:29 | 显示全部楼层
回复 9# patrick007


    还好,我所计算的都是正数。谢谢你了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 02:56 , Processed in 0.035852 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表