基于ALU的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算_第1頁
基于ALU的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算_第2頁
基于ALU的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算_第3頁
基于ALU的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算_第4頁
基于ALU的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

PAGE33PAGE0摘要隨著半導(dǎo)體技術(shù)和系統(tǒng)設(shè)計技術(shù)的發(fā)展,傳統(tǒng)單片機由于其尺寸小、功耗低、一些專有特性已經(jīng)難以滿足一些場合的需要。基于EDA軟件的設(shè)計方式是借助于計算機來快速準(zhǔn)確的完成電路的設(shè)計。設(shè)計者提出方案后,利用計算機進行邏輯分析、性能分析、時序測試,如果發(fā)現(xiàn)錯誤或方案不理想,可以重復(fù)上述過程直至得到滿意的電路,然后進行硬件電路的實現(xiàn)。這種方法提高了設(shè)計質(zhì)量,縮短了設(shè)計周期節(jié)省了設(shè)計費用,提高了產(chǎn)品的競爭力。本文對CPU中的ALU的設(shè)計,能夠完成帶進位的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算。在寄存器模塊中集成了構(gòu)成數(shù)據(jù)路徑的所有寄存器和多路選擇器,這些多路選擇器受控制信號的控制,構(gòu)成了數(shù)據(jù)路徑中的數(shù)據(jù)傳輸部分。在具體設(shè)計時用HLD語言來完成所希望的電路系統(tǒng),并規(guī)定器件的結(jié)構(gòu)特征和電路的行為方式,然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD內(nèi)部結(jié)構(gòu),并實現(xiàn)相應(yīng)邏輯功能的的門級或更底層的結(jié)構(gòu)網(wǎng)表文件或下載文件。關(guān)鍵詞:ALUHLDFPGAEDAAbstractWiththedevelopmentofthesemiconductortechnologyandsystemdesigntechnology,ithasbeendifficulttomeettheneedsofanumberofoccasionsbecauseofthetraditionalsinglechips’smallsize,lowpowerconsumptionandanumberofproprietaryfeatures.Basedon

EDAsoftware,thedesignusescomputertocompletethecircuitquicklyandaccurately.Aftermakingaproposal,theDesignersdologicanalysis,performanceanalysisandtimingtest,iftheyfindanerrororiftheprogramisnotsatisfactory,theyrepeattheprocessuntilitbecomeasatisfactorycircuitandthenimplementthehardwarecircuit

.Thisapproachimprovesdesignqualityandshortenthedesigncycle,savesdesigncostsandimprovesproductcompetitiveness.

Inthispaper,thedesignofALUfortheCPUcancompletetheeight-bitnumberwithcarrybitintoadditionandsubtractionoperationsandfour-digitnumberintomultiplicationanddivisionoperations.Registermoduleintegratesallregistersandmultiplexersthatconstitutethedataway.Thesemultiplexersundercontrolofthecontrolsignalsconstitutethedatatransmissionpartofdataway.

