打印

cpld做除法的办法

[复制链接]
2320|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XLDZZ|  楼主 | 2010-12-31 22:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mmax| | 2010-12-31 22:41 | 只看该作者
齿轮比应该固定,乘除数固定,所以除法能用移位来搞定
60 / 29 = 2.069
=2+1/16+1/128
假设 a *60 / 29
= a<<1+a>>4+a>>7

使用特权

评论回复
板凳
wuyangtech| | 2010-12-31 23:05 | 只看该作者
VHDL是不能直接写除法的吧

使用特权

评论回复
地板
linqing171| | 2011-1-1 19:11 | 只看该作者
范围窄的话,可以用比较器,比如
if(x<29) y=0 ;
else if(x<58)y=1;

或者搞个表格. 来存储0~255除以29后的结果和余数.
或者搞个表格, 来存储0*29~255*29 的结果,然后根据你的数据用循环(计数器简单的状态机)来进行比较,直到结果为止.
不过这个比用减法来做除法浪费了太多空间了.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

182

帖子

0

粉丝