單片機(jī)的FPGA設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(共26頁)_第1頁
單片機(jī)的FPGA設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(共26頁)_第2頁
單片機(jī)的FPGA設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(共26頁)_第3頁
單片機(jī)的FPGA設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(共26頁)_第4頁
單片機(jī)的FPGA設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文(共26頁)_第5頁
已閱讀5頁,還剩27頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、8051單片機(jī)的FPGA設(shè)計(jì)(shj)與實(shí)現(xiàn)第一章前 言20世紀(jì)末在計(jì)算機(jī)技術(shù)逐漸發(fā)展(fzhn)的情況寫,電子(dinz)技術(shù)得到了飛速的發(fā)展,現(xiàn)代電子產(chǎn)品已經(jīng)滲透到了社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品的性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。電子技術(shù)發(fā)展的根基是微電子技術(shù)的進(jìn)步,它表現(xiàn)在大規(guī)模集成電路加工技術(shù),即半導(dǎo)體工藝技術(shù)的發(fā)展上,表征半導(dǎo)體工藝水平的線寬已經(jīng)達(dá)到60nm以下,并還在不斷縮小;在硅片單位面積上集成了更多的晶體管,集成電路設(shè)計(jì)在不斷地向超大規(guī)模,極低功耗和超高速的方向發(fā)展;專用集成電路ASIC(Applicati

2、on Specific Integrated Circuit)的設(shè)計(jì)成本不斷降低,在功能上,現(xiàn)代的集成電路已能夠?qū)崿F(xiàn)單片電子系統(tǒng)SOC(System on a chip)的功能。另外集成電路(IC)技術(shù)在微電子領(lǐng)域中占有重要的地位。且伴隨著IC技術(shù)的發(fā)展,電子設(shè)計(jì)自動(dòng)(Electronic Design Automation,EDA)已經(jīng)逐漸成為重要的設(shè)計(jì)手段,其廣泛應(yīng)用于模擬與數(shù)字電路系統(tǒng)等許多領(lǐng)域。單片機(jī)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、

3、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的微型計(jì)算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域的廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時(shí)的4位、8位單片機(jī),發(fā)展到現(xiàn)在的32位300M的高速單片機(jī)。單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、電流、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。FPGA是英文FieldProgrammable Gate Array的縮寫

4、,即現(xiàn)場可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決(jiju)了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三個(gè)部分。CPLD與FPGA的內(nèi)部結(jié)構(gòu)稍有不同(b tn),但用法一樣,所以多數(shù)情況下,不加以區(qū)分。FPG

5、A/CPLD芯片都是特殊的ASIC芯片,它們除了具有ASIC的特點(diǎn)之外,還具有以下幾個(gè)優(yōu)點(diǎn):隨著VLSI(Very Large Scale IC,超大規(guī)模集成電路)工藝(gngy)的不斷提高單一芯片內(nèi)部可以容納上百萬個(gè)晶體管, FPGA/CPLD芯片的規(guī)模也越來越大,其單片邏輯門數(shù)已達(dá)到上百萬門,它所能實(shí)現(xiàn)的功能也越來越強(qiáng),同時(shí)也可以實(shí)現(xiàn)系統(tǒng)集成。FPGA/CPLD的資金投入小,節(jié)省了許多潛在的花費(fèi)。用戶可以反復(fù)地編程、擦除、使用或者在外圍電路不動(dòng)的情況下用不同軟件就可實(shí)現(xiàn)不同的功能。所以,用FPGA/PLD 試制樣片,能以最快的速度占領(lǐng)市場。 FPGA/CPLD軟件包中有各種輸入工具和仿真工

6、具,及版圖設(shè)計(jì)工具和編程器等全線產(chǎn)品,電路設(shè)計(jì)人員在很短的時(shí)間內(nèi)就可完成電路的輸入、編譯、優(yōu)化、仿真,直至最后芯片的制作。 當(dāng)電路有少量改動(dòng)時(shí),更能顯示出FPGA/CPLD的優(yōu)勢?,F(xiàn)有的電子系統(tǒng)設(shè)計(jì)多數(shù)采用微控制器為核心,輔以必要的外圍器件如ADC、DAC和存儲(chǔ)器等,這樣的系統(tǒng)做出來的線路板較大,且調(diào)試復(fù)雜;而且如果系統(tǒng)內(nèi)有高速器件,則微控制器的選擇將會(huì)是個(gè)困難;雖然可通過程序升級增加或改進(jìn)功能,但硬件一旦設(shè)計(jì)完成,是無法更改的。FPGA(現(xiàn)場可編程門陣列)與 CPLD(復(fù)雜可編程邏輯器件)都是可編程邏輯器件,它們(t men)是在PAL,GAL等邏輯器件的基礎(chǔ)之上發(fā)展起來的。同以往的PAL、

7、GAL等相比較(bjio),F(xiàn)PGA/CPLD的規(guī)模比較(bjio)大,它可以替代幾十甚至幾千塊通用IC芯片。這樣的FPGA/CPLD實(shí)際上就是一個(gè)系統(tǒng)部件。由于其應(yīng)用的靈活性,這種芯片受到世界范圍內(nèi)電子工程設(shè)計(jì)人員的廣泛關(guān)注和普遍歡迎。第二章 FPGA系統(tǒng)的簡介在數(shù)字化、信息化的時(shí)代,數(shù)字集成電路應(yīng)用得非常廣泛。隨著微電子技術(shù)與工藝的發(fā)展,數(shù)字集成電路從電子管、晶體管、中小規(guī)模集成電路、超大規(guī)模集成電路(VLSI)逐步發(fā)展到今天的專用集成電路(ASIC)。ASIC的出現(xiàn)降低了產(chǎn)品的生產(chǎn)成本,提高了系統(tǒng)的可靠性,減小了產(chǎn)品的物理尺寸,推動(dòng)了社會(huì)的數(shù)字化進(jìn)程。但是ASIC因其設(shè)計(jì)周期長,改版投資