Inspecificdesign,itcompletestheexpectedelectricalsystemswithHLDlanguageandprovidesthestructuralcharacteristicsofthedeviceandcircuitbehavior.ThenwiththisintegrateddeviceandtheadapterprogramtheprogramiscompiledintoFPGAandCPLDtocontroltheinternalstructureandlogicfunctionstoachievethecorrespondinggate-levelorlower-levelstructuralnetlistfilesordownloadingfilesKeywords:ArithmeticLogicUnitFieldProgrammableGateArray 目錄1、 緒論 11.1 EDA技術(shù)發(fā)展概況 11.1.1CAD階段 11.1.2CAE階段 11.1.3EDA階段 11.2 PLD發(fā)展概況 21.3課題研究的內(nèi)容 31.3.1設(shè)計背景介紹 31.3.2功能要求 32、EDA技術(shù)的基礎(chǔ)知識 52.1可編程ASIC器件 52.2EDA設(shè)計工具 63、總體方案設(shè)計 73.1設(shè)計內(nèi)容 73.2設(shè)計方案比較 73.3方案論證 83.4方案選擇 84、單元模塊設(shè)計 94.1有源晶振電路 94.2供電電路 104.3按鍵輸入電路 114.4LED狀態(tài)燈輸出電路 114.5最小系統(tǒng) 125、軟件實現(xiàn) 135.1軟件設(shè)計 136、系統(tǒng)仿真及調(diào)試 196.1仿真 196.2調(diào)試 217、總結(jié) 227.1設(shè)計小結(jié) 227.2設(shè)計收獲 227.3設(shè)計改進 228、參考文獻 23緒論21世紀(jì)人類將全面進入信息化社會,對微電子信息技術(shù)和微電子VLSI基礎(chǔ)技術(shù)將不斷提出更高的發(fā)展要求,微電子技術(shù)仍將繼續(xù)是21世紀(jì)若干年代中最為重要的和最有活力的高科技領(lǐng)域之一。而集成電路(IC)技術(shù)在微電子領(lǐng)域中占有重要的地位。且伴隨著IC技術(shù)的發(fā)展,電子設(shè)計自動化(ElectronicDesignAutomation,EDA)已經(jīng)逐漸成為重要的設(shè)計手段,其廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。EDA技術(shù)發(fā)展概況電子設(shè)計自動化(EDA,ElectronicDesignAutomation)是指利用計算機完成電子系統(tǒng)的設(shè)計。EDA技術(shù)是以計算機和微電子技術(shù)為先導(dǎo),匯集了計算機圖形學(xué)、拓?fù)溥壿媽W(xué)、微電子工藝與結(jié)構(gòu)學(xué)和計算數(shù)學(xué)等多種計算機應(yīng)用學(xué)科最新成果的先進技術(shù)。EDA技術(shù)以計算機為工具,代替人完成數(shù)字系統(tǒng)的邏輯綜合、布局布線和設(shè)計仿真等工作。設(shè)計人員只需要完成對系統(tǒng)功能的描述,就可以由計算機軟件進行處理,得到設(shè)計結(jié)果,而且修改設(shè)計如同修改軟件一樣方便,可以極大地提高設(shè)計效率。根據(jù)電子設(shè)計技術(shù)的發(fā)展特征,EDA技術(shù)發(fā)展大致分為三個階段。1.1.1CAD階段第一階段的特點是一些單獨的工具軟件,主要有PCB布線設(shè)計、電路模擬、邏輯模擬及版圖的繪制等,通過計算機的使用,從而將設(shè)計人員從大量煩瑣重復(fù)的計算和繪圖工作中解脫出來。這個時期的EDA一般稱為CAD。1.1.2CAE階段這個階段在集成電路與電子設(shè)計方法學(xué)以及設(shè)計工具集成化方面取得了許多成果,各種設(shè)計工具,如原理圖輸入、編譯與連接、邏輯模擬、測試碼生成、版圖自動布局以及各種單元庫已齊全。由于采用了統(tǒng)一數(shù)據(jù)管理技術(shù),因而能夠?qū)⒏鱾€工具集成為一個CAE系統(tǒng)。按照設(shè)計方法學(xué)制定的設(shè)計流程,可以實現(xiàn)從設(shè)計輸入到版圖輸出的全程設(shè)計自動化。這個階段主要采用基于單元庫的半定制設(shè)計方法,采用門陣列和標(biāo)準(zhǔn)單元設(shè)計的各種ASIC得到了極大的發(fā)展,將集成電路工業(yè)推入了ASIC時代。1.1.3EDA階段20世紀(jì)90年代以來,微電子技術(shù)以驚人的速度發(fā)展,其工藝水平達到了深亞微米級,在一個芯片上可集成數(shù)百萬乃至上千萬只晶體管,工作速度可達到GHz,這為制造出規(guī)模更大,速度更快和信息容量很大的芯片系統(tǒng)提供了條件,但同時也對EDA系統(tǒng)提出了更高的要求,并促進了EDA技術(shù)的發(fā)展。此階段主要出現(xiàn)了以高級語言描述、系統(tǒng)仿真和綜合技術(shù)為特征的第三代EDA技術(shù),不僅極大地提高了系統(tǒng)的設(shè)計效率,而且使設(shè)計人員擺脫了大量的輔助性及基礎(chǔ)性工作,將精力集中于創(chuàng)造性的方案與概念的構(gòu)思上,下面簡單介紹這個階段EDA技術(shù)的主要特征:(1)高層綜合(HLS)的理論與方法取得較大進展,將EDA設(shè)計層次由RT級提高到了系統(tǒng)級,并劃分為邏輯綜合和測試綜合。(2)采用硬件描述語言HDL來描述10萬門以上的設(shè)計,并形成了VHDL和VerilogHDL兩種標(biāo)準(zhǔn)硬件描述語言。它們均支持不同層次的描述,使得IC的描述規(guī)范化,便于傳遞、交流、保存與修改,重復(fù)使用,多應(yīng)用于FPGA/CPLD/EPLD的設(shè)計中。(3)可測性綜合設(shè)計。(4)為帶有嵌入IP模塊的ASIC設(shè)計提供軟硬件協(xié)同系統(tǒng)設(shè)計工具。協(xié)同驗證彌補了硬件設(shè)計和軟件設(shè)計流程之間的空隙,保證了軟硬件之間的同步協(xié)調(diào)工作。(5)建立并行設(shè)計工程CE框架結(jié)構(gòu)的集成化設(shè)計環(huán)境,以適應(yīng)當(dāng)今ASIC的如下一些特點:數(shù)字與模擬電路并存,硬件與軟件設(shè)計并存,產(chǎn)品上市速度要快。PLD發(fā)展概況當(dāng)今社會是數(shù)字化社會,數(shù)字電路應(yīng)用非常廣泛,其發(fā)展從電子管、晶體管、小規(guī)模集成電路SSI、MSI、LSI、VLSI到超大規(guī)模集成電路ULSI和超位集成電路GSI,其規(guī)模幾乎平均每1-2年翻一番。集成電路的發(fā)展大大促進了EDA的發(fā)展,先進的EDA已從傳統(tǒng)的“自下而上”的設(shè)計方法改變?yōu)椤白陨隙隆钡脑O(shè)計方法?,F(xiàn)應(yīng)用最廣泛的PLD主要是現(xiàn)場可編程門陣列FPGA、復(fù)雜可編程邏輯期間CPLD和可擦除可編程邏輯器件EPLD。EPLD、CPLD和FPGA在內(nèi)的復(fù)雜PLD迅速發(fā)展起來,并向著高密度、高速度、低功耗以及結(jié)構(gòu)體系更靈活、適用范圍更寬廣的方向發(fā)展??刹脸删幊踢壿嬈骷﨓PLD是20世紀(jì)80年代中期Altera公司推出的基于UVEPROM和CMOS技術(shù)的PLD,后來發(fā)展到采用E2CMOS工藝制作的PLD。EPLD基本邏輯單元是宏單元。宏單元由可編程的與或陣列、可編程寄存器和可編程I/O三部分組成。復(fù)雜可編程邏輯器件CPLD是20世紀(jì)80年代末Lattice公司提出的在線可編(ISP技術(shù)以后于20世紀(jì)90年代初出現(xiàn)的。CPLD是在EPLD的基礎(chǔ)上發(fā)展起來的,采用CMOS工藝制作,與EPLD相比,增加了內(nèi)部連線,對邏輯宏單元和I/O單元也有重大的改進CPLD包含三種結(jié)構(gòu):可編程邏輯宏單元、可編程I/O單元和可編程內(nèi)部連線?,F(xiàn)場可編程門陣列FPGA器件是Xilinx公司1985年首家推出的,它是一種新型的高密度PLD,采用CMOS-SRAM工藝制作。FPGA的結(jié)構(gòu)與門陣列PLD不同,其內(nèi)部由許多獨立的可編程邏輯模塊(CLB)組成,邏輯塊之間可以靈活地相互連接。FPGA的結(jié)構(gòu)一般分為三部分:可編程邏輯塊、可編程I/O模塊和可編程內(nèi)部連線。1.3課題研究的內(nèi)容1.3.1設(shè)計背景介紹算術(shù)邏輯單元(ArithmeticLogicUnit,ALU)是中央處理器(CPU)的執(zhí)行單元,是所有中央處理器的核心組成部分,由"AndGate"和"OrGate"構(gòu)成的算術(shù)邏輯單元,主要功能是進行二進制的算術(shù)運算,如加減乘。所有現(xiàn)代CPU體系結(jié)構(gòu)中,二進制都以補數(shù)的形式來表示。此算術(shù)邏輯單元能構(gòu)完成帶進位的八位數(shù)的加減運算和四位數(shù)的乘法和除法的運算。本文介紹帶進位的ALU設(shè)計,用VerilogHDL語言編寫,并可以在FPGA上實現(xiàn)。整個ALU由6個模塊組成:加/減法器、乘法器、除法器、十進制調(diào)整器、邏輯運算器以及一個多路選擇器。其中加/減法器又可以分成兩個子模塊。算術(shù)邏輯單元ALU執(zhí)行處理器中所有的整數(shù)運算指令。在實際的ALU設(shè)計中,考慮到所有的整數(shù)運算指令。除了要算出結(jié)果,還要設(shè)置許多標(biāo)志位,如溢出標(biāo)志,進位標(biāo)志等。根據(jù)指令的類型和總體任務(wù)的實現(xiàn),我把ALU塊劃分為邏輯和比較指令模塊、加減法模塊、乘法塊、除法塊和alu控制塊,ALU模塊內(nèi)部的結(jié)構(gòu)圖如下所示:加減法模塊加減法模塊乘法器除法器邏輯運算塊ALU控制器圖1-1ALU的結(jié)構(gòu)圖1.3.2功能要求本系統(tǒng)為算術(shù)邏輯單元,整個系統(tǒng)的原理框圖如上圖所示,此邏輯單元由5位操作碼OP,一位的進位位輸入,2個8位的數(shù)據(jù)輸入,一個進位輸出和一個八位的數(shù)據(jù)輸出組成。ALU單元可以根據(jù)操作編碼的不同進行,八位數(shù)據(jù)的加減,和四位數(shù)據(jù)的乘除,以及邏輯運算。其中C_in為進位輸入,因此ALU還可以進行,帶進位的八位加減運算,當(dāng)產(chǎn)生進位位時,進位位置入ALU_C中。ALUOp[4:0]ALUC_inAc_in[7:0]ALU_O[7:0]Gr_in[7:0] 圖1-2系統(tǒng)原理方框圖2、EDA技術(shù)的基礎(chǔ)知識2.1可編程ASIC器件近年來為適應(yīng)專用Cl設(shè)計需求而迅速發(fā)展起來的大規(guī)??删幊踢壿嬈骷饕◤?fù)雜可編程邏輯器件(CPLD)和現(xiàn)場可編程門陣列(FPGA)兩大類。這兩類器件通常被稱為可編程ASIC,與其它兩種ASCI相比不同之處在于它具有用戶可編程特性,而且可進行邏輯門級編程。采用可編程AsIC,對干半導(dǎo)體制造廠家來說可按照一定的規(guī)格以通用器件大量生產(chǎn),對于用戶來說可按通用器件從市場上選購,再由用戶通過自己編程實現(xiàn)ASCI的要求。CPLD和FPGA構(gòu)成了可編程專用集成電路的兩大主要分支器件。1.CLPD從結(jié)構(gòu)上,復(fù)雜可編程邏輯器件(CPLD)其內(nèi)部主要由輸出邏輯宏單元(oLMc,oPututLogi。Macorec)ll、可編程的與或陣列、可編程互連矩陣單元以及1/0單元組成。由于CPLD內(nèi)部采用固定長度的金屬線進行各邏輯塊的互連,所以設(shè)計的邏輯電路不僅信號傳遞快,而且布線延遲固定,可以預(yù)測,避免了分段式互連結(jié)構(gòu)時序不完全預(yù)測的缺點,但其邏輯門密度較小。九十年代以來,CPLD的發(fā)展已越來越迅速,不僅具有電擦除特性,而且出現(xiàn)了邊緣掃描及在線可編程等高級特性。具有代表性的產(chǎn)品有Xliinx公司的EPLDXC9500系列、Altera公司的CPLDMAX7000系列及Lattiee公司的ISPLSI用LSll000和2000系列等CPLD。1992年Lattiee公司率先推出了在系統(tǒng)編程技術(shù)(Isp,InSystemprogrnunabaility),IsP指采用直接或間接方式,對電子系統(tǒng)中的PLD器件進行編程或改寫,也可以實現(xiàn)對整個系統(tǒng)的功能進行重構(gòu)。2.FPGAFPGA具有類似門陣列或類似ASIC的結(jié)構(gòu),既有門陣列的高邏輯密度和通用性,又有可編程邏輯器件的用戶可編程特性。它通常包含三類可編程資源:可編程邏輯功能塊,可編程FO塊和可編程互連網(wǎng)絡(luò)??删幊踢壿嫻δ軌K是實現(xiàn)用戶功能的基本單元,它們通常排列成一個陣列,散布于整個芯片;可編程UO塊完成芯片上邏輯與外部封裝引腳的接口,常圍繞著陣列排列于芯片四周;可編程內(nèi)部網(wǎng)絡(luò)互連包括各種長度的連線線段和一些可編程連接開關(guān),它們將各個可編程邏輯塊或FO塊連接起來,構(gòu)成特定功能的電路。不同廠家生產(chǎn)的FPGA在可編程邏輯塊的規(guī)模、內(nèi)部互連線的結(jié)構(gòu)和采用的可編程元件上存在較大的差異,因而實現(xiàn)邏輯功能的能力也不同。較常用的有Xliinx、Ahera和Actel公司的FPGA。其中xliinx公司和Altera公司的FPGA是基于SRAM技術(shù)的,可重復(fù)編程,斷電后信息將會丟失;而Actel公司的FPGA是基于熔絲技術(shù),一次性編程,斷電后信息不會丟失??偟膩碚fFPGA具有布線靈活,可用邏輯門數(shù)多,布線延遲不可預(yù)測的特點。2.2EDA設(shè)計工具在一般的設(shè)計開發(fā)中,不同的電路設(shè)計方案對硬件的需求應(yīng)該與所選用的FPGA器件的內(nèi)部結(jié)構(gòu)特點相匹配,使系統(tǒng)性能達到最佳。而在做本實驗是主要運用的軟件主要是QuartusII6.0、Explorer99SE等相互協(xié)同完成。在實際完成設(shè)計時,在EDA環(huán)境下借助計算機能快速準(zhǔn)確的完成電路的設(shè)計,提高設(shè)計質(zhì)量,縮短設(shè)計周期,節(jié)省設(shè)計費用,可以提高產(chǎn)品的市場競爭力。因此為用戶提供了便利,成為了設(shè)計者不可缺少的有力工具。3、總體方案設(shè)計3.1設(shè)計內(nèi)容設(shè)計一個算術(shù)邏輯單元,此邏輯單元由5位操作碼OP,一位的進位位輸入,2個8位的數(shù)據(jù)輸入,一個進位輸出和一個八位的數(shù)據(jù)輸出組成。ALU單元根據(jù)操作編碼的不同進行,八位數(shù)據(jù)的加減,和四位數(shù)據(jù)的乘除,以及邏輯運算。其中C_in為進位輸入,因此ALU還可以進行,帶進位八位加減運算,當(dāng)產(chǎn)生進位位時,進位位置入ALU_C中。3.2設(shè)計方案比較方案一:由下圖3-1可以看出其組成結(jié)構(gòu)較為復(fù)雜,用兩個38譯碼器,將輸入的3位轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)輸入單片機進行相應(yīng)的計算,再通過8位LED燈顯示輸出。采用標(biāo)準(zhǔn)的8051設(shè)計ALU結(jié)構(gòu)框圖如下圖所示。單單片機3-8譯碼器3-8譯碼器3位按鍵輸入3位按鍵輸入電源時鐘5位操作碼輸入8個LED燈顯示圖3-1由單片機構(gòu)成的ALU結(jié)構(gòu)方案二:基于FPGA的ALU設(shè)計??梢院芎玫耐ㄟ^編程設(shè)計多位加、減、乘、除等,硬件電路簡單,對應(yīng)的HDL語言較容易實現(xiàn)。在實際的工程應(yīng)用中,使用簡單易行并且穩(wěn)定的EDA設(shè)計比較適合。通過按鍵輸入,再由編程實現(xiàn)內(nèi)部算法,通過LED可輸出直觀的看到輸出的結(jié)果。其構(gòu)成框圖如下圖3-2所示:FPGAFPGA電源時鐘8位按鍵輸入8位按鍵輸入5位操作碼輸入8位LED燈顯示圖3-2由FPGA構(gòu)成的ALU3.3方案論證 由以上兩個方案圖可知:用單片機實現(xiàn)ALU,單片機資源有限特別是輸入輸出管腳,外部擴展電路較多,整體電路復(fù)雜。在單片機實現(xiàn)算法分析上,其程序設(shè)計較為困難,系統(tǒng)不夠穩(wěn)定,功耗較大。 用FPGA設(shè)計ALU。FPGA管腳資源,外圍電路簡單,功耗較小,系統(tǒng)穩(wěn)定。在HDL編程實現(xiàn)內(nèi)部算法上較為容易,移植性強,維護容易。此外其先進的開發(fā)工具使整個系統(tǒng)的設(shè)計調(diào)試周期大大縮短,一般來講,同樣的邏輯,基于FPGA要比基于單片機要快很多,因為它們工作的原理是完全不同的。單片機是基于指令工作的,同樣的激勵到達單片機后,單片機首先要判斷,然后讀取相應(yīng)的指令,最后作出相應(yīng),這每一步都是需要在單片機的時鐘驅(qū)動下一步步的進行。而基于FPGA則是把相應(yīng)的邏輯“暫時”固化為硬件電路了,它對激勵作出的響應(yīng)速度就是電信號從FPGA的一個管腳傳播另一個管腳的傳播速度,當(dāng)然這指的是異步邏輯,同時電信號也要在芯片內(nèi)進行一些柵電容的充放電動作,但這些動作都是非常非??斓?。3.4方案選擇在現(xiàn)在ALU設(shè)計的功能提出了更高的要求,尤其在現(xiàn)代SOC技術(shù)的引領(lǐng)下,人們對低故障、高實時、高可靠、高穩(wěn)定的性能更加青睞。考慮到整體電路簡單、系統(tǒng)穩(wěn)定且功耗小的基礎(chǔ)上,結(jié)合本設(shè)計的要求及綜合以上比較的情況,我們選擇了基于FPGA的ALU設(shè)計方案。4、單元模塊設(shè)計 本設(shè)計由現(xiàn)場可編程門矩陣(FPGA)作為控制芯片,通過VreilogHDL硬件描述語言設(shè)計,運用自頂而下的設(shè)計思想,按功能逐層分割實現(xiàn)層次化的設(shè)計??傮w設(shè)計方案為通過VreilogHDL硬件描述語言,將個個狀態(tài)及狀態(tài)之間的轉(zhuǎn)換用程序語言描述出來,再由FPGA芯片調(diào)試后實現(xiàn)。下面介紹主要模塊的功能及作用。4.1有源晶振電路采用有源晶振作為時鐘信號源,它是一個完整的振蕩器,內(nèi)部除了石英晶體外還有阻容軟件和晶體管,有源晶振信號質(zhì)量好,比較穩(wěn)定,而且連接方式比較簡單。本設(shè)計所用的為20MHZ的晶振,而20MHz以下的晶體晶振基本上都是基頻的器件,穩(wěn)定度好,20MHz以上的大多是諧波的,穩(wěn)定度差,因此我們使選用頻的器件,畢竟倍頻用的PLL電路需要的周邊配置主要是電容、電阻、電感,其穩(wěn)定度和價格方面遠(yuǎn)遠(yuǎn)好于晶體晶振器件。圖4-1有源晶振電路4.2供電電路本設(shè)計用到了三個電源,第一是+5V的電源,用于為上拉電阻提供電壓;第二是+3.3V電源,用于為FPGA芯片提供工作電壓;第三是+2.5V電源,用于為FPGA芯片內(nèi)核工作提供電壓。在FPGA芯片管腳上,+2.5V電源必須接在內(nèi)核電源輸入端(VCCINT)上,而VCCIO是芯片輸入輸出引腳工作電源,根據(jù)輸入輸出的設(shè)備不同,可以接2.5V、3.3V或5.0V。注意的是EPC1PC8的工作電壓必須為3.3V,具有可擦寫的功能。 圖4-2供電電路4.3按鍵輸入電路圖4-3鍵盤輸入4.4LED狀態(tài)燈輸出電路 圖4-4LED燈輸出電路8個LED燈模擬8位數(shù)字輸出結(jié)果,亮為1,滅為0。4.5最小系統(tǒng) 圖4-5電路原理圖本設(shè)計的電路實現(xiàn)是基于FPGA最小系統(tǒng)原理圖,再配以所需的外設(shè)。最小系統(tǒng)設(shè)計包含了時鐘產(chǎn)生電路模塊、程序下載配置電路模塊、電源電路模塊,通過連線將各個模塊進行連接成最小系統(tǒng)。由于本設(shè)計電路比較簡單,外設(shè)比較少,使用到的四個獨立鍵盤,模擬實現(xiàn)信號輸入,六個LED燈模擬實現(xiàn)信號狀態(tài)指示。我們隊外設(shè)也作了擴展準(zhǔn)備,將FPGA芯片的IO引腳進行了插針引出,以方便后續(xù)電路的擴展。5、軟件實現(xiàn)通過至頂向下(TOP--DOWN)的設(shè)計方法,對實驗所需要的電源電路、供電電路、配置電路、鍵盤輸入電路、LED顯示輸出電路的設(shè)計與檢驗。對ALU電路的兩個輸入AC_in和GR_in,分別用OP位來控制邏輯運算單元所要執(zhí)行的運算指令。再檢查運算結(jié)果是否正確,對比實際結(jié)果和運算輸出結(jié)果,綜合上述設(shè)計思想和方法進行一下軟件設(shè)計。5.1軟件設(shè)計設(shè)計程序如下:moduleALU(ALU_O,ALU_C,C_in,op,AC_in,GR_in);outputALU_C;//進位位輸出output[7:0]ALU_O;inputC_in;//進位位輸入input[4:0]op;//操作方式選擇碼input[7:0]AC_in;input[7:0]GR_in;reg[7:0]ALU_O;regALU_C;always@(C_inoroporAC_inorGR_in)begin case(op) 5'b00011: begin{ALU_C,ALU_O}={C_in,AC_in};end 5'b00100:begin{ALU_C,ALU_O}={C_in,GR_in};end//如果操作譯碼為5’b00100則完成RI->AC直移5'b00111:begin{ALU_C,ALU_O}=AC_in+GR_in;end//如果操作譯碼為了5‘b00111則進行八位數(shù)相加 5'b01000: begin{ALU_C,ALU_O}=AC_in-GR_in;end//如果操作編碼為了5‘b01000則八位數(shù)相減 5'b01011:begin{ALU_C,ALU_O}=AC_in+GR_in+C_in;end//如果操作譯碼為了5‘b01011則進行帶進位八位數(shù)相加 5'b01100: begin{ALU_C,ALU_O}=AC_in-GR_in-C_in;end//如果操作譯碼為了5‘b01100則進行帶借位八位數(shù)相減5'b01111:begin{ALU_C,ALU_O}={C_in,~GR_in};end//如果操作編碼為5’b01111則進行取反操作5'b10000:begin{ALU_O,ALU_C}={C_in,GR_in};end//如果操作碼為5’b10000則完成SHCRAC,RI 5'b10001:begin{ALU_C,ALU_O}={GR_in,C_in};end//如果操作碼為5’b10001則完成SHCLAC,RI 5'b11100:begin{ALU_C,ALU_O}={C_in,mul(AC_in[3:0],GR_in[3:0])};end//如果操作譯碼為5’b11100則完成四位數(shù)相乘 5'b11101:begin{ALU_C,ALU_O}={C_in,div(AC_in[7:0],GR_in[7:0])};end//如果操作譯碼為5’b11101則完成四位數(shù)相除 default:begin{ALU_C,ALU_O}={C_in,ALU_O};end endcaseendfunction[7:0]mul;//四位數(shù)移位相乘函數(shù)input[3:0]AC_in;input[3:0]GR_in;reg[7:0]R;reg[7:0]temp;reg[7:0]temp2;beginR=0;temp=0;temp2=AC_in;if(GR_in[0]==1)begintemp=temp2;R=temp2;temp2=temp;endif(GR_in[1]==1)begintemp=temp2;R=R+(temp2<<1);temp2=temp;endif(GR_in[2]==1)begintemp=temp2;R=R+(temp2<<2);temp2=temp;endif(GR_in[3]==1)begintemp=temp2;R=R+(temp2<<3);temp2=temp;endmul=R;endendfunctionfunction[7:0]div;//八位數(shù)相除的函數(shù)input[7:0]AC_in;input[7:0]GR_in;reg[7:0]R_out;reg[7:0]temp;reg[7:0]temp2;reg[7:0]temp3;reg[7:0]next;reg[7:0]temp4;begin R_out=8'b0; temp=AC_in; next=8'b0; temp3=8'b0; temp2=GR_in; temp4=AC_in; if(AC_in>7; if(temp>=GR_in) begintemp3=temp2;R_out[7]=1'b1;temp=temp4-(temp2<<7);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>6;if(temp>=GR_in)begintemp3=temp2;R_out[6]=1'b1;temp=temp4-(temp2<<6);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>5;if(temp>=GR_in)begintemp3=temp2;R_out[5]=1'b1;temp=temp4-(temp2<<5);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>4;if(temp>=GR_in)begintemp3=temp2;R_out[4]=1'b1;temp=temp4-(temp2<<4);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>3;if(temp>=GR_in)begintemp3=temp2;R_out[3]=1'b1;temp=temp4-(temp2<<3);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>2;if(temp>=GR_in)begintemp3=temp2;R_out[2]=1'b1;temp=temp4-(temp2<<2);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp>>1;if(temp>=GR_in)begintemp3=temp2;R_out[1]=1'b1;temp=temp4-(temp2<<1);temp2=temp3;next=temp;temp4=temp;endtemp=next;next=temp;temp=temp;if(temp>=GR_in)begintemp3=temp2;R_out[0]=1'b1;temp=temp4-temp2;temp2=temp3;next=temp;temp4=temp;endtemp=next;div=R_out;endendendfunctionendmodule6、系統(tǒng)仿真及調(diào)試6.1仿真通過QuartusII軟件,我們進行了仿真,其仿真波形如下圖所示。此圖中由邏輯單元5為操作碼OP:此控制單元為選擇加、減、乘、除或取反的控制選擇器;2個8位數(shù)據(jù)輸入分別為AC_in和GR_in;1個8位數(shù)據(jù)輸出ALU_O,根據(jù)不同的8為輸入顯示相應(yīng)的輸出數(shù)據(jù);1個進位輸入C_in;在做帶進位的8位加減運算,當(dāng)產(chǎn)生進位位時,進位位置置入ALU_C中。圖6-1輸入等于輸出和兩個數(shù)相加由圖6-1可知,當(dāng)OP=00011(功能為輸出等于輸入)時,輸出ALU_O等于輸入AC_in;當(dāng)OP=00111(兩數(shù)相加)時,輸出ALU_O=AC_in+GR_in。圖6-2兩個數(shù)相加與帶進位相加的比較由圖6-2可知,當(dāng)OP=00111(兩數(shù)相加)時,輸出ALU_O=AC_in+GR_in;當(dāng)OP=01011(帶進位相加)時,輸出ALU_O=AC_in+GR_in+C_in,其輸出結(jié)果會受到進位位的影響。圖6-3兩個八位數(shù)相減與帶借位的八位數(shù)相減由圖6-3所示,當(dāng)OP=01000(兩個8位數(shù)相減)時,輸出ALU_O=AC_in-GR_in;當(dāng)OP=01100(帶借位的8位數(shù)相減)時,輸出ALU_O=AC_in-GR_in-C_in,其輸出結(jié)果會受到進位標(biāo)志位的影響。圖6-4對GR_in取反由圖6-4可知,當(dāng)OP=01111(對GR_in取反)時,輸出ALU_O=~GR_in。圖6-5對輸入GR_in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論