聽說只需要3-5行就可以寫出來了~可是我怎麼找都找不到這總方法
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.164.224.56
以前需要寫的時候沒寫出來,但是應該是用shift-and-subtract吧
簡單的流程:
令被除數d,除數s,商q,暫存空間t,u,餘數r
1: 令u=s
2: 把u左移 (left shift, SHL) 使與d的位數相等
3: 令t=d-u
4: 檢查t的正負
若t為正:設q的LSB(最右邊位元)為1,左移q一位,令d=t
若t為負:設q的LSB(最右邊位元)為0,左移q一位
5: 右移u一位
6: 比較u和s
若u>=s:回到步驟3
若u<s:令r=d,結束
這當然還有很多精簡空間,但是應該不能3-5行寫出來
何況在VHDL中你還要自己寫比較器、移位暫存器的
--
[1;37;41mX-URL1: http://www.aviationnow.com/ [30m‧ [31m李登輝 [30m= [33m格達費 [30m= [31m外星人 [30m‧ [1;5;33;47m有廁 [0m
[1;42m [0;34;46m 檢舉匪諜 人人有責 [30m⊙ [34;46m檢舉匪諜 安居樂業 [1;5;33;47m人所 [0m
[1;42m [0;30;46m 檢舉匪諜滲透破壞 人人安居樂業|肅清貪污經濟犯罪 社會繁榮進步 [42m [0m
[1;42m [0;30;46m 破案獎金三百萬|知情不報判徒刑 [42m [0m
[1;42m [0;30;46m 檢舉要件:請用真實姓名、地址,受理機關絕對保密 [42m [0m
[1;37;41mX-Disclaimer: 李登輝一定是外星人! [31mMk.22 Mod4 5/15/01 [0;30;41mMod3 6/9/98 [0m
--
[1;36m┌───── [33m◆ [37mKKCITY [33m◆ [36m─────┐ [;30;40m [1;36;41m [;31;41m [30m [1;36mKKCITY 市民小密技 [37m [31m-文章標題上- [33m [;31;40m◣ [m
[1;36m│ [31m bbs.kkcity.com.tw [36m│ [;30;40m [1;36;41m [m [1;32mCtrl+y [37m可設定單篇文章加密 [m
[1;36m└── [34m《 [0;37mFrom:59.115.209.59 [1;34m》 [36m──┘ [;30;40m [31m◤ [1m [1;33m Shift+y [37m 可設定單篇文章密碼 [m
--
這要看你想怎麼做喔
其實現在的EDA/CAD tool都可以直接幫你把乘法器和除法器synthesis出來了
而且這些現成的乘除法器是經過無數工程師測試與評估過的最佳版本
除非你對你的電路有什麼特殊需求或者是你自己發明了一種快速除法器想要驗證
不然的話建議還是直接寫成 a<=b/c; 就好了
尤其是要燒FPGA做prototyping用的code
現在的FPGA幾乎都有內建這些基本的ALU在裡面了
所以直接讓tools幫你處理這些問題
synthesis出來的電路效能和gate count
99%會比你自己慢慢刻還好很多
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.105.115
※ 編輯: SILee 來自: 61.59.105.115 (12/12 20:37)