版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章典型邏輯電路設(shè)計(jì)本章介紹常用邏輯電路的實(shí)現(xiàn)方法與實(shí)現(xiàn)過(guò)程。主要包括常用組合、時(shí)序邏輯電路的基本功能、構(gòu)成、數(shù)據(jù)處理過(guò)程,典型邏輯電路的描述、實(shí)現(xiàn)及仿真、分析方法。。5.1典型組合邏輯電路設(shè)計(jì)5.2典型時(shí)序邏輯電路設(shè)計(jì)15.1典型組合邏輯電路設(shè)計(jì)數(shù)字系統(tǒng)中的常用組合邏輯電路包括編、譯碼電路、比較、選擇線路與運(yùn)算電路等。(1)譯碼電路(2)編碼電路(3)比較電路(4)多路選擇電路(5)加法電路(6)減法電路(7)乘法電路(8)除法電路2(1)譯碼電路常用譯碼電路包括3-8譯碼電路、4-16譯碼電路等。此處以4-16譯碼器為例,介紹譯碼電路的功能、設(shè)計(jì)、描述與分析測(cè)試方法。真值表程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析3真值表假定電路輸入A、B、C、D、G1、G2,16位輸出nY,真值表如下:表5.14-16譯碼電路真值表4程序?qū)崿F(xiàn)根據(jù)真值表描述4-16譯碼電路,程序名稱(chēng)Decoder.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDecoderISPORT(A,B,C,D:INSTD_LOGIC;G1,G2:INSTD_LOGIC;nY:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDDecoder;ARCHITECTURESampOFDecoderISSIGNALG:STD_LOGIC_VECTOR(1DOWNTO0):="11";SIGNALitmp:STD_LOGIC_VECTOR(3DOWNTO0):=X"0";BEGINitmp<=D&C&B&A;G<=G2&G1;nY<=X"FFFF"WHEN(G="10")OR(G="01")OR(G="11")ELSEX"FFFE"WHEN(G="00")AND(itmp=X"0")ELSEX"FFFD"WHEN(G="00")AND(itmp=X"1")ELSEX"FFFB"WHEN(G="00")AND(itmp=X"2")ELSEX"FFF7"WHEN(G="00")AND(itmp=X"3")ELSEX"FFEF"WHEN(G="00")AND(itmp=X"4")ELSEX"FFDF"WHEN(G="00")AND(itmp=X"5")ELSEX"FFBF"WHEN(G="00")AND(itmp=X"6")ELSEX"FF7F"WHEN(G="00")AND(itmp=X"7")ELSEX"FEFF"WHEN(G="00")AND(itmp=X"8")ELSEX"FDFF"WHEN(G="00")AND(itmp=X"9")ELSEX"FBFF"WHEN(G="00")AND(itmp=X"A")ELSEX"F7FF"WHEN(G="00")AND(itmp=X"B")ELSEX"EFFF"WHEN(G="00")AND(itmp=X"C")ELSEX"DFFF"WHEN(G="00")AND(itmp=X"D")ELSEX"BFFF"WHEN(G="00")AND(itmp=X"E")ELSEX"7FFF";ENDARCHITECTURESamp;5程序?qū)崿F(xiàn)程序利用并行語(yǔ)句中的條件信號(hào)賦值語(yǔ)句實(shí)現(xiàn)預(yù)定電路。程序定義兩位的中間信號(hào)G暫存輸入使能G1、G2;定義4位信號(hào)itmp暫存參與譯碼的4路輸入信號(hào)。程序利用16進(jìn)制數(shù)表示16位輸出端口nY的取值與中間信號(hào)itmp的取值,從而使描述程序簡(jiǎn)潔、清晰。6項(xiàng)目創(chuàng)建與編譯利用譯碼電路程序Decoder.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.1譯碼電路項(xiàng)目與編譯7項(xiàng)目創(chuàng)建與編譯設(shè)計(jì)項(xiàng)目、頂層實(shí)體名稱(chēng)與VHDL程序名稱(chēng)一致,均設(shè)置為Decoder。根據(jù)電路功能、復(fù)雜程度、端口數(shù)量等,初選MAX3000A系列CPLD做為目標(biāo)器件,具體器件系統(tǒng)自行指定。QuartusII初選EPM3032ALC44-4實(shí)現(xiàn)譯碼電路,器件宏單元32個(gè),電路占用16個(gè),占用率50%;器件共有端口34個(gè),占用26個(gè),占用率76%。8電路仿真分析仿真輸入與總波形:電路的仿真輸入及結(jié)果波形如下圖:圖5.2譯碼電路仿真輸入與仿真結(jié)果9電路仿真分析波形編輯窗Decoder.vwf為仿真輸入,仿真柵格40ns,仿真時(shí)長(zhǎng)2us;輸入A、B、C、D設(shè)為等距脈沖,周期40ns、80ns、160ns與320ns,輸入端得到0000至1111的連續(xù)變化值。使能G1、G2設(shè)為周期640ns與1280ns的等距方波,從而便于區(qū)分電路的正常工作段與異常工作段,易于觀測(cè)。G2、G1為“00”,電路執(zhí)行正常的A、B、C、D譯碼操作;G2、G1取其它值,電路保持輸出“FFFF”。10電路仿真分析譯碼功能仿真:電路的正常譯碼功能仿真波形如下圖:圖5.3譯碼電路功能仿真11電路仿真分析使能G2、G1取得“00”值,輸入端口D、C、B、A的取值由“0000”依次增至“1111”,輸出端口nY的位nY(0)到nY(15)依次送出低電平,即依次有效。對(duì)比譯碼結(jié)果nY與輸入D、C、B、A的變化順序,估算電路輸出滯后時(shí)間,約5ns左右。12器件、引腳分配及時(shí)間分析器件及引腳分配:譯碼電路的器件及引腳信號(hào)見(jiàn)下圖:圖5.4譯碼電路的引腳分配13器件、引腳分配及時(shí)間分析根據(jù)編譯結(jié)果及后期制版,選擇器件EPM3032ATC44-4實(shí)現(xiàn)預(yù)定譯碼電路,引腳信號(hào)分配情況見(jiàn)下表:表5.2譯碼電路IO信號(hào)與引腳的具體對(duì)應(yīng)關(guān)系14器件、引腳分配及時(shí)間分析電路時(shí)間分析:譯碼電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.5譯碼電路時(shí)間分析15器件、引腳分配及時(shí)間分析根據(jù)系統(tǒng)提供的時(shí)間分析總結(jié)報(bào)告,譯碼電路Decoder的輸出端口nY對(duì)于輸入端口D、C、B、A、G2、G1的最大輸出時(shí)間延遲發(fā)生在輸出信號(hào)nY(5)與使能信號(hào)G2之間,延遲時(shí)間最大值4.6ns;譯碼電路Decoder所有輸入輸出信號(hào)間的時(shí)間延遲穩(wěn)定在4.6ns,較為均衡。16(2)編碼電路本例通過(guò)常用的16線-4線優(yōu)先編碼電路設(shè)計(jì),詳細(xì)介紹編碼電路的描述方法與設(shè)計(jì)流程。真值表程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析17真值表假定電路的IO端口包括輸入使能nEI、編碼信號(hào)nI、編碼輸出nA、輸出允許EO與擴(kuò)展片優(yōu)先GS,真值表如下:表5.316線-4線優(yōu)先編碼電路真值表18真值表端口nEI、nI、nA低電平有效,EO、GS高電平有效。nEI拉高,EO與GS置1,允許電路輸出且擴(kuò)展片優(yōu)先輸出;EI置低且nI輸入全1,GS清0,擴(kuò)展片輸出優(yōu)先被禁止。此時(shí),EO清0,表明輸入非法,禁止電路輸出,輸出nA各位全部置1;EI拉低且nI各數(shù)據(jù)位非全“0”,電路對(duì)nI正常編碼,端口A輸出編碼值。:19程序?qū)崿F(xiàn)根據(jù)真值表描述16-4編碼電路,程序名稱(chēng)Encoder.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYEncoderISPORT(nI:INSTD_LOGIC_VECTOR(15DOWNTO0);nEI:INSTD_LOGIC;EO,GS:OUTSTD_LOGIC;nA:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDEncoder;ARCHITECTURESampOFEncoderISSIGNALAtmp:STD_LOGIC_VECTOR(5DOWNTO0):="000000";BEGINAtmp<="111111"WHENnEI='1'ELSE"101111"WHENnI=X"FFFF"ELSE"011111"WHENnI(15)='0'ELSE"011110"WHENnI(14)='0'ELSE"011101"WHENnI(13)='0'ELSE"011100"WHENnI(12)='0'ELSE"011011"WHENnI(11)='0'ELSE"011010"WHENnI(10)='0'ELSE"011001"WHENnI(9)='0'ELSE"011000"WHENnI(8)='0'ELSE"010111"WHENnI(7)='0'ELSE"010110"WHENnI(6)='0'ELSE"010101"WHENnI(5)='0'ELSE"010100"WHENnI(4)='0'ELSE"010011"WHENnI(3)='0'ELSE"010010"WHENnI(2)='0'ELSE"010001"WHENnI(1)='0'ELSE"010000";GS<=Atmp(5);EO<=Atmp(4);nA<=Atmp(3DOWNTO0);ENDARCHITECTURESamp;20程序?qū)崿F(xiàn)程序利用條件信號(hào)賦值語(yǔ)句實(shí)現(xiàn)預(yù)定編碼電路。便于描述,程序?qū)iT(mén)定義了6位的STD_LOGIC_VECTOR中間信號(hào)Atmp暫存輸出結(jié)果。Atmp的低4位存儲(chǔ)編碼結(jié)果A,最高位Atmp(5)暫存擴(kuò)展片優(yōu)先信號(hào)GS,次高位Atmp(4)暫存輸出使能狀態(tài)標(biāo)志EO。Atmp使程序結(jié)構(gòu)簡(jiǎn)潔,也更容易理解。21項(xiàng)目創(chuàng)建與編譯利用編碼電路程序Encoder.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.6編碼電路項(xiàng)目創(chuàng)建與編譯22項(xiàng)目創(chuàng)建與編譯設(shè)計(jì)項(xiàng)目、頂層實(shí)體以及編碼電路的VHDL描述程序名稱(chēng)一致,均設(shè)置為Encoder。設(shè)計(jì)初選MAX3000A系列PLD做為目標(biāo)器件,具體器件由系統(tǒng)根據(jù)編譯結(jié)果自動(dòng)選擇。QuartusII初選EPM3032ALC44-4實(shí)現(xiàn)譯碼電路,電路占用器件宏單元10個(gè),宏單元占用率31%;器件共有端口34個(gè),電路占用27個(gè),端口占用率79%。23電路仿真分析仿真輸入與總波形:編碼電路仿真輸入及結(jié)果如下:圖5.7編碼電路仿真輸入與仿真結(jié)果24電路仿真分析圖形文件Encoder.vwf為電路的仿真輸入,設(shè)置仿真柵格40ns,仿真總時(shí)長(zhǎng)2us;設(shè)置輸入時(shí),首先拉低nEI并置高nI,而后逐柵格拉低nI各位,仿真正常編碼;而后拉高nEI,仿真禁止編碼。根據(jù)波形,nEI為低,電路正常工作,執(zhí)行譯碼操作:若nI全1,EO置0,GS置1,禁止譯碼輸出,擴(kuò)展片優(yōu)先,電路不執(zhí)行編碼;nI不全為高,EO置“1”,GS置“0”,譯碼輸出使能,禁止擴(kuò)展片,nA輸出編碼。nEI為高,EO、GS均置1,禁止譯碼操作,nA全部置高。25電路仿真分析編碼功能仿真:電路的正常編碼功能仿真波形如下:圖5.8電路的編碼功能仿真26電路仿真分析根據(jù)仿真波形,當(dāng)nEI為低,電路執(zhí)行正常的編碼操作。編碼信號(hào)nI由低位到高位依次出現(xiàn)低電平,編碼輸出端nA依次出現(xiàn)“0000”-“1111”的連續(xù)編碼序列,與原定的真值表一致。27器件、引腳分配及時(shí)間分析器件及引腳分配:編碼電路的器件及引腳信號(hào)分配如下:圖5.9編碼電路的器件及引腳指定28器件、引腳分配及時(shí)間分析根據(jù)編譯結(jié)果及后期制版,選擇器件EPM3032ATC44-4實(shí)現(xiàn)預(yù)定的編碼電路,引腳信號(hào)分配情況見(jiàn)下表。電路輸出被分配至CPLD左上角的44、43、2、3、5、6端口,按數(shù)據(jù)位高低順序排列;輸入端口nI在被分配至器件右側(cè)與底部端口,輸入使能nEI被分配至器件的全局使能端38腳,表5.4編碼電路IO信號(hào)與引腳的對(duì)應(yīng)關(guān)系29器件、引腳分配及時(shí)間分析電路時(shí)間分析:編碼電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.10編碼電路時(shí)間分析30器件、引腳分配及時(shí)間分析根據(jù)系統(tǒng)提供的時(shí)間分析總結(jié)報(bào)告,電路的最大輸出時(shí)間延遲tpd發(fā)生在輸入端口nI(3)與輸出端口nA(3)之間,延遲時(shí)間8ns;編碼電路其余各端口的延遲時(shí)間在4.5ns-8ns之間。31(3)比較電路本例通過(guò)常用的8位無(wú)符號(hào)數(shù)的比較電路設(shè)計(jì),詳細(xì)介紹比較電路的描述方法與設(shè)計(jì)流程。功能描述程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析32功能描述比較電路也是數(shù)字系統(tǒng)中常用的一種邏輯電路,通常用來(lái)實(shí)現(xiàn)兩個(gè)數(shù)據(jù)量之間的相互比較,種類(lèi)也比較多。常用比較電路中,二值相等,電路輸出結(jié)果1;二者不等,電路輸出結(jié)果0。本例中的比較電路實(shí)現(xiàn)兩輸入值的大小比較:若比較數(shù)大于被比較數(shù),電路輸出值1;二者相等,電路輸出值0;若比較數(shù)小于被比較數(shù),電路輸出值-1。假定8位輸入A、B,2位輸出Q,當(dāng)A>B時(shí),Q輸出1;當(dāng)A=B時(shí),Q輸出0;當(dāng)A<B時(shí),Q輸出-1。33程序?qū)崿F(xiàn)根據(jù)比較電路的功能描述8位無(wú)符號(hào)數(shù)的比較電路,程序名稱(chēng)Comparater.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYComparatorISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(1DOWNTO0));ENDComparator;ARCHITECTURESampOFComparatorISBEGINComp:PROCESS(A,B)BEGINIFA=BTHENQ<="00";ELSIFA>BTHENQ<="01";ELSEQ<="11";ENDIF;ENDPROCESSComp;ENDARCHITECTURESamp;34程序?qū)崿F(xiàn)程序采用順序語(yǔ)句中的多項(xiàng)選擇控制結(jié)構(gòu)IF語(yǔ)句來(lái)描述比較電路。程序中設(shè)計(jì)進(jìn)程Comp實(shí)現(xiàn)無(wú)符號(hào)數(shù)A、與B的比較,敏感量選擇A與B。二者任一取值發(fā)生變化,進(jìn)程Comp執(zhí)行一次。輸入A、B定義為8位STD_LOGIC_VECTOR,進(jìn)行比較時(shí),二者按數(shù)據(jù)位自高至低進(jìn)行比較。A>B,Q端輸出2位有符號(hào)數(shù)1的補(bǔ)碼“01”;A=B,Q端輸出0的補(bǔ)碼“00”;A<B,Q端輸出2位有符號(hào)數(shù)-1的補(bǔ)碼“11”。35項(xiàng)目創(chuàng)建與編譯利用比較電路程序Comparater.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.11比較電路項(xiàng)目創(chuàng)建與編譯36項(xiàng)目創(chuàng)建與編譯設(shè)計(jì)項(xiàng)目、頂層實(shí)體以及編碼電路的VHDL描述程序名稱(chēng)一致,設(shè)置為Comparater。鑒于電路功能簡(jiǎn)單,設(shè)計(jì)初選MAX3000A系列PLD做為目標(biāo)器件,具體器件由系統(tǒng)根據(jù)編譯結(jié)果自動(dòng)選擇。QuartusII初選EPM3032ALC44-4實(shí)現(xiàn)譯碼電路,電路占用器件宏單元4個(gè),宏單元占用率13%;器件共有端口34個(gè),電路占用22個(gè),端口占用率65%。37電路仿真分析仿真輸入與總波形:比較電路的仿真輸入及總波形如下:圖5.12比較電路的仿真輸入與總波形38電路仿真分析圖形文件Comparater.vwf為電路的仿真輸入,設(shè)置仿真柵格20ns,仿真總時(shí)長(zhǎng)10us;輸入信號(hào)A、B分別定義為從0開(kāi)始的計(jì)數(shù)值,計(jì)數(shù)周期分別為20ns、320ns;每個(gè)計(jì)數(shù)周期來(lái)臨,A、B取值增加15,以保證在B的一個(gè)變化周期內(nèi),A發(fā)生覆蓋取值范圍的變化,便于仿真檢驗(yàn)。39電路仿真分析比較功能分析:電路的正常比較功能與分析波形如下:圖5.13比較電路功能仿真及輸入輸出延遲分析40電路仿真分析圖示B的一個(gè)取值周期內(nèi),比較電路的輸出隨輸入A的取值發(fā)生變化;隨A值不同,電路輸出端Q出現(xiàn)1、-1、1的變化序列,比較結(jié)果正確。比較電路的輸入、輸出信號(hào)的取值取值變化,初步估算電路的輸出延遲時(shí)間,得到電路輸出延遲在4.5ns左右。41器件、引腳分配及時(shí)間分析器件及引腳分配:比較電路的器件及引腳信號(hào)分配如下:圖5.14比較電路的器件及引腳信號(hào)分配42器件、引腳分配及時(shí)間分析結(jié)合編譯及后期制版,系統(tǒng)選擇器件EPM3032ATC44-4實(shí)現(xiàn)預(yù)定的8位比較電路,引腳信號(hào)分配詳細(xì)情況見(jiàn)下表。帶陰影的已指定信號(hào)引腳中,從44腳至34腳按逆時(shí)針順序依次為輸入A、B與信號(hào)Q,信號(hào)內(nèi)部按序號(hào)從小到大排列。輸入與輸出信號(hào)分別排列在器件的左下與右上腳,并隔離開(kāi)來(lái),以便后續(xù)的測(cè)試、布板與走線。表5.5比較電路IO信號(hào)與引腳的具體對(duì)應(yīng)關(guān)系43器件、引腳分配及時(shí)間分析電路時(shí)間分析:比較電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.15比較電路最終的延遲時(shí)間分析44器件、引腳分配及時(shí)間分析時(shí)間分析參數(shù)表明,比較電路Comparator的最大信號(hào)輸出延遲時(shí)間tpd發(fā)生在輸入端口信號(hào)B(7)與輸出端口信號(hào)Q(1)之間,為8ns;電路的其余延遲時(shí)間在6.4ns-8ns之間,大于器件及引腳信號(hào)之前仿真中的估算值,說(shuō)明重選器件并分配引腳之后,信號(hào)延遲增大。45(4)多路選擇電路本例通過(guò)常用的8選1電路的設(shè)計(jì),詳細(xì)介紹典型多路選擇電路的描述方法與設(shè)計(jì)流程。真值表程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析46真值表假定電路輸入端口包括3位選擇端口Sel、8位數(shù)據(jù)端口D,電路輸出為1位端口Q,真值表如下:表5.6多路選擇電路真值表47程序?qū)崿F(xiàn)根據(jù)真值表描述8選1電路,程序名稱(chēng)Mux81.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYMux81ISPORT(D:INSTD_LOGIC_VECTOR(7DOWNTO0);Sel:INSTD_LOGIC_VECTOR(2DOWNTO0);Q:OUTSTD_LOGIC);ENDMux81;ARCHITECTURESampOFMux81ISBEGINMuxP:PROCESS(Sel,D)BEGINCASESelISWHEN"000"=>Q<=D(0);WHEN"001"=>Q<=D(1);WHEN"010"=>Q<=D(2);WHEN"011"=>Q<=D(3);WHEN"100"=>Q<=D(4);WHEN"101"=>Q<=D(5);WHEN"110"=>Q<=D(6);WHEN"111"=>Q<=D(7);WHENOTHERS=>Q<='Z';ENDCASE;ENDPROCESSMuxP;ENDARCHITECTURESamp;48程序?qū)崿F(xiàn)程序采用順序語(yǔ)句中的通過(guò)順序語(yǔ)句中的CASE結(jié)構(gòu)來(lái)描述8選1電路。為使用CASE結(jié)構(gòu),程序中定義進(jìn)程MuxP,選擇電路輸入位選擇Sel、數(shù)據(jù)端D作為進(jìn)程MuxP的敏感信號(hào)。電路輸入Sel、D任一信號(hào)發(fā)生變化,進(jìn)程啟動(dòng)一次,重新計(jì)算電路輸出Q,從而保證輸入輸出的一致性。。49項(xiàng)目創(chuàng)建與編譯利用8選1電路程序Mux81.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.16多路選擇電路的項(xiàng)目創(chuàng)建與編譯50項(xiàng)目創(chuàng)建與編譯設(shè)計(jì)項(xiàng)目、頂層實(shí)體以及編碼電路的VHDL描述程序名稱(chēng)一致,設(shè)置為Mux81。電路功能簡(jiǎn)單,設(shè)計(jì)初選MAX3000A系列PLD做為目標(biāo)器件,具體器件由系統(tǒng)根據(jù)編譯情況自動(dòng)選擇。QuartusII初選EPM3032ALC44-4實(shí)現(xiàn)譯碼電路,電路占用器件宏單元2個(gè),宏單元占用率6%;器件共有端口34個(gè),電路占用16個(gè),端口占用率47%。51電路仿真分析仿真輸入與總波形:8選1電路的仿真輸入及總波形如下:圖5.17多路選擇電路的仿真輸入與形總波形52電路仿真分析圖形文件Mux81.vwf為電路的仿真輸入,設(shè)置仿真柵格20ns,仿真總時(shí)長(zhǎng)50us;輸入Sel選3位計(jì)數(shù)值,計(jì)數(shù)周期20ns;輸入D設(shè)置為8位計(jì)數(shù)值,計(jì)數(shù)周期320ns。數(shù)據(jù)端D的一個(gè)取值周期內(nèi),輸入選擇Sel發(fā)生000-111的變化,Q端由低到高依次輸出D的8位數(shù)據(jù),便于功能檢測(cè)。53電路仿真分析選擇輸出功能分析:電路的選擇輸出功能與分析波形如下:圖5.18多路選擇電路的輸出分析54電路仿真分析8選1電路的數(shù)據(jù)D取值38H、39H,輸出Q根據(jù)Sel的取值狀況,選擇輸出D端的相應(yīng)數(shù)據(jù)位。根據(jù)仿真波形,估算輸出信號(hào)Q相對(duì)于輸入Sel、D端的取值變化,得到電路輸出滯后約4.5ns左右。55器件、引腳分配及時(shí)間分析器件及引腳分配:8選1電路的器件及引腳信號(hào)分配如下:圖5.19多路選擇電路的引腳分配56器件、引腳分配及時(shí)間分析結(jié)合編譯及后期制版,系統(tǒng)選擇器件EPM3032ATC44-4實(shí)現(xiàn)預(yù)定的8選1電路,引腳信號(hào)分配詳細(xì)情況見(jiàn)下表。電路端口按照選擇信號(hào)Sel、數(shù)據(jù)端D、輸出端口Q的順序,由高位到低位沿逆時(shí)針排列。器件信號(hào)的分配布局,符合輸入、輸出分開(kāi),按組、按順序排布的規(guī)則,便于后續(xù)制版、布線及電路測(cè)試。表5.7多路選擇電路信號(hào)與引腳的對(duì)應(yīng)關(guān)系57器件、引腳分配及時(shí)間分析電路時(shí)間分析:8選1電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.20多路選擇電路的時(shí)間分析58器件、引腳分配及時(shí)間分析時(shí)間分析參數(shù)表明,8選1電路中最大的輸出延遲時(shí)間發(fā)生在輸出信號(hào)Q與輸入信號(hào)D1之間,延遲量5.0ns;電路的其余延遲時(shí)間在4.5ns-5.0ns之間。59(5)加法電路本例通過(guò)常用的8位無(wú)符號(hào)加法電路的設(shè)計(jì),詳細(xì)介紹典型加法電路的描述方法與設(shè)計(jì)流程。設(shè)計(jì)分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析60設(shè)計(jì)分析邏輯功能分析:假定8位加法器的輸入端口加數(shù)與被加數(shù)分別為A、B,輸入進(jìn)位位Ci,輸出8位結(jié)果和Sum,輸出進(jìn)位位Co,則輸出和Sum滿足:Sum=A+B+Ci輸出進(jìn)位位Co為:Co=0(A+B+Ci≤255),1(A+B+Ci≥255)61設(shè)計(jì)分析電路框架:本例采用結(jié)構(gòu)化描述方法實(shí)現(xiàn)帶進(jìn)位的8位無(wú)符號(hào)數(shù)加法電路,電路結(jié)構(gòu)見(jiàn)下圖。實(shí)現(xiàn)電路時(shí)先完成1位全加器元件設(shè)計(jì),而后調(diào)用元件實(shí)現(xiàn)8位帶進(jìn)位加法電路。圖5.21帶進(jìn)位的8位無(wú)符號(hào)數(shù)加法電路結(jié)構(gòu)62程序?qū)崿F(xiàn)全加器元件:假定1位全加元件輸入加數(shù)A、被加數(shù)B、進(jìn)位位Ci,輸出和Sum、進(jìn)位位Co,程序名Addc1.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAddC1ISPORT(A,B:INSTD_LOGIC;Ci:INSTD_LOGIC;Sum:OUTSTD_LOGIC;Co:OUTSTD_LOGIC);ENDAddC1;ARCHITECTURESampOFAddC1ISSIGNALcf:STD_LOGIC_VECTOR(1DOWNTO0);SIGNALs:STD_LOGIC;BEGINs<=AXORB;Sum<=sXORCi;cf(0)<=AANDB;cf(1)<=sANDCi;Co<=cf(0)ORcf(1);ENDARCHITECTURESamp;程序通過(guò)一系列并行語(yǔ)句描述1位帶進(jìn)位加電路元件。程序通過(guò)兩個(gè)異或運(yùn)算電路計(jì)算1位全加器的輸出和通過(guò)兩個(gè)與電路和一個(gè)或電路求取全加器的進(jìn)位位。63程序?qū)崿F(xiàn)8位全加電路設(shè)計(jì):假定8位加數(shù)A、被加數(shù)B、輸入進(jìn)位位Ci,8位和Sum、輸出進(jìn)位位Co,程序名Addc.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYAddCISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);Ci:INSTD_LOGIC;Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0);Co:OUTSTD_LOGIC);ENDAddC;ARCHITECTURESampOFAddCISSIGNALCF:STD_LOGIC_VECTOR(8DOWNTO0):="000000000";COMPONENTAddC1ISPORT(A,B,Ci:INSTD_LOGIC;Sum,Co:OUTSTD_LOGIC);ENDCOMPONENTAddC1;BEGINCF(0)<=Ci;fAddC:FORiIN0TO7GENERATEUn:AddC1PORTMAP(A(i),B(i),CF(i),Sum(i),CF(i+1));ENDGENERATEfAddC;Co<=CF(8);ENDARCHITECTURESamp;程序通過(guò)元件調(diào)用實(shí)現(xiàn)8位全加電路。程序通過(guò)For-generate結(jié)構(gòu)實(shí)現(xiàn)8個(gè)重復(fù)的1位全加元件。64項(xiàng)目創(chuàng)建與編譯利用全加元件及8位全加電路程序創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.228位無(wú)符號(hào)數(shù)加電路的項(xiàng)目創(chuàng)建與編譯65項(xiàng)目創(chuàng)建與編譯項(xiàng)目構(gòu)成文件AddC1.vhd、AddC.vhd,項(xiàng)目、頂層實(shí)體名稱(chēng)一致,設(shè)置為AddC。QuartusII初選EPM3032ALC44-4實(shí)現(xiàn)譯碼電路,電路占用器件宏單元23個(gè),宏單元占用率72%;器件共有端口34個(gè),電路占用30個(gè),端口占用率88%。器件的資源占用率相對(duì)較高,不利于后期的系統(tǒng)升級(jí)、完善與更新。66電路仿真分析仿真輸入與總波形:8位無(wú)符號(hào)加電路的仿真總波形如下:圖5.238位無(wú)符號(hào)數(shù)加電路的仿真輸入與總波形67電路仿真分析仿真輸入與總波形:輸出信號(hào)中的“毛刺”如下:圖5.24輸出進(jìn)位位Co上的信號(hào)毛刺68電路仿真分析圖形文件Mux81.vwf為電路的仿真輸入,仿真柵格設(shè)置為1us,仿真總時(shí)間20us;根據(jù)SimulationReport窗的結(jié)果,完成的加法電路能夠正確可靠的完成帶進(jìn)位、無(wú)進(jìn)位8位無(wú)符號(hào)數(shù)的加運(yùn)算。輸出進(jìn)位位Co上,有毛刺信號(hào)存在。毛刺信號(hào)寬度在3ns以下,毛刺處的結(jié)果和Sum輸出也不穩(wěn)定,持續(xù)時(shí)間與毛刺信號(hào)寬度一致,也為約3ns,此時(shí)電路處于不穩(wěn)定狀態(tài)。69電路仿真分析功能及延遲分析:電路的加功能與輸出延遲分析如下:圖5.258位加法電路功能及延遲分析70電路仿真分析8位無(wú)符號(hào)全加電路的被加數(shù)B取值255、15,輸出Sum、Co根據(jù)加數(shù)A的取值狀況動(dòng)態(tài)變化,計(jì)算結(jié)果正確。根據(jù)仿真波形,估算輸出信號(hào)Sum、Co相對(duì)于輸入加數(shù)A、被加數(shù)B端的取值變化,得到電路輸出滯后約6.5ns左右。71器件、引腳分配及時(shí)間分析器件及引腳分配:加法電路的器件及引腳信號(hào)分配如下:圖5.268位加法電路的器件指定與引腳分配72器件、引腳分配及時(shí)間分析結(jié)合編譯及后期制版,系統(tǒng)選擇器件EPM3032ATC44-4實(shí)現(xiàn)預(yù)定的8位無(wú)符號(hào)加法電路,引腳信號(hào)分配見(jiàn)下表。表5.8加法電路信號(hào)與引腳的對(duì)應(yīng)關(guān)系73器件、引腳分配及時(shí)間分析圖中陰影引腳為已指定引腳,從引腳42至引腳35,按逆時(shí)針順序,信號(hào)依次為輸出進(jìn)位位Co、輸出和Sum、輸入端口B、輸入進(jìn)位位Ci、輸入端口A。信號(hào)內(nèi)部數(shù)據(jù)位由高到低,依次按逆時(shí)針順序排列。便于后續(xù)制版、布線及電路測(cè)試,器件信號(hào)的分配布局,符合輸入、輸出分開(kāi),按組、按順序排布的規(guī)則。74器件、引腳分配及時(shí)間分析電路時(shí)間分析:8位無(wú)符號(hào)加電路的時(shí)間分析見(jiàn)下圖:圖5.278位加法電路的延遲時(shí)間分析75器件、引腳分配及時(shí)間分析時(shí)間分析報(bào)告表明,8位無(wú)符號(hào)加電路的最大輸出延遲時(shí)間發(fā)生在輸出信號(hào)Sum(7)與輸入信號(hào)B(4)之間,最大輸出延遲時(shí)間5.0ns;電路的其余延遲時(shí)間在4.6ns-9.5ns之間。76(6)減法電路減法是數(shù)字電路尤其是微處理器電路的一種重要算術(shù)運(yùn)算功能,本例詳細(xì)介紹實(shí)現(xiàn)8位無(wú)符號(hào)數(shù)的減法電路設(shè)計(jì)與分析過(guò)程。功能及分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析77功能及分析邏輯功能分析:假定減法電路的被減數(shù)、減數(shù)為8位無(wú)符號(hào)數(shù)A、B,輸出借位位Co、8位無(wú)符號(hào)差值Sum,A、B、Co與Sum滿足:若A大于等于B,電路輸出借位位Co置“0”且:Sum=A-B反之,若A小于B,電路輸出借位位Co置“1”且:Sum=256+A-B實(shí)現(xiàn)方法:減法通過(guò)加實(shí)現(xiàn),設(shè)計(jì)補(bǔ)碼電路計(jì)算減數(shù)B的補(bǔ)碼。而后通過(guò)加法電路計(jì)算被減數(shù)A與B的補(bǔ)碼之和,即可完成上述8位無(wú)符號(hào)數(shù)的減法運(yùn)算。78程序?qū)崿F(xiàn)補(bǔ)碼元件設(shè)計(jì):假定補(bǔ)碼電路8位輸入A、輸出Cmp、程序名mCmpl.vhd,根據(jù)補(bǔ)碼的基本概念,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmCmplISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);Cmp:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDmCmpl;ARCHITECTURESampOFmCmplISBEGINCmplP:PROCESS(A)VARIABLECF,Ci:STD_LOGIC;VARIABLEiCmp:STD_LOGIC_VECTOR(7DOWNTO0);BEGINCi:='1';iCmp:=NOT(A);N1:FORiIN0TO7LOOPCF:=iCmp(i)ANDCi;iCmp(i):=iCmp(i)XORCi;Ci:=CF;ENDLOOPN1;Cmp<=iCmp;ENDPROCESSCmplP;ENDARCHITECTURESamp;程序通過(guò)進(jìn)程CmplP補(bǔ)碼電路,8位輸入A啟動(dòng)進(jìn)程。根據(jù)補(bǔ)碼定義,程序?qū)斎階按位取反,獲得反碼;而后,通過(guò)循環(huán)N1計(jì)算反碼值加1,得到補(bǔ)碼。N1循環(huán)內(nèi),程序由低到高,依次求取各補(bǔ)碼位。79程序?qū)崿F(xiàn)8位加元件設(shè)計(jì):假定8位加數(shù)A、被加數(shù)B、輸入進(jìn)位位Ci,8位和Sum,程序名mAdd.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmAddISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDmAdd;ARCHITECTURESampOFmAddISBEGINAddP:PROCESS(A,B)VARIABLECF:STD_LOGIC;VARIABLEiSum:STD_LOGIC_VECTOR(7DOWNTO0);BEGINCF:='0';iSum:=X"00";N1:FORiIN0TO7LOOPiSum(i):=(A(i)XORB(i))XORCF;CF:=(A(i)ANDB(i))OR((A(i)XORB(i))ANDCF);ENDLOOPN1;Sum<=iSum;ENDPROCESSAddP;ENDARCHITECTURESamp;程序通過(guò)進(jìn)程AddP計(jì)算8位和,輸入A、B啟動(dòng)進(jìn)程。8位加采用FOR循環(huán)實(shí)現(xiàn),循環(huán)體內(nèi)依次計(jì)算各數(shù)據(jù)位的結(jié)果和與進(jìn)位位。1位結(jié)果和與進(jìn)位位直接通過(guò)布爾代數(shù)式實(shí)現(xiàn)。80程序?qū)崿F(xiàn)頂層減法電路設(shè)計(jì):假定8位被減數(shù)A、減數(shù)B、輸出借位位Co,8位差Sum,程序名mSub.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYmSubISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0);Co:OUTSTD_LOGIC);ENDmSub;ARCHITECTURESampOFmSubISCOMPONENTmAddISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);Sum:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENTmAdd;COMPONENTmCmplISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);Cmp:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDCOMPONENTmCmpl;SIGNALtmp:STD_LOGIC_VECTOR(7DOWNTO0);BEGINU0:mCmplPORTMAP(B,tmp);U1:mAddPORTMAP(A,tmp,Sum);Co<='1'WHENA<BELSE'0';ENDARCHITECTURESamp;程序通過(guò)結(jié)構(gòu)化描述實(shí)現(xiàn)減法電路,差通過(guò)補(bǔ)碼元件U0與8位和U1實(shí)現(xiàn)。輸出借位通過(guò)條件賦值語(yǔ)句實(shí)現(xiàn)。81項(xiàng)目創(chuàng)建與編譯創(chuàng)建項(xiàng)目:利用元件及頂層程序創(chuàng)建項(xiàng)目,如下圖:圖5.288位減法電路項(xiàng)目創(chuàng)建82項(xiàng)目創(chuàng)建與編譯創(chuàng)建項(xiàng)目:項(xiàng)目構(gòu)成文件mSub.vhd、mCompl.vhd與mAdd.vhd,項(xiàng)目名稱(chēng)、頂層實(shí)體名稱(chēng)一致,設(shè)置為mSub。實(shí)現(xiàn)器件選擇MAX3000A系列,具體器件由開(kāi)發(fā)工具自動(dòng)指定。83項(xiàng)目創(chuàng)建與編譯編譯及仿真輸入:編譯項(xiàng)目并設(shè)置仿真輸入,如下圖:圖5.298位減法電路項(xiàng)目與編譯與仿真輸入84項(xiàng)目創(chuàng)建與編譯編譯結(jié)果:QuartusII為減法電路選擇器件EPM3032ALC44-4,封裝形式PLCC,引腳總數(shù)44個(gè),速度等級(jí)4;電路使用宏單元31個(gè),占器件宏單元總數(shù)的97%;使用端口29個(gè),占端口總數(shù)的85%。資源占用率較高,不利于后期的升級(jí)、完善與更新。仿真設(shè)置仿真柵格設(shè)置為40ns、仿真總時(shí)間20us。被減數(shù)A與減數(shù)B分別設(shè)置為周期40ns、800ns的計(jì)數(shù)值,計(jì)數(shù)值依次加13。85電路仿真分析功能仿真:8位無(wú)符號(hào)減法電路的仿真波形如下:圖5.30減法電路功能仿真分析86電路仿真分析8位無(wú)符號(hào)減法電路的被加數(shù)B取值78、91,被減數(shù)A大與減數(shù)B,借位Co輸出0值,Sum輸出差。被減數(shù)A小于B,借位Co輸出1,Sum輸出256+A-B的值。根據(jù)SimulationReport窗的結(jié)果,完成的減法電路能夠正確可靠的完成差值Sum、借位Co的計(jì)算,結(jié)果正確。87電路仿真分析功能及延遲分析:電路的減功能與輸出延遲分析如下:圖5.31減法電路的功能及信號(hào)延遲分析88電路仿真分析8位無(wú)符號(hào)減法電路的被加數(shù)B取值91,輸出Sum、Co根據(jù)加數(shù)A的取值狀況動(dòng)態(tài)變化,計(jì)算結(jié)果符合預(yù)定功能。根據(jù)仿真波形,估算輸出信號(hào)Sum、Co相對(duì)于輸入加數(shù)A、被加數(shù)B端的取值變化,得到電路輸出延遲。Sum延遲時(shí)間在7.5ns左右,穩(wěn)定時(shí)間約2ns;Co延遲時(shí)間在9.5ns左右,穩(wěn)定時(shí)間約0.5ns;89器件、引腳分配及時(shí)間分析器件及引腳分配:減法電路的器件及引腳信號(hào)分配如下:圖5.328位減法電路的器件指定與引腳分配90器件、引腳分配及時(shí)間分析結(jié)合編譯及后期制版,選擇器件EPM3064ATC100-4實(shí)現(xiàn)預(yù)定的8位無(wú)符號(hào)減法電路,引腳信號(hào)分配見(jiàn)下表。表5.9減法電路信號(hào)與引腳的對(duì)應(yīng)關(guān)系91器件、引腳分配及時(shí)間分析考慮到電路后續(xù)的升級(jí)、擴(kuò)展需要,本例指定含有64個(gè)宏單元的CPLD器件EPM3064ATC44-4實(shí)現(xiàn)預(yù)定的減法電路。輸入被減數(shù)A與減數(shù)B被分配至器件頂部,自右至左,各數(shù)據(jù)位由高位至低位順序排列;電路輸出Sum、Co被分配至器件底部引腳,自左至右,各數(shù)據(jù)位由高至低順序排列。92器件、引腳分配及時(shí)間分析電路時(shí)間分析:8位無(wú)符號(hào)減電路的時(shí)間分析見(jiàn)下圖:圖5.338位減法電路的時(shí)間分析93器件、引腳分配及時(shí)間分析時(shí)間分析報(bào)告表明,8位無(wú)符號(hào)減電路的最大輸出延遲時(shí)間發(fā)生在輸出信號(hào)Sum(6)與輸入信號(hào)A(4)之間,最大延遲時(shí)間9.5ns;其余延遲分布在時(shí)間范圍4.5-9.5ns之間。94(7)乘法電路本例通過(guò)常用的8位無(wú)符號(hào)數(shù)的乘法電路設(shè)計(jì),詳細(xì)介紹乘法電路的描述方法與設(shè)計(jì)流程。功能分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析95功能分析乘法電路是高性能處理器的重要構(gòu)成部件,相較于軟件乘法器,其速度更高,可以輔助系統(tǒng)實(shí)現(xiàn)更高的實(shí)時(shí)性。乘法電路一般通過(guò)被乘數(shù)的移位相加得到;執(zhí)行乘運(yùn)算時(shí),電路按位由低到高,依次判斷乘數(shù)各個(gè)數(shù)據(jù)位的取值情況;位值取“1”,將被乘數(shù)加入輸出結(jié)果,而后將被乘數(shù)移位,以供下次使用;位值取“0”,被乘數(shù)只移位,不加入輸出結(jié)果。假定8位輸入乘數(shù)A、被乘數(shù)B,16位輸出乘積S。96程序?qū)崿F(xiàn)根據(jù)乘法電路的功能分析描述8位無(wú)符號(hào)數(shù)的乘法電路,程序名稱(chēng)mMul.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmMulISPORT(A,B:INSTD_LOGIC_VECTOR(7DOWNTO0);S:OUTSTD_LOGIC_VECTOR(15DOWNTO0));ENDmMul;ARCHITECTURESampOFmMulISBEGINMulP:PROCESS(A,B)VARIABLEtmp,dtmp:STD_LOGIC_VECTOR(15DOWNTO0);BEGINdtmp:=X"00"&A;tmp:=X"0000";FORiIN0TO7LOOPIFB(i)='1'THENtmp:=tmp+dtmp;ENDIF;dtmp:=dtmp(14DOWNTO0)&'0';ENDLOOP;S<=tmp;ENDPROCESSMulP;ENDARCHITECTURESamp;97程序?qū)崿F(xiàn)程序設(shè)計(jì)進(jìn)程MulP實(shí)現(xiàn)乘運(yùn)算,敏感量選取被乘數(shù)A與乘數(shù)B,A和B任一數(shù)值發(fā)生變化,MulP執(zhí)行乘運(yùn)算。16位變量dtmp暫存被乘數(shù)的移位結(jié)果,16位變量tmp暫存移位相加后的結(jié)果,最終乘積也存儲(chǔ)在tmp中。計(jì)算乘積時(shí),電路首先初始化,清零乘積tmp,并將被乘數(shù)A送入移位變量dtmp的低8位。而后,通過(guò)FOR-LOOP依次取得并判斷乘數(shù)B的各數(shù)據(jù)位,位值為“1”,執(zhí)行程序行“tmp:=tmp+dtmp;”實(shí)現(xiàn)加;而后執(zhí)行程序行“dtmp:=dtmp(14DOWNTO0)&'0';”實(shí)現(xiàn)被乘數(shù)的左移位。如此循環(huán),直至乘數(shù)的所有數(shù)據(jù)位處理完畢。98項(xiàng)目創(chuàng)建與編譯利用乘法電路描述程序mMul.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.34乘法電路項(xiàng)目創(chuàng)建與編譯99項(xiàng)目創(chuàng)建與編譯創(chuàng)建項(xiàng)目,項(xiàng)目名稱(chēng)、頂層實(shí)體名稱(chēng)設(shè)置為mMul,頂層實(shí)體的VHDL實(shí)現(xiàn)程序命名為mMul.vhd??紤]到邏輯復(fù)雜程度,實(shí)現(xiàn)器件選擇MAXII系列CPLD,具體器件由系統(tǒng)根據(jù)編譯結(jié)果自動(dòng)選擇。電路選擇器件EPM240T100C3,宏單元240個(gè),采用100腳TQFP封裝,速度等級(jí)C3。電路占用器件宏單元134個(gè),宏單元占用率58%;占用引腳32個(gè),占用率40%;未使用用戶(hù)FLASH存儲(chǔ)塊UFM。相對(duì)而言,MAXII器件邏輯規(guī)模較大,適于速度、邏輯資源要求較高的場(chǎng)合。100電路仿真分析仿真輸入與總波形:乘法電路的仿真輸入及結(jié)果如下:圖5.35乘電路的仿真輸入與波形101電路仿真分析圖形文件mMul.vwf為乘法電路的仿真輸入,設(shè)置仿真柵格100ns,仿真總時(shí)長(zhǎng)10us;輸入被乘數(shù)A、乘數(shù)B設(shè)定為計(jì)數(shù)值,計(jì)數(shù)周期40ns,其初始值分別為0、11,每周期數(shù)值增量分別為7、13。仿真結(jié)果波形表明:輸入乘數(shù)與被乘數(shù)變化一次,電路輸出存在較長(zhǎng)的不穩(wěn)定時(shí)間,而后才能輸出穩(wěn)定的乘積結(jié)果。102電路仿真分析乘功能分析:電路的乘功能及延遲分析如下:圖5.36乘電路的功能及延遲分析103電路仿真分析輸入A、B的三個(gè)取值周期內(nèi),乘法電路的輸出隨輸入的取值發(fā)生變化;輸入信號(hào)的三個(gè)取值周期內(nèi),乘運(yùn)算結(jié)果正確。比較電路的輸入、輸出信號(hào)的取值取值變化,初步估算電路的輸出延遲時(shí)間,輸出數(shù)據(jù)建立時(shí)間約15ns,輸出延遲7ns左右。104器件、引腳分配及時(shí)間分析器件及引腳分配:乘法電路的器件及引腳信號(hào)分配如下:圖5.37乘法電路的器件與引腳分配105器件、引腳分配及時(shí)間分析根據(jù)編譯情況,指定EPM240T100C3作為乘法電路實(shí)現(xiàn)器件;頂部指定引腳分配給A與B,底部指定引腳分配給S。方便使用與測(cè)試,信號(hào)序號(hào)按自右至左,由低到高。輸入與輸出信號(hào)分別排列在器件的上部與下部,并隔離開(kāi)來(lái),以便后續(xù)的測(cè)試、布板與走線。表5.108位乘法電路信號(hào)與引腳的對(duì)應(yīng)關(guān)系106器件、引腳分配及時(shí)間分析電路時(shí)間分析:乘法電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.38乘法電路的延遲時(shí)間分析107器件、引腳分配及時(shí)間分析時(shí)間分析參數(shù)表明,比較電路mMul的最大信號(hào)輸出延遲時(shí)間tpd發(fā)生在端口B(0)與S(13)之間,最大延遲32.521ns;電路的其余輸出延遲時(shí)間在4.971ns-32.521ns,乘法電路的輸出延遲時(shí)間要遠(yuǎn)大于其它電路,說(shuō)明乘法電路相對(duì)于其他邏輯電路的復(fù)雜性。108(8)除法電路硬件除法電路具有邏輯結(jié)構(gòu)復(fù)雜、速度快等特點(diǎn),在強(qiáng)實(shí)時(shí)控制應(yīng)用領(lǐng)域應(yīng)用廣泛。本例通過(guò)8位無(wú)符號(hào)數(shù)的除法電路設(shè)計(jì),詳細(xì)介紹除法電路的描述方法與設(shè)計(jì)流程。功能分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析109功能分析除法電路通過(guò)移位相減實(shí)現(xiàn);除過(guò)程中,電路由高至低,依次取得被除數(shù)各數(shù)據(jù)位;取值序列大于除數(shù),結(jié)果位置1,取值序列減去被除數(shù);而后取被除數(shù)下一位,與余數(shù)構(gòu)成新序列,供下次再用。反之,數(shù)值序列小于被除數(shù),當(dāng)前結(jié)果位置“0”,電路直接取被除數(shù)下一位,與當(dāng)前取值序列構(gòu)成新序列。循環(huán)移位、相減,直到被除數(shù)的最后一位。最終剩下的取值序列即的余數(shù),過(guò)程中得到的各數(shù)據(jù)位組合構(gòu)成除結(jié)果。110程序?qū)崿F(xiàn)根據(jù)除法電路原理與除法操作的執(zhí)行過(guò)程,描述8位除法電路,程序名稱(chēng)mDiv.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmDivISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);B:INSTD_LOGIC_VECTOR(7DOWNTO0);S,Rm:OUTSTD_LOGIC_VECTOR(7DOWNTO0));ENDmDiv;ARCHITECTUREarchOFmDivISBEGINDivP:PROCESS(A,B)VARIABLEstmp:STD_LOGIC_VECTOR(7DOWNTO0):=X"00";VARIABLEtmp:STD_LOGIC_VECTOR(8DOWNTO0):="000000000";BEGINtmp:="00000000"&A(7);stmp:=X"00";FORiIN7DOWNTO0LOOPIFtmp>=BTHENstmp(i):='1';tmp:=tmp-B;ELSEstmp(i):='0';ENDIF;IFi>0THENtmp:=tmp(7DOWNTO0)&A(i-1);ENDIF;ENDLOOP;S<=stmp;Rm<=tmp(7DOWNTO0);ENDPROCESSDivP;ENDarch;111程序?qū)崿F(xiàn)程序中設(shè)計(jì)進(jìn)程DivP實(shí)現(xiàn)除的操作過(guò)程,敏感變量選擇被除數(shù)A與除數(shù)B。A、B變化,DivP執(zhí)行1次。電路每次從A中獲取一位并入tmp,構(gòu)成取值序列。每次取位并入變量tmp后,電路按位比較序列tmp與除數(shù)B;若取值序列tmp大于或等于B,當(dāng)前結(jié)果位stmp(i)置“1”,否則清零;而后通過(guò)程序行“tmp:=tmp(6DOWNTO0)&A(i-1);”從A中再取1位,開(kāi)始新一輪循環(huán)。112項(xiàng)目創(chuàng)建與編譯利用除法電路描述程序mDiv.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.398位除法電路的項(xiàng)目創(chuàng)建與編譯113項(xiàng)目創(chuàng)建與編譯創(chuàng)建項(xiàng)目,項(xiàng)目名稱(chēng)、頂層實(shí)體名稱(chēng)設(shè)置為mDiv,電路頂層實(shí)體的VHDL實(shí)現(xiàn)程序命名為mDiv.vhd。電路實(shí)現(xiàn)器件初選MAXII系列CPLD,具體型號(hào)由系統(tǒng)根據(jù)編譯情況自動(dòng)指定。開(kāi)發(fā)系統(tǒng)為電路指定的器件為EPM240T100C3,器件采用100腳TQFP封裝,速度等級(jí)C3。除電路使用器件宏單元187個(gè),宏單元占用率78%;占用信號(hào)引腳32個(gè),占用率40%;用戶(hù)FLASH存儲(chǔ)塊未使用。114電路仿真分析仿真輸入與總波形:除法電路的仿真輸入及結(jié)果如下:圖5.408位除法電路的仿真輸入與結(jié)果115電路仿真分析圖形文件mDiv.vwf為除法電路的仿真輸入,設(shè)置仿真柵格100ns,仿真總時(shí)長(zhǎng)100us;被除數(shù)A、除數(shù)B設(shè)為計(jì)數(shù)值,周期100ns與2us,保證在除數(shù)的一個(gè)取值周期內(nèi)觀察到被除數(shù)與輸出的變化情況。輸入端口信號(hào)A、B的每計(jì)數(shù)增加量均設(shè)置為13,計(jì)數(shù)初始值分別設(shè)定為78與1。仿真波形表明:除電路具有一定的邏輯復(fù)雜性,電路輸入發(fā)生變化,輸出需要經(jīng)歷一定時(shí)間,才能達(dá)到穩(wěn)定輸出。116電路仿真分析功能及延遲分析:電路的除功能及延遲分析如下:圖5.418位除法電路的功能及延遲分析117電路仿真分析輸入A、B的取值周期內(nèi),除法電路的輸出隨輸入的取值發(fā)生變化;輸入信號(hào)的各個(gè)取值周期內(nèi),除法電路運(yùn)算的結(jié)果商S與余數(shù)Rm計(jì)算正確。比較電路的輸入、輸出信號(hào)的取值取值變化,初步估算電路的輸出延遲時(shí)間,輸出信號(hào)延遲時(shí)間在10ns左右,數(shù)據(jù)穩(wěn)定時(shí)間約9ns。118器件、引腳分配及時(shí)間分析器件及引腳分配:除法電路的器件及引腳信號(hào)分配如下:圖5.428位除電路的信號(hào)引腳分配119器件、引腳分配及時(shí)間分析最終指定EPM240T100C3作為除法電路實(shí)現(xiàn)器件;頂部引腳分配給A與B,底部指定引腳分配給S與Rm。器件頂部信號(hào)自左至右為輸入A與B,右起A的低位、A的高位、B的低位與B的高位,共16位。器件底部信號(hào)自左至右依次為求得的余數(shù)RM與除結(jié)果S,數(shù)據(jù)位右起由高到低。表5.11除法電路的信號(hào)與引腳對(duì)應(yīng)關(guān)系120器件、引腳分配及時(shí)間分析電路時(shí)間分析:除法電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.43除電路的延遲時(shí)間分析121器件、引腳分配及時(shí)間分析時(shí)間分析參數(shù)表明,比較電路mMul的最大信號(hào)輸出延遲時(shí)間tpd發(fā)生在端口A(7)與輸出端口信號(hào)Rm(4)之間,最大延遲時(shí)間40.886ns;電路的其余輸出信號(hào)延遲時(shí)間維持在10.872ns-40.886ns之間,除法電路的輸出延遲時(shí)間要大于乘法電路,說(shuō)明除法電路相對(duì)于乘法及其它邏輯電路,具有更高的復(fù)雜性。1225.2典型時(shí)序邏輯電路設(shè)計(jì)典型時(shí)序邏輯電路包括定時(shí)/計(jì)數(shù)器、脈沖電路、觸發(fā)器等,本節(jié)以常用的加減計(jì)數(shù)、串并轉(zhuǎn)換等電路介紹時(shí)序邏輯電路的設(shè)計(jì)描述方法。(1)2進(jìn)制計(jì)數(shù)電路(2)十進(jìn)制計(jì)數(shù)電路(3)脈沖發(fā)生電路(4)串并轉(zhuǎn)換電路(5)并串轉(zhuǎn)換電路(6)JK觸發(fā)器電路(7)D觸發(fā)器電路123(1)2進(jìn)制計(jì)數(shù)電路本例通過(guò)常用的2進(jìn)制計(jì)數(shù)電路設(shè)計(jì),詳細(xì)介紹計(jì)數(shù)電路的描述方法與設(shè)計(jì)流程。功能分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析124功能分析計(jì)數(shù)器工作時(shí),電路對(duì)輸入脈沖信號(hào)進(jìn)行加或減計(jì)數(shù),計(jì)數(shù)脈沖上升沿或下降沿到來(lái),計(jì)數(shù)值加1或減1。加計(jì)數(shù)到最大值,計(jì)數(shù)器回零,重新計(jì)數(shù);減計(jì)數(shù)到“0”,計(jì)數(shù)器回復(fù)最大計(jì)數(shù)值,重新減計(jì)數(shù)。除計(jì)數(shù)功能,計(jì)數(shù)器一般還應(yīng)具備置數(shù)功能,即操作者可以人為設(shè)定計(jì)數(shù)初值。計(jì)數(shù)脈沖來(lái)臨,計(jì)數(shù)器從計(jì)數(shù)初值開(kāi)始執(zhí)行加“1”運(yùn)算。本例介紹8位二進(jìn)制計(jì)數(shù)器的設(shè)計(jì)與電路描述方法,假定電路的數(shù)據(jù)輸入端A、置數(shù)端LD、脈沖輸入CP、加減計(jì)數(shù)選擇端DR,輸出狀態(tài)標(biāo)志BSY、計(jì)數(shù)輸出數(shù)據(jù)D。125程序?qū)崿F(xiàn)根據(jù)計(jì)數(shù)電路的功能分析描述8位計(jì)數(shù)電路,描述程序命名為mCntB.vhd,代碼如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYmCntBISPORT(A:INSTD_LOGIC_VECTOR(7DOWNTO0);LD,CP,DR:INSTD_LOGIC;D:OUTSTD_LOGIC_VECTOR(7DOWNTO0);BSY:OUTSTD_LOGIC);ENDmCntB;ARCHITECTUREarchOFmCntBISBEGINmCntIP:PROCESS(A,CP,LD)VARIABLEtmp:STD_LOGIC_VECTOR(7DOWNTO0):=X"00“;BEGINIFLD='1'THENtmp:=A;BSY<='0';ELSIFCP'EVENTANDCP='0'THENIFDR='1'THENtmp:=tmp+'1';ELSEtmp:=tmp-'1';ENDIF;BSY<='1';ENDIF;D<=tmp;ENDPROCESSmCntIP;ENDarch;126程序?qū)崿F(xiàn)程序通過(guò)進(jìn)程mCntIP實(shí)現(xiàn)計(jì)數(shù)功能,敏感量設(shè)置數(shù)據(jù)端A、計(jì)數(shù)脈沖CP與置數(shù)端LD啟動(dòng)計(jì)數(shù)進(jìn)程,執(zhí)行1次。LD有效,電路將置數(shù)端數(shù)據(jù)A送至內(nèi)部寄存器tmp;計(jì)數(shù)脈沖降沿來(lái)臨,寄存器tmp做加/減“1”運(yùn)算;加到“FF”,脈沖再來(lái),電路溢出,tmp回復(fù)“00”值,計(jì)數(shù)重新開(kāi)始;tmp減到“00”,脈沖再來(lái),電路產(chǎn)生溢出,tmp回復(fù)“FF”值,計(jì)數(shù)重新開(kāi)始。127項(xiàng)目創(chuàng)建與編譯利用電路描述程序mCntB.vhd創(chuàng)建項(xiàng)目并編譯,如下圖:圖5.448位2進(jìn)制計(jì)數(shù)電路項(xiàng)目及編譯128項(xiàng)目創(chuàng)建與編譯創(chuàng)建項(xiàng)目,項(xiàng)目名稱(chēng)、頂層實(shí)體名稱(chēng)設(shè)置為mCntB,頂層實(shí)體的VHDL實(shí)現(xiàn)程序命名mCntB.vhd。考慮到電路的邏輯復(fù)雜程度,實(shí)現(xiàn)器件選擇MAX3000A系列CPLD,具體器件由系統(tǒng)根據(jù)編譯結(jié)果自動(dòng)選擇。編譯后,系統(tǒng)指定CPLD器件EPM3032ALC44-4實(shí)現(xiàn)預(yù)定的8位2進(jìn)制計(jì)數(shù)電路;電路共占用器件的宏單元9個(gè)、引腳24個(gè),宏單元使用率28%,引腳使用率71%,基本合理。129電路仿真分析仿真輸入與總波形:2進(jìn)制計(jì)數(shù)電路仿真結(jié)果如下:圖5.458位2進(jìn)制計(jì)數(shù)電路的仿真分析130電路仿真分析仿真輸入窗mCntB.vwf中,仿真柵格設(shè)置為10ns,仿真總時(shí)間1us;置數(shù)端A設(shè)為09H,脈沖CP周期10ns,加減計(jì)數(shù)選擇DR設(shè)為起始值1、周期1us的脈沖,輸出數(shù)值D設(shè)為16進(jìn)制數(shù)。根據(jù)仿真報(bào)告SimulationReport,置數(shù)端LD為低,電路正常計(jì)數(shù);LD拉高,電路立即終止計(jì)數(shù),將A端數(shù)據(jù)09H送入計(jì)數(shù)電路,輸出端D迅速更正為A端數(shù)據(jù)09H;LD回復(fù)為低,電路恢復(fù)計(jì)數(shù)。131電路仿真分析加計(jì)數(shù)仿真:2進(jìn)制計(jì)數(shù)電路加計(jì)數(shù)仿真結(jié)果如下:圖5.468位2進(jìn)制計(jì)數(shù)電路的加計(jì)數(shù)仿真132電路仿真分析減計(jì)數(shù)仿真:2進(jìn)制計(jì)數(shù)電路減計(jì)數(shù)仿真結(jié)果如下:圖5.478位2進(jìn)制計(jì)數(shù)電路的減計(jì)數(shù)仿真133電路仿真分析加減計(jì)數(shù)轉(zhuǎn)換仿真:電路的加減計(jì)數(shù)轉(zhuǎn)換仿真結(jié)果如下:圖5.488位2進(jìn)制計(jì)數(shù)電路的加減計(jì)數(shù)轉(zhuǎn)換仿真134電路仿真分析加計(jì)數(shù),DR置高,CP降沿來(lái)臨,輸出計(jì)數(shù)值D加1;LD拉高,D端更新為A端數(shù)值09H,此時(shí)CP失效;LD回復(fù)0值,計(jì)數(shù)器從數(shù)值09H開(kāi)始加計(jì)數(shù)。減計(jì)數(shù),DR拉低,電路執(zhí)行減計(jì)數(shù);置數(shù)端LD拉高,計(jì)數(shù)立即停止,D端更新為A端數(shù)據(jù)09H;LD回復(fù)零值,電路重新從09H開(kāi)始,響應(yīng)CP,重啟減計(jì)數(shù)。加減計(jì)數(shù)轉(zhuǎn)換,DR由高轉(zhuǎn)低,電路由加計(jì)數(shù)轉(zhuǎn)減計(jì)數(shù)。比較電路的輸入、輸出取值變化,估算電路的輸出延遲時(shí)間,CP與輸出忙標(biāo)志BSY的時(shí)鐘輸出延遲tco約4.2ns,與輸出計(jì)數(shù)值D的時(shí)鐘輸出延遲tco約3.0ns。135器件、引腳分配及時(shí)間分析器件及引腳分配:計(jì)數(shù)電路的器件及信號(hào)分配如下:圖5.498位2進(jìn)制計(jì)數(shù)電路的引腳信號(hào)分配136器件、引腳分配及時(shí)間分析根據(jù)編譯情況,指定EPM240T100C3作為電路實(shí)現(xiàn)器件;從37腳到28腳,端口按逆時(shí)針順序?yàn)椋好}沖端CP、計(jì)數(shù)值設(shè)定端A、加/減計(jì)數(shù)選擇端DR、置數(shù)端LD、輸出計(jì)數(shù)值D與忙標(biāo)志BSY;端口數(shù)據(jù)位也按由高到低的次序排布。表5.128位二進(jìn)制計(jì)數(shù)電路信號(hào)與引腳的對(duì)應(yīng)關(guān)系137器件、引腳分配及時(shí)間分析電路時(shí)間分析:計(jì)數(shù)電路的詳細(xì)時(shí)間分析見(jiàn)下圖:圖5.508位2進(jìn)制計(jì)數(shù)電路的時(shí)間分析138器件、引腳分配及時(shí)間分析時(shí)間分析參數(shù)表明:2進(jìn)制計(jì)數(shù)電路mCntB數(shù)據(jù)建立時(shí)間tsu最大值為2.9ns;時(shí)鐘輸出延遲時(shí)間tCO最大值3.0ns;數(shù)據(jù)保持時(shí)間tH最大值-1.0ns;139(2)10進(jìn)制計(jì)數(shù)電路本例以2位十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)為例,介紹十進(jìn)制計(jì)數(shù)器的設(shè)計(jì)與電路描述。。功能分析程序?qū)崿F(xiàn)項(xiàng)目創(chuàng)建與編譯電路仿真分析器件、引腳分配及時(shí)間分析140功能分析十進(jìn)制計(jì)數(shù)電路與
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年戶(hù)外用品銷(xiāo)售(售后咨詢(xún))試題及答案
- 2025年高職(汽車(chē)檢測(cè)與維修技術(shù))汽車(chē)新能源技術(shù)階段測(cè)試題及答案
- 2026年數(shù)據(jù)分析師某互聯(lián)網(wǎng)公司面試題及答案
- 2025-2030汽車(chē)設(shè)計(jì)行業(yè)市場(chǎng)供需環(huán)境分析競(jìng)爭(zhēng)格局投資價(jià)值評(píng)估規(guī)劃
- 2025-2030汽車(chē)行業(yè)市場(chǎng)供需演變投資評(píng)估規(guī)劃深度解析研究報(bào)告
- 2025-2030汽車(chē)租賃行業(yè)市場(chǎng)發(fā)展前景競(jìng)爭(zhēng)分析投資評(píng)估規(guī)劃報(bào)告
- 2025-2030汽車(chē)汽配產(chǎn)品零售行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2025-2030汽車(chē)整車(chē)制造業(yè)市場(chǎng)深度分析及發(fā)展趨勢(shì)報(bào)告
- 2025-2030汽車(chē)年檢新規(guī)實(shí)施對(duì)各細(xì)分市場(chǎng)競(jìng)爭(zhēng)影響符合改善方案評(píng)估發(fā)展
- 2025-2030汽車(chē)尾氣凈化催化劑研發(fā)項(xiàng)目方案技術(shù)優(yōu)勢(shì)評(píng)估投資前景方案
- 業(yè)務(wù)協(xié)同考核管理辦法
- 操盤(pán)手勞動(dòng)合同附加協(xié)議
- 2025年中學(xué)生守則及中學(xué)生日常行為規(guī)范
- 理解當(dāng)代中國(guó) 大學(xué)英語(yǔ)綜合教程1(拓展版)課件 B1U3 Into the green
- 醫(yī)藥展會(huì)活動(dòng)方案
- 【庫(kù)潤(rùn)數(shù)據(jù)】2025口服抗衰消費(fèi)者趨勢(shì)洞察報(bào)告
- 快遞車(chē)輛運(yùn)輸管理辦法
- 麻醉術(shù)后健康教育
- 《COUNS門(mén)禁CU-K05使用說(shuō)明書(shū)》
- 麻醉蘇醒期并發(fā)癥及處理
- tpm自主設(shè)備管理制度
評(píng)論
0/150
提交評(píng)論