21ic电子技术开发论坛
标题:
cpld做除法的办法
[打印本页]
作者:
XLDZZ
时间:
2010-12-31 22:05
标题:
cpld做除法的办法
最近搞一个电机的驱动 涉及到一个电子齿轮的算法需要用到除法
不知道是否能 用VHDL来写除法 书上只说规模太大,不适合做除法或乘法
如果我定义两个signal 为integer 比如说60/29因该是等于2吗?
主要是没有用过VHDL来写除法的 而且是用CPLD来写的
作者:
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 的结果,然后根据你的数据用循环(计数器简单的状态机)来进行比较,直到结果为止.
不过这个比用减法来做除法浪费了太多空间了.
欢迎光临 21ic电子技术开发论坛 (https://bbs.21ic.com/)
Powered by Discuz! X3.5