booth乘法器
一般的乘法器:
形成的電路:
這樣會造成很多的資源浪費
乘數中1的數量將會極大影響電路的運算速度
比如0111_1110會產生6個部分積
但是如果把0111_1110寫成0111_1110=1000_0000-0000_0001那么運算就會大大的簡化了
乘數就可以寫成 (+1)0000_000(-1) 前面的(+1)為加上一個被乘數,后面的(-1)為減去一個被乘數
下面的表格和總結來自于https://blog.csdn.net/a568283992/article/details/76405510
總結一下規律
1.乘數Y與被乘數X均以補碼的形式參與乘法運算,運算結果是積的補碼;
2.部分積和被乘數采用雙符號位,乘數采用單符號位;
3.初始部分積為0,在乘數的補碼末位再添加一位附加位Yn+1,初始值為0;
4.根據YnYn+1的值進行相應的操作,注意!其中所有的右移操作均為算術右移
5.累加n+1次,最后一次不做算數右移;
?
ps:可以看出,booth乘法器需要有n個周期(n為乘數的位寬),這一點和華萊士乘法器相比就沒有優勢了
文章只是我對Booth乘法器的部分理解,歡迎交流討論
?
總結
- 上一篇: 微信接口验证类php,微信公众平台消息接
- 下一篇: GSL----积分部分(翻译+精简)