8、大,靈活性差等缺陷制約著它的應(yīng)用范圍??删幊踢壿嬈骷S著微電子制造工藝的發(fā)展取得了長足的進(jìn)步。從早期的只能存儲(chǔ)少量數(shù)據(jù),完成簡單邏輯功能的可編程只讀存儲(chǔ)器(PROM)、紫外線可擦除只讀存儲(chǔ)器(EPROM)i1oJ和電可擦除只讀存儲(chǔ)器(EEROM),發(fā)展到能完成中大規(guī)模的數(shù)字邏輯功能的可編程陣列邏輯(PAL)和通用陣列邏輯(GAL)11ii,今天已經(jīng)發(fā)展成為可以完成超大規(guī)模的復(fù)雜組合邏輯與時(shí)序邏輯的現(xiàn)場可編程邏輯器件(FPGA)和復(fù)雜可編程邏輯器件(CPLD)。第一節(jié) FPGA的特點(diǎn)(tdin)FPGA既繼承了ASIC的大規(guī)模、高集成度、高可靠性的優(yōu)點(diǎn),又克服了普通(ptng)ASIC設(shè)計(jì)周期長

9、、投資大、靈活性差的缺點(diǎn),逐步成為復(fù)雜數(shù)字硬件電路設(shè)計(jì)的理想首選。當(dāng)代FPGA有以下特點(diǎn):規(guī)模(gum)越來越大。開發(fā)過程投資小。FPGA一般可以反復(fù)地編程、擦除。保密性能好。FPGA開發(fā)工具智能化,功能強(qiáng)大。新型FPGA內(nèi)嵌CPU或DSP內(nèi)核,支持軟硬件協(xié)同設(shè)計(jì),可以作為片上可編程系統(tǒng)(SOPC)的硬件平臺(tái)。第二節(jié)FPGA的設(shè)計(jì)流程一個(gè)完整的FPGA設(shè)計(jì)流程包括電路設(shè)計(jì)與輸入、功能仿真、綜合、綜合后仿真、實(shí)現(xiàn)、布線后仿真和下板調(diào)試等主要步驟。常用的設(shè)計(jì)輸入方法有硬件描述語言(HDL)和原理圖設(shè)計(jì)輸入方法。原理圖設(shè)計(jì)輸入法早期應(yīng)用得比較廣泛,它根據(jù)設(shè)計(jì)要求,選用器件、繪制原理圖、完成輸入過程。

10、這種方法的優(yōu)點(diǎn)是直觀、便于理解、元件庫資源豐富。但是在大型設(shè)計(jì)中,這種方法的可維護(hù)性較差,不利于模塊建設(shè)與重用。更重要的缺點(diǎn)是:當(dāng)所選用芯片升級換代后,所有原理圖都要作相應(yīng)的改動(dòng)。目前進(jìn)行大型工程設(shè)計(jì)時(shí),最常用的設(shè)計(jì)方法是HDL設(shè)計(jì)輸入法。其中影響最為廣泛的HDL語言是VHDL和Verilog HDL。它們的共同特點(diǎn)是利于自頂向下設(shè)計(jì),利于模塊的劃分與復(fù)用,可移植性好,通用性好,設(shè)計(jì)不因芯片的工藝與結(jié)構(gòu)的變化而變化,更利于向ASIC的移植。電路設(shè)計(jì)完成后,要用專用的仿真工具對設(shè)計(jì)進(jìn)行功能仿真,驗(yàn)證電路功能是否符合設(shè)計(jì)要求。功能仿真有時(shí)也被稱為前仿真。通過仿真能及時(shí)發(fā)現(xiàn)設(shè)計(jì)中的錯(cuò)誤,加快設(shè)計(jì)進(jìn)度

11、,提高設(shè)計(jì)的可靠性。綜合(zngh)優(yōu)化(Synthesize)是指將HDL語言、原理圖等設(shè)計(jì)輸入翻譯成由與、或、非門,RAM,寄存器等基本邏輯單元組成的邏輯連接(網(wǎng)表),并根據(jù)目標(biāo)與要求(約束條件)優(yōu)化所生成的邏輯連接,輸出edf和edn等文件,供FPGA 廠家(chn ji)的布局御線器進(jìn)行(jnxng)實(shí)現(xiàn)。綜合完成后需要檢查綜合結(jié)果是否與原設(shè)計(jì)一致,需要做綜合后仿真。在仿真時(shí),把綜合生成的延時(shí)文件反標(biāo)到綜合仿真模型中去,可估計(jì)門的延時(shí)帶來的影響。綜合后仿真雖然比功能仿真精確一些,但是只能估計(jì)門的延時(shí),而不能估計(jì)線的延時(shí),仿真結(jié)果與布線后的實(shí)際情況還有一定的差距,并不十分準(zhǔn)確。這種仿真的

12、主要目的在于檢查綜合器的綜合結(jié)果是否與設(shè)計(jì)輸入一致。綜合結(jié)果的本質(zhì)是一些由與、或、非門,觸發(fā)器,RAM等基本邏輯單元組成的邏輯網(wǎng)表,它與芯片實(shí)際的配置情況還有較大差距。此時(shí)應(yīng)該使用FPGA廠商提供的工具軟件,根據(jù)所選芯片的型號(hào),將綜合輸出的邏輯網(wǎng)表,適配到具體FPGA器件上,這個(gè)過程就叫做實(shí)現(xiàn)(Implementation)過程。Xilinx的實(shí)現(xiàn)過程分為:翻譯(Translate)、映射(Map)、布局布線(Place & Route)等3個(gè)步驟。布局布線之后應(yīng)該做時(shí)序仿真,時(shí)序仿真中應(yīng)該將布局布線的時(shí)延文件反標(biāo)到設(shè)計(jì)中,使仿真既包含門的延時(shí),又包含線的延時(shí)信息。與前面各種仿真相比,這種后仿

13、真包含的延時(shí)信息最為全面、準(zhǔn)確,能較好地反映芯片的實(shí)際工作情況。設(shè)計(jì)開發(fā)的最后步驟就是在線調(diào)試或者將生成的配置文件寫入芯片中進(jìn)行測試。在ISE中對應(yīng)的工具是iMPACT。第三節(jié) FPGA的開發(fā)工具FPGA的開發(fā)工具有很多,各個(gè)公司都有自己專用工具。本次畢業(yè)設(shè)計(jì)我所采用的開發(fā)工具為ALTERA:QUARTUS。一、 ALTERA : QUARTUSQuartus II design 是最高級和復(fù)雜的,用于system-on-a-programmable-chip (SOPC)的設(shè)計(jì)環(huán)境。 QuartusII design 提供完善的 timing closure 和 LogicLock 基于塊的

