除法運(yùn)算過程如下:

除法運(yùn)算過程如下:

(1) 取被除數(shù)的高幾位數(shù)據(jù),位寬和除數(shù)相同(實(shí)例中是 3bit 數(shù)據(jù))。

(2) 將被除數(shù)高位數(shù)據(jù)與除數(shù)作比較,如果前者不小于后者,則可得到對應(yīng)位的商為 1,兩者做差得到第一步的余數(shù);否則得到對應(yīng)的商為 0,將前者直接作為余數(shù)。

(3) 將上一步中的余數(shù)與被除數(shù)剩余最高位 1bit 數(shù)據(jù)拼接成新的數(shù)據(jù),然后再和除數(shù)做比較??梢缘玫叫碌纳毯陀鄶?shù)。

(4) 重復(fù)過程 (3),直到被除數(shù)最低位數(shù)據(jù)也參與計(jì)算。

需要說明的是,商的位寬應(yīng)該與被除數(shù)保持一致,因?yàn)槌龜?shù)有可能為1。所以上述手動計(jì)算除法的實(shí)例中,第一步做比較時(shí),應(yīng)該取數(shù)字 27 最高位 1 (3’b001) 與 3’b101 做比較。 根據(jù)此計(jì)算過程,設(shè)計(jì)位寬可配置的流水線式除法器,流水延遲周期個數(shù)與被除數(shù)位寬一致。

除法器設(shè)計(jì)

單步運(yùn)算設(shè)計(jì)

單步除法計(jì)算時(shí),單步被除數(shù)位寬(信號 dividend)需比原始除數(shù)(信號 divisor)位寬多 1bit 才不至于溢出。

為了便于流水,輸出端需要有寄存器來存儲原始的除數(shù)(信號 divisor 和 divisor_kp)和被除數(shù)信息(信號 dividend_ci 和 dividend_kp)。

單步的運(yùn)算結(jié)果就是得到新的 1bit 商數(shù)據(jù)(信號 merchant)和余數(shù)(信號 remainder)。

為了得到最后的除法結(jié)果,新的 1bit 商數(shù)據(jù)(信號 merchant)還需要與上一周期的商結(jié)果(merchant_ci)進(jìn)行移位累加。

單步運(yùn)算單元設(shè)計(jì)如下(文件名 divider_cell.v):

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容