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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 7254|回复: 13

[原创] FPGA中浮点数求余有没有什么好的方法啊?(VHDL)求助!

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

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

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

x
在FPGA中对两个浮点数进行求余运算,不知道从何下手,请高手指点啊!不胜感激。
 楼主| 发表于 2011-3-10 08:38:52 | 显示全部楼层
我的思路是用浮点核先做除法,在对结果进行下取整,然后用被除数减去除数和结果的下取整之积。(fmodulo(a,b)=a-b*floor(a/b)),但感觉这样做好麻烦啊,各位大侠有没有更简洁的方法呢?谢谢。
发表于 2011-3-10 09:34:33 | 显示全部楼层
多数“移位加”类的除法算法都可以在得到结果的同时得到余数,或者只需要一次加法补偿即得到余数。
发表于 2011-3-10 09:35:59 | 显示全部楼层
赞成楼上的说法
 楼主| 发表于 2011-3-10 09:42:37 | 显示全部楼层
回复 3# patrick007


    谢谢你的解答,不过能说得再详细些吗?我是用的浮点核做除法,不知道浮点核有没有余数输出呢?
发表于 2011-3-10 10:09:43 | 显示全部楼层
核大概输出余数的不多吧。。。

刨去指数部分,光说尾数。
“移位加”类的算法,都是选出部分商,然后用被除数循环减去部分商与除数的积。
都是这么个过程,最后一次迭代后,剩余的被除数要么比除数小,要么是个负数 (不同算法不一样)。

比除数小,就说明除法做完了,剩下的就是余数;
是负数,说明上一次的部分商选大了,应该选比上次用的那个小1的数。也说明上次多减了一次除数。
做一次加法把它补偿回来就可以了。

自己做,可以达到和核一样的性能。
 楼主| 发表于 2011-3-10 10:44:25 | 显示全部楼层
回复 6# patrick007


    谢谢,对自己编浮点的除法不是很了解,能否给个例子以供参考呢?
发表于 2011-3-10 12:55:46 | 显示全部楼层
试着找找这本书

《Computer Arithmetic Algorithms: Second Edition》 by Israel Koren
里面除法的例子挺好的。

还有一本也可以参考
《Computer Arithmetic: Algorithms and Hardware Designs》by Behrooz Parhami
 楼主| 发表于 2011-3-11 10:04:37 | 显示全部楼层
回复 8# patrick007


    嗯,好的,谢了!
发表于 2011-3-11 11:32:34 | 显示全部楼层
除法器讲义.pdf (850.53 KB, 下载次数: 118 )
参考这个。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-28 11:58 , Processed in 0.024494 second(s), 10 queries , Gzip On, MemCached On.

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