14、設(shè)計(jì)流程。QuartusII design是唯一一個(gè)包括以timing closure 和 基于塊的設(shè)計(jì)流為基本特征的programmable logic device (PLD)的軟件。 Quartus II 設(shè)計(jì)軟件改進(jìn)了性能、提升了功能性、解決了潛在的設(shè)計(jì)延遲等,在工業(yè)領(lǐng)域率先提供FPGA與mask-programmed devices開發(fā)的統(tǒng)一工作流程。Altera Quartus II 作為(zuwi)一種可編程邏輯(lu j)的設(shè)計(jì)環(huán)境, 由于其強(qiáng)大(qingd)的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的歡迎。Altera Quartus II設(shè)計(jì)軟件是業(yè)界唯一提供FP

15、GA和固定功能HardCopy器件統(tǒng)一設(shè)計(jì)流程的設(shè)計(jì)工具。工程師使用同樣的低價(jià)位工具對 Stratix FPGA進(jìn)行功能驗(yàn)證和原型設(shè)計(jì),又可以設(shè)計(jì)HardCopy Stratix器件用于批量成品。系統(tǒng)設(shè)計(jì)者現(xiàn)在能夠用Quartus II評估HardCopy Stratix器件的性能和功耗,相應(yīng)地進(jìn)行最大吞吐量設(shè)計(jì)。Altera的Quartus II可編程邏輯軟件屬于第四代PLD開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于Internet的協(xié)作設(shè)計(jì)。Quartus平臺(tái)與Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplic

16、ity等EDA供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的LogicLock模塊設(shè)計(jì)功能,增添 了FastFit編譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力。二、 Quartus II的特點(diǎn)1、支持MAX7000/MAX3000等乘積項(xiàng)器件2、軟件體積縮小,運(yùn)行速度加快3、LogicLock設(shè)計(jì)流程把性能提升15%4、采用快速適配選項(xiàng)縮短編譯時(shí)間5、新的功能減小了系統(tǒng)級驗(yàn)證 第二章8051單片機(jī)的FPGA設(shè)計(jì)(shj)與實(shí)現(xiàn)單片微型計(jì)算機(jī)簡稱(jinchng)為單片機(jī),又稱為微型控制器,是微型計(jì)算機(jī)的一個(gè)(y )重要分支。單片機(jī)是70年代中期發(fā)展起來的一種大規(guī)模集成電路芯片,是CPU、RAM、RO

17、M、I/O接口和中斷系統(tǒng)于同一硅片的器件。80年代以來,單片機(jī)發(fā)展迅速,各類新產(chǎn)品不斷涌現(xiàn),出現(xiàn)了許多高性能新型機(jī)種,現(xiàn)已逐漸成為工廠自動(dòng)化和各控制領(lǐng)域的支柱產(chǎn)業(yè)之一。8051單片機(jī)是早最典型的產(chǎn)品,該系列具它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS51系列單片機(jī)。8051單片機(jī)是早最典型的產(chǎn)品,該系列具它單片機(jī)都是在8051的基礎(chǔ)上進(jìn)行功能的增、減、改變而來的,所以人們習(xí)慣于用8051來稱呼MCS51系列單片機(jī)。第一節(jié) 51單片機(jī)的引腳功能(gngnng)MCS-51是標(biāo)準(zhǔn)(biozhn)的40引腳雙列直插式 HYPERLINK /vie

18、w/2417695.htm t _blank 集成電路(jchng-dinl)芯片,引腳分布請參照圖 1:圖1、8051芯片管腳圖1電源引腳 Vee和 VssVcc(40腳):電源端,+5伏。Vss(20腳):接地端。 2時(shí)鐘電路引腳又面和叉麗XTAL2(1 8腳):接外部晶體和微調(diào)電容的一端。在805l單片機(jī)內(nèi)它是振蕩電路反相放大器的輸出端,振蕩電路的頻率就是晶體固有頻率。若需采用外部時(shí)鐘電路時(shí),該引腳輸入外部時(shí)鐘脈沖信號(hào)。XTALl(19腳):接外部晶體和微凋電容的另一端。在片內(nèi)它是振蕩電路反相放大器的輸入端。在采用外部時(shí)鐘時(shí),該引腳必須接地。3控制信號(hào)引腳RST、ALE、麗和豆iRST/

19、V(9腳):RST是復(fù)位信號(hào)輸入端,高電平有效。當(dāng)此輸入端保持兩個(gè)機(jī)器周期(24個(gè)時(shí)鐘振蕩周期)的高電平時(shí),就可以完成復(fù)位操作。RST引腳的第二功能是VpD,即備用電源的輸入端。當(dāng)主電源Vcc發(fā)生故障,降低到低電平規(guī)定值時(shí),將+5V電壓自動(dòng)接入RST端,為RAM提供備用電源,以保證存儲(chǔ)在RAM中的信息不丟失,以使復(fù)電后能繼續(xù)正常運(yùn)行。 ALE/PROG(ADDRESS LATCH ENABLE/PRoGRAMMING,30腳):地址鎖存允許(ynx)信號(hào)端。當(dāng)8051上電正常(zhngchng)工作后,ALE引腳不斷向外輸出(shch)正脈沖信號(hào),此頻率為振蕩器頻率而sc的1/6。CPU訪問片

20、外存儲(chǔ)器時(shí),ALE輸出信號(hào)作為鎖存低8位地址的控制信號(hào)。該引腳的第二功能PROG是對片內(nèi)帶有4KEPROM的8751編程寫入(固化程序)時(shí),作為編程脈沖輸入端。PSEN(PROGRAM STORE ENABLE,29腳):程序存儲(chǔ)允許輸出信號(hào)端。在訪問片外程序存儲(chǔ)器時(shí),此端口定時(shí)輸出負(fù)脈沖,作為片外存儲(chǔ)器讀的選通信號(hào)。EA/Vpp(ENABLE ADDREss/voulAGE PULSE OF PROGRAMMING3 1腳):外部程序存儲(chǔ)器地址允許輸入端/固化編程電壓輸入端。當(dāng)酉引腳連接高電平時(shí),CPU只訪問片內(nèi)EPROM/ROM并執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令,但在PC(程序計(jì)數(shù)器)的值超過O

