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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論