硬件除法器原理_[ECCamp;RSA]除法器
“?在ECC和RSA算法硬件實現(Barrett約減和Montgomery約減)中,需要提前計算某些參數,會應用到除法器。”
01
—
傳統除法器
傳統除法器的設計非常單純:一、先取除數和被除數的正負關系,然后正值化被除數。傳統除法器因為需要遞減的關系,所以除數就取負值的補碼,方便操作。二、被除數遞減與除數,每一次的遞減,商數遞增。三、直到被除數小于除數,遞減過程剩下的是余數。四、輸出的結果根據除數和被除數的正負關系。傳統的除法器設計簡單,但是如果除數比較大,被除數比較小,計算起來就會占用更多的時鐘周期。02
—
移位相減除法器
移位相減除法器的優勢在于,計算時間只與除數、被除數位寬有關,與除數和被除數大小無關。03
—
移位相減除法器實現
對于32的無符號除法,被除數a除以除數b,他們的商和余數一定不會超過32位。首先將a轉換成高32位為0,低32位為a的temp_a。把b轉換成高32位為b,低32位為0的temp_b。在每個周期開始時,先將temp_a左移一位,末尾補0,然后與b比較,是否大于b,是則temp_a減去temp_b將且加上1,否則繼續往下執行。上面的移位、比較和減法(視具體情況而定)要執行32次,執行結束后temp_a的高32位即為余數,低32位即為商。
04
—
移位相減除法器原理
假設4bit的兩數相除 a/b,商和余數最多只有4位 (假設1101/0010也就是13除以2得6余1)。我們先自己做二進制除法,則首先看a的MSB,若比除數小則看前兩位,大則減除數,然后看余數,以此類推直到最后看到LSB;而上述算法道理一樣,a左移進前四位目的就在于從a本身的MSB開始看起,移4次則是看到LSB為止,期間若比除數大,則減去除數,注意減完以后正是此時所剩的余數。而商呢則加到了這個數的末尾,因為只要比除數大,商就是1,而商0則是直接左移了,因為會自動補0。這里比較巧因為商可以隨此時的a繼續左移,然后新的商會繼續加到末尾。經過比對會發現移4位后左右兩邊分別就是余數和商。
Something else:
除數Divisor,被除數Dividend,商數Quotient,余數Reminder。
部分轉載自:
http://xilinx.eetrend.com/d6-xilinx/forum/2013-11/6071.html
https://wenku.baidu.com/view/6fdbfa0f52ea551810a687c2.html
總結
以上是生活随笔為你收集整理的硬件除法器原理_[ECCamp;RSA]除法器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AcrelEMS企业微电网能效管理平台助
- 下一篇: 招商加盟网站系统