加法器原理(16位先行進(jìn)位)
加法器原理(16位先行進(jìn)位)
?? 這個(gè)加法器寫(xiě)的是一波三折啊,昨天晚上花了兩三個(gè)小時(shí)好不容易寫(xiě)完編譯通過(guò)了,之后modelsim莫名其妙彈出一個(gè)對(duì)話框,我沒(méi)看清就那么不小心一點(diǎn),結(jié)果代碼沒(méi)了,慘痛啊。害的我今天早上又花了一上午的時(shí)間重寫(xiě),結(jié)果又遇到了搞不清楚的編譯問(wèn)題。不過(guò)在重寫(xiě)的過(guò)程中,我還是發(fā)現(xiàn)昨天寫(xiě)的一些地方有問(wèn)題,通過(guò)這次重寫(xiě),我把verilog的語(yǔ)句并行理解的更加深刻了。下面總結(jié)一下原理和具體的實(shí)現(xiàn)。
原理
???? 進(jìn)位的傳遞
???? ci+1 = ai*bi+ai*ci+bi*ci
????????? = ai*bi+(ai+bi)*ci
????????? = gi+pi*ci
gi=ai*bi稱為進(jìn)位生成因子, 只要gi為1, 就有進(jìn)位
pi=ai+bi稱為進(jìn)位傳遞因子, 只要pi為1, 就有把低位的進(jìn)位向前傳遞
四位進(jìn)位傳遞為例
? c1 = g0+(p0*c0)
? c2 = g1+(p1*g0)+(p1*p0*c0)
? c3 = g2+(p2*g1)+(p2*p1*g0)+(p2*p1*p0*c0)
? c4 = g3+(p3*g2)+(p3*p2*g1)+(p3*p2*p1*g0)+(p3*p2*p1*p0*c0)
只要低位有一個(gè)進(jìn)位生成, 而且被傳遞, 則進(jìn)位輸出為1.
??? 對(duì)于16位先行加法器,采用4個(gè)4位先行進(jìn)位加法器組成,塊內(nèi)并行,由于高位的塊需要用到低位塊的進(jìn)位,快間仍然并行計(jì)算進(jìn)位。方法是產(chǎn)生每塊的進(jìn)位傳遞因子和進(jìn)位產(chǎn)生因子。
??? 塊間進(jìn)位傳遞因子: 每一位的傳遞因子都為1時(shí)才能傳遞
????? P0 = p0*p1*p2*p3
??? 塊間進(jìn)位產(chǎn)生因子: 塊內(nèi)產(chǎn)生進(jìn)位, 不考慮進(jìn)位輸入
????? G0 = g3+(p3*g2)+(p3*p2*g1)+(p3*p2*p1*g0)
??? 塊間進(jìn)位的計(jì)算方法同上(只需要將p,g換成P,G就可以了)。
??? 16位加法器相當(dāng)與16個(gè)半加器同時(shí)工作,而每個(gè)半加器輸入的進(jìn)位cin都有傳遞因子和生產(chǎn)因子通過(guò)最低進(jìn)位c0得到,而這16歌進(jìn)位也是同時(shí)得到的。這大大提高了加法器的速度,設(shè)一個(gè)與非門的延遲為T,先行進(jìn)位加法器總的延遲11T=2T(產(chǎn)生組內(nèi)p g)+2T(產(chǎn)生組間P G)+2T(產(chǎn)生組內(nèi)進(jìn)位)+2T(產(chǎn)生組間進(jìn)位)+3T(計(jì)算全加)。注意依賴關(guān)系,組內(nèi)p g依賴于操作數(shù)a b,組內(nèi)進(jìn)位依賴于p g,組間的PG依賴于組內(nèi)的p g,組間的進(jìn)位依賴于P G,而全加依賴于組內(nèi)和組間的進(jìn)位。
非常好我支持^.^
(26) 9.4%
不好我反對(duì)
(251) 90.6%
相關(guān)閱讀:
- [電子說(shuō)] 反相加法器原理圖與電路圖 2019-09-22
- [電子說(shuō)] 加法器原理 2019-06-19
- [電子說(shuō)] 4位二進(jìn)制加法器原理 4位二進(jìn)制加法器設(shè)計(jì) 2018-07-25
- [電子說(shuō)] 反相加法器原理圖與電路圖 2018-03-16
- [電子常識(shí)] 加法器電路原理_二進(jìn)制加法器原理_與非門二進(jìn)制加法器 2017-08-16
( 發(fā)表人:admin )