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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 5458|回复: 15

[求助] 怎样实现1/3?

[复制链接]
发表于 2011-9-28 07:25:40 | 显示全部楼层 |阅读模式

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

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

x
现在在考虑一个除法问题,1/3,精确到小数点后5位,如果用FPGA实现,请问大家知道吗?可以说说啊?
发表于 2011-9-28 09:38:46 | 显示全部楼层
先在被除数后补5个‘0’,然后做除法。
简单点就循环减法,复杂点就做移位除法。
 楼主| 发表于 2011-9-28 10:31:10 | 显示全部楼层
回复 2# sdwsh


    自己写的话? 用这个除法器的资料啊?
 楼主| 发表于 2011-9-28 10:32:43 | 显示全部楼层
回复 3# jackertja


   比如 1/3 转化为100000 / 11 的出来的结果为001001 ? 那么怎么转换成0.33333呢?
发表于 2011-9-28 11:01:03 | 显示全部楼层
把1/3=0.33...变成乘法,即一个数乘以0.33...
发表于 2011-9-28 11:01:42 | 显示全部楼层
回复 5# shiyinjita


    再左移5位,还原。
 楼主| 发表于 2011-9-28 16:25:07 | 显示全部楼层
回复 6# IC狂人


    那还不是0.3333啊? 我的想法是在FPGA直接可以做出1/3 = 0.33333的,包括0.33333也是FPGA实现的
发表于 2011-9-28 16:32:58 | 显示全部楼层
回复 4# shiyinjita

补5个‘0’表示小数点左移了5b,"01"/"11" 变成  b"01.00000"/b"11" = b"00.01010" = 0.25+0.0625 = 0.3125 约= 0.33*32

这个是保留二进制的小数点后5位的方法,突然发现你是要十进制的小数点后5位啊,那得补17个‘0’。。。。。

如果除数是固定等于3: /3 = *0.33333 = *0.25 + *0.0625 + *0.015625 + *0.0xxx 逼近
发表于 2011-9-28 16:52:15 | 显示全部楼层
回复 7# shiyinjita

    如楼上所说。精确到小数点后5位,那需要10^5对2取对数(约为16.6取整17),即二进制数后面加17个0。
 楼主| 发表于 2011-9-29 08:29:43 | 显示全部楼层
回复 8# jackertja


    那么这个 *0.5 ,*0.25 ,*0.125,
  在FPGA怎么表示呢? 是右移啊? 还是 ?

谢谢了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-18 06:17 , Processed in 0.023555 second(s), 9 queries , Gzip On, MemCached On.

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