21、FFFFH(對8051為4K)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行片外程序存儲(chǔ)器內(nèi)的程序。當(dāng)輸入信號(hào)EA連接低電平(接地)時(shí),CPU只訪問外部EPROM/ROM并執(zhí)行外部程序存儲(chǔ)器中的指令,而不管是否有片內(nèi)程序存儲(chǔ)器。此引腳的第二功能VPP,是對8751片內(nèi)EPROM固化編程時(shí),作為施加較高編程電壓(一般2l伏)輸入端。4I/O(輸入/輸出)端口P0、P1、P2和P3PO口(POOPO7,3932腳):P0口是一個(gè)漏極開路261的8位準(zhǔn)雙向I/O端口。作為漏極開路的輸出端口,每位能驅(qū)動(dòng)8個(gè)LS型TTL273負(fù)載。當(dāng)P0口作為輸入口使用時(shí),應(yīng)先向P0口鎖存器(地址80H)寫入全1,此時(shí)P0 El的全部引腳懸空,可

22、作為高阻抗輸入。作為輸入口使用時(shí)要先寫l,這就是標(biāo)準(zhǔn)雙向的含義。在CPU訪問(fngwn)片外存儲(chǔ)器時(shí),PO口是分時(shí)提供(tgng)低8位地址(dzh)和8位數(shù)據(jù)的復(fù)用總線。在此期間,PO口內(nèi)部上拉電阻有效。P1口(PIOP17,18腳):P1口是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口。P1口的每一位能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)Ls型TTL負(fù)載。在P1口作為輸入口使用時(shí),應(yīng)先向P1口鎖存器(地址90H)寫入全1,此時(shí)P1口的引腳輸入由內(nèi)部上拉電阻拉成高電平。P2口(P2OP27,2128腳):P2口是一個(gè)帶內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O端口。Pl口的每一位能驅(qū)動(dòng)(吸收/輸出電流)4個(gè)Ls型T

23、TL負(fù)載。訪問片外EPROM/RAM時(shí),它輸出高8位地址。P3口有兩個(gè)功能,除了作為I/O使用外(其內(nèi)部有上拉電阻),還有一些特殊功能,由特殊寄存器來設(shè)置。有內(nèi)部EPROM的 HYPERLINK /view/1012.htm t _blank 單片機(jī)芯片即:編程脈沖:30腳(ALE/PROG)編程電壓(25V):31腳(EA/VPP)第二節(jié) 51系列單片機(jī)的結(jié)構(gòu)和原理一、 51系列單片機(jī)的結(jié)構(gòu) 圖2所示為MCS-51系列單片機(jī)中的8051單片機(jī)的基本功能結(jié)構(gòu)方框圖。圖2 8051單片機(jī)功能(gngnng)方框圖在一塊(y kui)芯片上,集成了一個(gè)(y )微型計(jì)算機(jī)的各個(gè)組成部分,每一片單片機(jī)

24、包括:1一個(gè)8位的微處理器CPU。2片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM(128B/256B),用以存放可以讀/寫的數(shù)據(jù),如運(yùn)算3片內(nèi)程序存儲(chǔ)器ROM/EPROM(4KB/8KB),用以存放程序、一些原是數(shù)據(jù)和表格。4四個(gè)8位并行I/O(輸入/輸出)接口P0P3,每個(gè)口可以用作輸入,也可以用作輸出。5兩個(gè)或三個(gè)定時(shí)/計(jì)數(shù)器,每個(gè)定時(shí)/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以對外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。6五個(gè)中斷源的中斷控制系統(tǒng)。7一個(gè)雙全工UART(通用異步接收發(fā)送器)的串行I/O口,可實(shí)現(xiàn)單片機(jī)與單片機(jī)或其它微機(jī)之間串行通信。8片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但石英

25、晶體和微調(diào)電容需要外接,最高允許振蕩頻率為12MHz。以上各部分通過(tnggu)內(nèi)部數(shù)據(jù)總線相連接。二、 51單片機(jī)內(nèi)部結(jié)構(gòu)8051單片機(jī)內(nèi)部結(jié)構(gòu)如圖3所示 圖3 8051單片機(jī)內(nèi)部(nib)結(jié)構(gòu)圖完整(wnzhng)的計(jì)算機(jī)應(yīng)該由運(yùn)算器、控制器、存儲(chǔ)器(ROM及RAM)和I/O接口組成。一般微處理器(如Z80)只包括運(yùn)算器和控制器兩部分。和一般微處理器相比,8051增加了四個(gè)8位I/O接口、一個(gè)串行口、4KBROM、128BRAM和很多工作寄存器及特殊功能寄存器(SFR)。其各部分的功能簡述如下:1運(yùn)算器包括一個(gè)可進(jìn)行8位算術(shù)運(yùn)算和邏輯運(yùn)算的ALU單元,8位的暫存器1、暫存器2、8位的累加

26、器ACC,寄存器B和程序狀態(tài)字寄存器PSWI231等。ALU:可對4位(半字節(jié))、8位(一字節(jié))和16位(雙字節(jié))數(shù)據(jù)進(jìn)行操作。如可進(jìn)行加、減、乘、除、加1、減1、BCD數(shù)十進(jìn)制調(diào)整及比較等算術(shù)運(yùn)算和邏輯與、或、異或、取反和循環(huán)移位等邏輯操作。ACC:累加器ACC,經(jīng)常作為一個(gè)運(yùn)算數(shù)經(jīng)暫存器2進(jìn)入ALU的一個(gè)輸入端,與另一個(gè)進(jìn)入暫存器1的運(yùn)算數(shù)進(jìn)行運(yùn)算,運(yùn)算結(jié)果又送回ACC。除此之外,ACC在8051內(nèi)部經(jīng)常作為數(shù)據(jù)傳送的中轉(zhuǎn)站,同一般微處理器一樣,它是最繁忙的一個(gè)寄存器。PSW:程序(chngx)狀態(tài)字寄存器,8位,用于標(biāo)志指令執(zhí)行后的信息狀態(tài)(zhungti),相當(dāng)于一般微處理器的標(biāo)志寄存

