資源描述:
《2006031459 黃德榮 5位逐級進(jìn)位和超前進(jìn)位加法器設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、深圳大學(xué)實(shí)驗(yàn)報(bào)告課程名稱:VHDL數(shù)字電路設(shè)計(jì)教程實(shí)驗(yàn)項(xiàng)目名稱:5位逐級進(jìn)位和超前進(jìn)位加法器設(shè)計(jì)學(xué)院:信息工程學(xué)院專業(yè):電子信息工程指導(dǎo)教師:梁松海報(bào)告人:黃德榮學(xué)號:20006031459班級:1班實(shí)驗(yàn)時(shí)間:2008.10.22實(shí)驗(yàn)報(bào)告提交時(shí)間:2008.11.5教務(wù)處制實(shí)驗(yàn)?zāi)康呐c要求:用XILINXISE7.1i實(shí)現(xiàn)逐級進(jìn)位和超前進(jìn)位加法器方法、步驟:1,逐級進(jìn)位加法器對每一位都使用了全加器FAU,圖中a和b是輸入位,cin是進(jìn)位輸入位。S是求和的結(jié)果,cout是進(jìn)位輸出位。C是進(jìn)位矢量。圖中
2、每個(gè)全加器的輸出結(jié)果都依賴于前一級產(chǎn)生的進(jìn)位。由全加器的特性,可以寫出如下的邏輯表達(dá)式:S=aXORbXORcincout=(aANDb)OR(aANDcin)OR(bANDcin)2,超前進(jìn)位加法器電路實(shí)現(xiàn)是需要兩個(gè)非常重要的中間信號:generate和propagate,分別由g和p表示。加法器兩個(gè)輸入位是a和b,則generate和propagate信號定義如下:g=aANDbp=aXORb這兩個(gè)信號與進(jìn)位無關(guān),只根據(jù)當(dāng)前的輸入計(jì)算。現(xiàn)在兩個(gè)輸入矢量是:a=a(4)a(3)a(2)a(1)a(
3、0)和b=b(4)b(3)b(2)b(1)b(0),那么相應(yīng)的generate矢量為g=g(4)g(3)g(2)g(1)g(0),相應(yīng)的propagate矢量為p=p(4)p(3)p(2)p(1)p(0)。其中:g(j)=a(j)ANDb(j)p(j)=a(j)XORb(j)同時(shí),進(jìn)位矢量用c=c(4)c(3)c(2)c(1)c(0)。進(jìn)位可由g和p按照下面的方法計(jì)算得到:c(0)=cin;c(1)=c(0)p(0))+g(0);c(2)=c(0)p(0)p(1))+g(0)p(1)+g(1);c(
4、3)=c(0)p(0)p(1)p(2)+g(0)p(1)p(2)+(g(1)p(2)+g(2);c(4)=c(0)p(0)p(1)p(2)p(3)+g(0)p(1)p(2)p(3)+g(1)p(2)p(3)+g(2)p(3)+g(3);c(5)=c(0)p(0)p(1)p(2)p(3)p(4)+g(0)p(1)p(2)p(3)p(4)+g(1)p(2)p(3)p(4)+g(2)p(3)p(4)+g(4);可見超前進(jìn)位加法器的每個(gè)全加器不依賴與前一級進(jìn)位輸出的計(jì)算結(jié)果,有利于提高電路執(zhí)行速度。實(shí)驗(yàn)過程
5、及內(nèi)容:1,逐級進(jìn)位加法器VHDL代碼----------------------------------------------------------------------------------Company:--Engineer:----CreateDate:02:59:1810/22/08--DesignName:--ModuleName:adder-Behavioral--ProjectName:--TargetDevice:--Toolversions:--Description:-
6、---Dependencies:----Revision:--Revision0.01-FileCreated--AdditionalComments:----------------------------------------------------------------------------------libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.
7、ALL;----Uncommentthefollowinglibrarydeclarationifinstantiating----anyXilinxprimitivesinthiscode.--libraryUNISIM;--useUNISIM.VComponents.all;entityadderisport(a,b:instd_logic_vector(4downto0);cin:instd_logic;s:outstd_logic_vector(4downto0);cout:outstd_l
8、ogic);endadder;architectureBehavioralofadderissignalc:std_logic_vector(4downto0);beginc(0)<=cin;s(0)<=a(0)xorb(0)xorc(0);c(1)<=(a(0)andb(0))or(a(0)andc(0))or(b(0)andc(0));s(1)<=a(1)xorb(1)xorc(1);c(2)<=(a(1)andb(1))or(a(1)andc(1))or(b(1