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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2678|回复: 7

[讨论] 求大神帮帮忙,搞不出来啊

[复制链接]
发表于 2017-7-15 21:11:10 | 显示全部楼层 |阅读模式

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

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

x
A *(8/9)怎么用verilog实现,或者说怎么个思路方法。结果要精确到小数点后5位(二进制),A是整数,不能用乘法器,请大神给点思路。我现在只有一点思路,就是在A *8这个地方采用左移3位的方法,但是除以9就不知道怎么弄了。难道要自己写个除法器感觉太麻烦,既然是个固定数,肯定有一个技巧。请各路大神不吝赐教。
发表于 2017-7-15 23:03:25 | 显示全部楼层
应该需要用到除法器的,由于除数的常数,那么除法器设计简单一些,资源占用较少。
发表于 2017-7-16 10:08:13 | 显示全部楼层
如果对计算结果的精度要求不高,可以用移位和加法来近似表示(1/9)这个数;比如用(1/16+1/32+1/64+1/1024+1/2048+1/4096+1/2^16+1/2^17+1/2^18)来近似(18位定点描述小数位,偏差<1e-5),通过移位和加法实现; 但是这个近似式在A的值超过一定位宽后,精度就会下降,需要用更长的位宽。如果A的最大值较大,又对结果精度要求高,不如做一个牛顿迭代除法器。建议关注应用本身对计算的要求,底层硬件的实现工具会帮你。
 楼主| 发表于 2017-7-16 12:59:43 | 显示全部楼层
回复 2# 吾要单片机


   不能用除法器的
发表于 2017-7-18 09:29:49 | 显示全部楼层




   我也觉得此方法合理,用定点。将8/9用定点表示,然后与A相乘,结果再做截取
发表于 2017-7-18 22:08:10 | 显示全部楼层
同意楼上观点
发表于 2017-7-18 22:47:46 | 显示全部楼层
學習學習~~~~~~~~~~~
发表于 2017-7-19 15:23:49 | 显示全部楼层
0000000000000000000000
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-12-23 02:50 , Processed in 0.021500 second(s), 7 queries , Gzip On, Redis On.

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