27、器。PSW中各位狀態(tài)供程序(chngx)查詢和判別用。寄存器B:8位寄存器,在乘、除運(yùn)算時(shí),B寄存器用來存放一個(gè)操作數(shù):也用來存放運(yùn)算后的一部分結(jié)果;若不進(jìn)行乘、除運(yùn)算時(shí),則可作為通用寄存器使用。另外,8051片內(nèi)還有一個(gè)布爾處理器,它以PSW中的進(jìn)位標(biāo)志位C為其累加器,專門用于處理位操作:可以執(zhí)行置位、位清零、位取反、位等于1轉(zhuǎn)移、位等于0轉(zhuǎn)移、位等于1轉(zhuǎn)移并清零以及進(jìn)位標(biāo)志位C與其它可以位尋址的空間之間進(jìn)行信息傳送等位操作,也能使C與其他可尋找位之間進(jìn)行邏輯與、或操作,結(jié)果存放在進(jìn)位標(biāo)志位C中。2控制器控制器包括程序計(jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、振蕩器及定時(shí)電路等。程序計(jì)數(shù)器

28、PC:它由兩個(gè)8位的計(jì)數(shù)器PCH及PCL組成,共16位。PC實(shí)際上是程的字節(jié)地址計(jì)數(shù)器,PC中的內(nèi)容是將要執(zhí)行的下一條指令的地址。改變PC中的內(nèi)就可以改變程序執(zhí)行的流向。PC可對64K的ROM(程序存儲(chǔ)器)直接尋址,也可對8051片外RAM(數(shù)據(jù)存儲(chǔ)器)尋址。指令寄存器IR及指令譯碼器ID:由PC中的內(nèi)容指定ROM地址,取出來的指令經(jīng)指令寄存器IR送至指令譯碼器ID,由ID對指令譯碼并送PLA產(chǎn)生一定序列的控制信號(hào),以執(zhí)行指令所規(guī)定的操作。振蕩器及定時(shí)電路:8051單片機(jī)片內(nèi)有振蕩電路,只需外接石英晶體和頻率微調(diào)電容(2個(gè)30pF左右),其頻率范圍為1212MHz,該脈沖信號(hào)就作為8051工作

29、的最基本節(jié)拍,即時(shí)間的最小單位。3存儲(chǔ)器8051片內(nèi)有ROM(程序存儲(chǔ)器,只能讀)和RAM(數(shù)據(jù)存儲(chǔ)器,可讀、可寫)兩類,它們有各自獨(dú)立的存儲(chǔ)地址空間,與一般微機(jī)的存儲(chǔ)器配置方式很不相同。(1)程序存儲(chǔ)器(ROM)8051的片內(nèi)程序(chngx)存儲(chǔ)器容量為4K字節(jié)(z ji),地址從0000H開始,用于存放程序和表格(biog)常數(shù)。(2)數(shù)據(jù)存儲(chǔ)器(RAM)805l片內(nèi)數(shù)據(jù)存儲(chǔ)器為128字節(jié),地址為00H7FH,用于存放運(yùn)算的中問結(jié)果、數(shù)據(jù)暫存以及數(shù)據(jù)緩沖等。在這128字節(jié)的RAM中,有32個(gè)字節(jié)單元可指定為工作寄存器,這同一般微處理器不同。8051的片內(nèi)RAM和工作寄存器排在一個(gè)隊(duì)列里統(tǒng)

30、一編址。由圖3可見,8051單片機(jī)內(nèi)部還有SP、DPTR、PCON、IE、IP等特殊功能寄存器,它們也同128字節(jié)RAM在一個(gè)隊(duì)列里編址,地址為80HFFH。在這128字節(jié)RAM單元中有21個(gè)特殊功能寄存器(SFR),這些特殊功能寄存器還包括POP3口鎖存器。4I/O接口8051有四個(gè)8位并行接口即P0P3,它們都是雙向端口,每個(gè)端口各有8條I/O線,均可輸入/輸出。P0P3 13四個(gè)鎖存器同RAM統(tǒng)一編址,可以把U/O口當(dāng)作一般特殊功能寄存器來尋址。第三節(jié) 51單片機(jī)存儲(chǔ)器配置51系列單片機(jī)與一般微機(jī)的存儲(chǔ)器配置方式很不相同。一般微機(jī)通常只有一個(gè)地址空間,ROM和RAM可以隨意安排在這一地址

31、范圍內(nèi)不同的空問,即ROM和RAM的地址同在一個(gè)隊(duì)列里分配不同的空間。CPU訪問存儲(chǔ)器時(shí),一個(gè)地址對應(yīng)唯一的存儲(chǔ)器單元,可以是ROM也可以是RAM,并用同類訪問指令。此種存儲(chǔ)器結(jié)構(gòu)稱普林斯頓結(jié)構(gòu)。8051的存儲(chǔ)器在物理結(jié)構(gòu)上分程序存儲(chǔ)器空間和數(shù)據(jù)存儲(chǔ)器空問,有四個(gè)存儲(chǔ)空間:片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器空間以及片內(nèi)數(shù)據(jù)存儲(chǔ)器和片外數(shù)據(jù)存儲(chǔ)器空間,這種程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的結(jié)構(gòu)形式,稱為哈佛結(jié)構(gòu)。從用戶使用的角度,8051存儲(chǔ)器地址空間分為三類:1片內(nèi)、片外空間地址統(tǒng)一編址0000HFFFFH的64K字節(jié)的程序存儲(chǔ)器地址空問(用16位地址);264K字節(jié)(z ji)片外數(shù)據(jù)存儲(chǔ)器地址空間,

32、地址也從0000HFFFFH(用16位地址(dzh)。3256字節(jié)數(shù)據(jù)存儲(chǔ)器地址(dzh)空間(用8位地址)。上述三個(gè)存儲(chǔ)空間地址是重疊的,為了區(qū)分三個(gè)不同的邏輯空間,805l的指令系統(tǒng)設(shè)計(jì)了不同的數(shù)據(jù)傳送指令符號(hào);CPU訪問片內(nèi)、片外ROM指令用MOVC,訪問片外RAM指令用MOVX,訪問片內(nèi)RAM指令用MOV。4.程序存儲(chǔ)器地址空間8051存儲(chǔ)器地址空間分程序存儲(chǔ)器(64KB ROM)和數(shù)據(jù)存儲(chǔ)器(64KBRAM)。程序存儲(chǔ)器用于存放編好的程序和表格常數(shù)。程序存儲(chǔ)器通過16位程序計(jì)數(shù)器(PC)尋址,尋址能力為64KB字節(jié)。這使得能在64KB地址空問內(nèi)任意尋址,但沒有指令使程序能控制從程序存

33、儲(chǔ)器空間轉(zhuǎn)移到數(shù)據(jù)存儲(chǔ)器空間。5.數(shù)據(jù)存儲(chǔ)器地址空間數(shù)據(jù)存儲(chǔ)器RAM用于存放運(yùn)算的中間結(jié)果、數(shù)據(jù)暫存和緩沖、標(biāo)志位等。數(shù)據(jù)存儲(chǔ)器空間也分為片內(nèi)和片外兩大部分,片內(nèi)RAM和片外RAM。8051片外數(shù)據(jù)存儲(chǔ)器空間為64K,從0000HFFFFH:片內(nèi)存儲(chǔ)器空間為256字節(jié),地址從0000H00FFH。(一)片外RAM片外數(shù)據(jù)存儲(chǔ)器與片內(nèi)數(shù)據(jù)存儲(chǔ)器空間低地址0000HFFFFH是重疊的,805 l有MOV和MOVX兩種指令,用以區(qū)分片內(nèi)、片外RAM空間。片內(nèi)RAM使用MOV指令,片外64K RAM空間專門為MOVX指令所用。(二)片內(nèi)RAM片內(nèi)數(shù)據(jù)存儲(chǔ)器最大可尋址256個(gè)單元,它們又分為兩個(gè)部分,低

34、128字二肯(00H7FH)是真正的RAM區(qū),高128字節(jié)(80HFFH)為特殊功能寄存器(SFR)區(qū)。6低128字節(jié)RAM8051的32個(gè)工作(gngzu)寄存器與RAM安排(npi)在同一個(gè)隊(duì)列空間里,統(tǒng)一編址并使用同樣的尋址方式(直接(zhji)尋址和間接尋址)。00HlFH地址安排為四組工作寄存器區(qū),每組有8個(gè)工作寄存器(ROAR7),共占32個(gè)單元(見表1)。通過對程序狀態(tài)字PSW中RS1、RS0的設(shè)置,每組寄存器均可選作CPU的當(dāng)前工作寄存器組。若程序中并不需要四組,那么其余可用作一般RAM單元。CPU復(fù)位后,選中第0組工作寄存器。組RS1RS0R0R1R2R3R4R5R6R700

35、000H01H02H03H04H05H06H07H10108090AH0BH0CH0DH0EH0FH21010H11H12H13H14H15H16H17H31118H19H1AH1BH1CH1DH1EH1FH表 1 :作寄存器地址表低128字節(jié)RAM單元地址范圍也是00H7FH,8051采用不同尋址方式來加以區(qū)分,即訪問128個(gè)位地址,使用位尋址方式,訪問低128字節(jié)單元用直接尋址和間接尋址,這樣就可以區(qū)分開00H7FH是位地址還是字節(jié)地址。高128字節(jié)RAM特殊功能寄存器(SFR)8051片內(nèi)高128字節(jié)RAM中,除程序計(jì)數(shù)器PC外,有21個(gè)專用寄存器(SFR),也稱特殊功能寄存器,它們離散

36、地分布在80HFFH的RAM間中。訪問特殊功能僅允許使用直接尋址方式(詳情見表2)。(1)累加器ACC累加器ACC是8051最常用、最繁忙的8位特殊功能寄存器,許多指令的操作數(shù)取自于ACC,并許多運(yùn)算結(jié)果也存放于ACC中。在指令系統(tǒng)中采用A作為累加器ACC的助記符。OV(PSW2)溢出標(biāo)志位。當(dāng)進(jìn)行補(bǔ)碼運(yùn)算時(shí),如有溢出,即當(dāng)運(yùn)算結(jié)果超出-128+127的范圍時(shí),OV位由硬件自動(dòng)置OV=1;無溢出時(shí),OV=0。PSW1為保留位,8051未用。P(PSW.O)奇偶檢驗(yàn)標(biāo)志位。每條指令執(zhí)行完后,該位始終跟蹤指示累加器A中1的個(gè)數(shù)。如結(jié)果A中有奇數(shù)個(gè)“1”,則置P=1,否則P=0。常用于校驗(yàn)串行通訊中

37、的數(shù)據(jù)傳送是否出錯(cuò)。(2)寄存器B(FOH)在乘除(chngch)指令中,用到了8位B寄存器。乘法指令的兩個(gè)(lin )操作數(shù)分別取自A和B,乘積(chngj)存于B、A兩個(gè)8位寄存器中。除法指令中,A中存放被除數(shù),B中存放除數(shù),商存放于A中,B中存放余數(shù)。在其它指令中,B可作為一般通用寄存器或一個(gè)RAM單元使用。(3)程序狀態(tài)寄存器PSW(DOH)PSW是一個(gè)8位特殊功能寄存器,它的各位包含了程序執(zhí)行后的狀態(tài)信息,供程序查詢或判別之用。各位的含義及其格式如下: CYACFORS1RSOOV-PCY(PSW7)進(jìn)位標(biāo)志位。在執(zhí)行加法(或減法)運(yùn)算指令時(shí),如果運(yùn)算結(jié)果最高位(位7)向前有進(jìn)位(或

38、借位),CY位由硬件自動(dòng)置“1”:如運(yùn)算結(jié)果最高位(位7)無進(jìn)位(或借位),則CY清0。CY也是8051在進(jìn)行位操作(布爾操作)時(shí)的位累加器。AC(Psw6)半進(jìn)位標(biāo)志位,也稱輔助進(jìn)位標(biāo)志。當(dāng)執(zhí)行加法(或減法)操作時(shí),其運(yùn)算結(jié)果(和或差)產(chǎn)生由低半個(gè)字節(jié)(位3)向高半個(gè)字節(jié)有半進(jìn)位(或借位)時(shí),AC位將被硬件自動(dòng)置“1”,否則AC被自動(dòng)清“0”。F0(PSW5)用戶標(biāo)志位。用戶可以根據(jù)自己的需要對FO位賦予定的含義由用戶執(zhí)行置位、復(fù)位操作,作為軟件標(biāo)志。RS0和RS 1(PSW4和PSW5)工作寄存器組選擇控制位。這兩位的值決定選擇哪一組工作寄存器為當(dāng)前工作寄存器組。由用戶用軟件改變RS1和R

39、S 0值的組合,以切換當(dāng)前選用的工作寄存器組,其組合關(guān)系詳見表2。8051上電復(fù)位后,(RS1)=(RS0)=O,CPU自然選擇第0作為當(dāng)前工作寄存器組。根據(jù)需要,可利用傳送指令對PSW整字節(jié)操作,或使用位操作指令改變RS1和RS0的狀態(tài),以切換當(dāng)前工作寄存器組。RS1RS0寄存器組片內(nèi)RAM地址00第0組00H07H01第1組08H0FH10第2組10H17H11第3組18H1FH表 3 RS0、RS1的組合關(guān)系(4)棧指針SP(81H)堆棧(duzhn)指針SP為8位特殊(tsh)功能寄存器,SP的內(nèi)容即堆棧(duzhn)指針,可指向8051片內(nèi)00H7FH的RAM的任何單元。系統(tǒng)復(fù)位后,

40、SP初始化為07H,即指向07H的RAM單元。8051的堆棧指針SP是一個(gè)雙向計(jì)數(shù)器。在壓棧時(shí)SP內(nèi)容自動(dòng)增值,出棧時(shí)自動(dòng)減值,存取信息必需按著“先進(jìn)后出”或“后進(jìn)先出”的原則。(5)數(shù)據(jù)指針DPTR(83H,82H)DPTR是一個(gè)16位的特殊功能寄存器,其高位字節(jié)寄存器用DPH表示(地址83H),低位字節(jié)寄存器用DPL表示(82H)。DPRT既可以作為一個(gè)16位寄存器來處理,也可以作為二個(gè)獨(dú)立的8位寄存器DPH和DPL使用。DPTR主要用以存放16位地址,以便對64K片外RAM作間接尋址。(6)I/O端口P0P3(80H,90H,AOH,BOH)P0P3為四個(gè)8位特殊功能寄存器,分別是四個(gè)并

41、行I/O端的鎖存器。它們都有字節(jié)地址,每一個(gè)口鎖存器還有位地址,所以每一條I/O線獨(dú)立地用作輸入或輸出時(shí),數(shù)據(jù)可以鎖存;作輸入時(shí),數(shù)據(jù)可以緩沖。當(dāng)I/O端口某一位用于輸入信號(hào)時(shí),對應(yīng)的鎖存器位須先置“1”。符號(hào)名稱地址ACC累加器E0HBB寄存器F0HPSW程序狀態(tài)字D0HSP棧指針81HDPH數(shù)據(jù)指針高位83HDPL數(shù)據(jù)指針地位82HP0P0鎖存寄存器80HP1P1鎖存寄存器90HP2P2鎖存寄存器A0HP3P3鎖存寄存器B0HIP中斷優(yōu)先級控制寄存器B8HIE中斷允許控制寄存器A8HTMOD定時(shí)/計(jì)數(shù)器工作方式、狀態(tài)寄存器89HTCON定時(shí)/計(jì)數(shù)器控制寄存器88HTH0定時(shí)/計(jì)數(shù)器0(高字

42、節(jié))8CHTL0定時(shí)/計(jì)數(shù)器0(低字節(jié))8AHTH1定時(shí)/計(jì)數(shù)器1(高字節(jié))8DHTL1定時(shí)/計(jì)數(shù)器1(低字節(jié))8BHSCON串行口控制寄存器98HSBUF串行數(shù)據(jù)緩沖器99HPCON電源控制寄存器97H表 2 51系列單片機(jī)的特殊(tsh)功能寄存器表第四節(jié) 8051單片機(jī)的FPGA設(shè)計(jì)(shj)與實(shí)現(xiàn)本設(shè)計(jì)采用現(xiàn)在(xinzi)流行的模塊化設(shè)計(jì)方式,將8051單片機(jī)按照其內(nèi)部的結(jié)構(gòu)設(shè)計(jì)成為3個(gè)大的模塊,即運(yùn)算器、存儲(chǔ)器和控制器模塊。一、運(yùn)算器模塊的設(shè)計(jì)運(yùn)算器模塊包括一個(gè)可進(jìn)行8位算術(shù)運(yùn)算和邏輯運(yùn)算的ALU單元,8位的暫存器1、暫存器2、8位的累加器ACC,寄存器B和程序狀態(tài)寄存器PSW。(

43、1)ALU(算術(shù)邏輯運(yùn)算單元)模塊的信號(hào)該模塊的信號(hào)如圖4所示,負(fù)責(zé)進(jìn)行算術(shù)邏輯運(yùn)算,它能完成加、減、乘、除算術(shù)運(yùn)算以及與、或、非等邏輯運(yùn)算。其中:rst為復(fù)位標(biāo)志,高有效。op-code是4位代碼,用來定義ALU所要進(jìn)行的操作,它的內(nèi)容已經(jīng)在8051 1沁文件中定義完畢。例如,要進(jìn)行加法操作,則op code為0001。src-1為送入ALU的第一源操作數(shù),8位輸入,當(dāng)做加法運(yùn)算時(shí)它是被加數(shù),做減法運(yùn)算時(shí)它是被減數(shù),做除法運(yùn)算時(shí)它是被除數(shù)。src_2為送入的第二源操作數(shù),8位輸入,當(dāng)做減法運(yùn)算時(shí),它是減數(shù);做除法運(yùn)算時(shí),它是除數(shù)。src_3為送入ALU的第三源操作數(shù),8位輸入。src_cy為

44、第一源操作數(shù)的第7位。src_ac為第一源操作數(shù)的第4位。des_1為第一目標(biāo)操作數(shù),8位輸出,用來存放ALU計(jì)算后的數(shù)據(jù)。des_2為第二目標(biāo)操作數(shù),8位輸出,用來存放ALU計(jì)算后的剩余數(shù)據(jù),如除法沒有整除的小數(shù)等。des_cy為ALU運(yùn)算完數(shù)據(jù)的第7位。des_ac為ALU運(yùn)算完數(shù)據(jù)的第4位。des_ov位溢出標(biāo)志位。圖4 ALU模塊(m kui)信號(hào)圖二、ALU(算術(shù)(sunsh)邏輯運(yùn)算單元)模塊(m kui)的層次化設(shè)計(jì)(詳見圖5)圖5 ALU(算術(shù)邏輯運(yùn)算單元)模塊的層次化設(shè)計(jì)三、ALU模塊的VHDL語言描述ALU模塊中實(shí)現(xiàn)乘法操作的VHDL語言描述Procedure DO_MUL

45、 (a: in unsigned( 7 down to 0 ); b: in unsigned( 7 down to 0 ); r: in unsigned( 15 down to 0 ); ov: out std_logic) is variable v1:unsigned(15 down to 0);begin v1:=a*b; r:=v1; if(v1(15 down to 8)/=C0_8)then ov:=1; else ov:=0; end if:end DO_MUL;其中(qzhng),a為被乘數(shù),8位輸入(shr)信號(hào),b為乘數(shù)(chn sh),8位輸人信號(hào),r為a、b相乘后的

46、結(jié)果,16位輸出信號(hào),OV為溢出標(biāo)志,當(dāng)計(jì)算所得的結(jié)果的高8位的值不等于0時(shí),ov=1,表示計(jì)算結(jié)果溢出。ALU模塊中實(shí)現(xiàn)BCD碼調(diào)整操作的VHDL語言描述procedure DO_DA(a: in unsigned(7 down to 0) ; c1:In std_logic; c2:In std_logic; r: out unsigned(7 down to 0);cy: out std_logic) isvariable v:tmsigIl6d(8 down to U);begin v:=”0”&a; fi(c2=1)or(v(3 down to 0)C9_4)thenv:=v+“O0

47、0000110”;end if;v(8):=v(8)or c1;if(v(8)=1)thenv:=v+“O01100000”;end if;r: v(7 down to0);cy:=v(8);end DO_DA;其中,當(dāng)輸入的信號(hào)低4位大于9(1001B)時(shí),進(jìn)行加6(110B)操作;當(dāng)輸入信號(hào)最高位為1時(shí),進(jìn)行加96(00110000B)操作。ALU模塊的主程序的部分如下:begin process(rst,op_code,scr_1, scr_2, scr_3 scr_cy, scr_ac) variable v16: unsigned(15 down to 0); variable v8

48、: unsigned(7 down to 0); variable v_cy, v_ac, v_ov: std_logic;begin if(rst=1)thendes_1=CD_8; des_2=CD_8; des_cy=-; des_ac=-; des_ov DO_ADD(src_T, src_2, src_cy,v8,v_cy,v_ac,v_ov); des_1=v8;des_2=CD_8;des_cy=v_cy;des_ac=v_ac;des_ovDO_SUB(src_T, src_2, src_cy,v8,v_cy,v_ac,v_ov); des_1=v8;des_2=CD_8;de

49、s_cy=v_cy;des_ac=v_ac;des_ov=v_ov;當(dāng)RST=1時(shí),ALU復(fù)位(f wi);,當(dāng)RST=0時(shí),ALU根據(jù)(gnj)OPCODE的值進(jìn)行相應(yīng)(xingyng)的操作。四、ALU模塊功能仿真運(yùn)算代碼代碼內(nèi)容對應(yīng)操作ALU_OPC_NONE0000ALU_OPC_ADD0001加法ALU_OPC_SUB0010減法ALU_OPC_MUL0011乘法ALU_OPC_DIV0100除法ALU_OPC_DA0101BCD碼調(diào)整表 4 運(yùn)算代碼所對應(yīng)的操作表4表示的是各個(gè)預(yù)算代碼的對應(yīng)的操作。本次設(shè)計(jì)我主要解決算術(shù)運(yùn)算,不嘗試邏輯運(yùn)算。假設(shè)scr_1=10(00001010B

50、),scr_2=5(00000101B),由仿真圖形可以看出,當(dāng)op code=0001時(shí),即做加法運(yùn)算,得des 1=15(00001111B):當(dāng)op code=0010時(shí),即做減法運(yùn)算,得des_1=5(00000101B);當(dāng)op-code=0011時(shí),即做乘法運(yùn)算,得des_l=50(00110010B);當(dāng)op_code=0100時(shí),即做除法運(yùn)算,得des_l=2(00000010B)。圖 6 加法及減法的仿真波形圖 7乘法及除法(chf)的仿真波形圖8減法及除法(chf)運(yùn)算的仿真波形五、存儲(chǔ)器模塊(m kui)設(shè)計(jì)本設(shè)計(jì)共為8051單片機(jī)設(shè)計(jì)了3種存儲(chǔ)器,片內(nèi)ROM、RAM和片

51、外XRM。本設(shè)計(jì)中的片內(nèi)ROM用來存儲(chǔ)已經(jīng)編寫好的程序控制代碼,只能讀出數(shù)據(jù)不能寫入數(shù)據(jù)。片內(nèi)ROM片內(nèi)ROM的信號(hào)一片內(nèi)ROM的信號(hào)如圖9所示。其中:RST:復(fù)位標(biāo)志,低有效,輸入信號(hào);CLK:時(shí)鐘信號(hào),輸入信號(hào);ADDRoADDRII:地址總線,11位,輸入信號(hào);RD:讀控制位,高有效,輸入信號(hào);Do-D7:數(shù)據(jù)總線,8位,輸入輸出信號(hào)。圖 9 片內(nèi)ROM的信號(hào)圖片內(nèi)ROM主要VHDL語言描述:beginif(rst=1)thendata=CD_8;elsif(clkevent and clk=1、thenif(rd=1)thendata=PROGRAM(conv_integer(addr);elsedata2

溫馨提示

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

評論

0/150

提交評論