基于vhdl8位模型運算機的設(shè)計與實現(xiàn)說明書_第1頁
基于vhdl8位模型運算機的設(shè)計與實現(xiàn)說明書_第2頁
基于vhdl8位模型運算機的設(shè)計與實現(xiàn)說明書_第3頁
基于vhdl8位模型運算機的設(shè)計與實現(xiàn)說明書_第4頁
基于vhdl8位模型運算機的設(shè)計與實現(xiàn)說明書_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、隨著運算機在人們生活中重要性和不可或缺性的提高,為了更方便的為公共利用,進展運算機性能成為IT行業(yè)的熱點,但運算機的內(nèi)部結(jié)構(gòu)極為復(fù)雜,為了便于研究便產(chǎn)生了模型運算機。本文完成了基于VHDL的8位模型運算機的設(shè)計與實現(xiàn)。文中第一論述了8位模型運算機的原理,然后對其十個功能模塊(算術(shù)邏輯運算單元,累加器,操縱器,地址寄放器,程序計數(shù)器,數(shù)據(jù)寄放器,存儲器,節(jié)拍發(fā)生器,時鐘信號源,指令寄放器和指令譯碼器)進行了分析與設(shè)計。最后在QuartusII環(huán)境下進行了仿真,完成了8位模型運算機的整體實現(xiàn)。本文綜合了運算機組成原理和數(shù)字邏輯與系統(tǒng)設(shè)計的知識,設(shè)計的8位模型運算性能更方便的了解運算機內(nèi)部構(gòu)造和工作

2、原理。整個系統(tǒng)的開發(fā)表現(xiàn)了在QuartusII軟件平臺上用VHDL設(shè)計數(shù)字操縱系統(tǒng)的有效性。關(guān)鍵詞:8位模型機;QuartusII;VHDL語言AbstractWiththeimprovementofimportanceandindispensabilityincomputerinpeopleslife,inordertousemoreconvenientlyforpubliccomputerperformanceisbecomingahotintheITindustrytheinternalstructureofthecomputerisverycomplicate,Computermode

3、lsimplifiesthedifficultyoftheresearch.Thisarticlecompletedthedesignandimplementationofeightmodelcomputerbasedon,thisarticleexpoundstheprincipleofeightmodelcomputer,thendividesitinto10modules(arithmeticlogicunit,accumulator,controllers,addressregister,theprogramcounteranddataregisters,memory,beatgene

4、rator,aclocksignal,instructionregisterandinstructiondecoder)andanalyseanddesigneachofundertheenvironmentoftheQuartusIIsimulation,completedoverallimplementationofthe8modelcomputer.TheanalysisanddesignoftheeightmodelcomputerintegratedtheknowledgeofcomputerconstituteprincipleandDigitallogicandsystemdes

5、ign.ThedesignoftheeightmodelcomputercanbemoreconvenienttounderstandinternalstructureandworkingwholesystemdevelopmentmanifeststhepracticabilityofdesigningthenumericalcontrolsystemontheQuartusIIsoftwareplatformwithVHDL.Keywords:eightmodelcomputer;VHDLlanguage;QuartusII TOC o 1-5 h z HYPERLINK l bookma

6、rk2 o Current Document 緒論1 HYPERLINK l bookmark4 o Current Document 本課題研究的目的1 HYPERLINK l bookmark6 o Current Document 本課題研究的背景及意義1 HYPERLINK l bookmark8 o Current Document 基于VHDL編程的基礎(chǔ)知識4 HYPERLINK l bookmark10 o Current Document VHDL語言概述4 HYPERLINK l bookmark12 o Current Document VHDL的設(shè)計流程5 HYPERLI

7、NK l bookmark14 o Current Document 有關(guān)QuartusII的介紹6本課題基于QuartusII的設(shè)計流程8 HYPERLINK l bookmark16 o Current Document 3基于VHDL8位模型機的原理與設(shè)計9 HYPERLINK l bookmark18 o Current Document 模型運算機的原理9 HYPERLINK l bookmark20 o Current Document 模型機的整體設(shè)計要求9 HYPERLINK l bookmark22 o Current Document 模型機邏輯框圖的設(shè)計10 HYPERL

8、INK l bookmark24 o Current Document 模型機的指令系統(tǒng)設(shè)計10 HYPERLINK l bookmark26 o Current Document 模型機的指令執(zhí)行流程設(shè)計11 HYPERLINK l bookmark28 o Current Document 基于VHDL8位模型機各模塊的設(shè)計與實現(xiàn)12算術(shù)邏輯單元ALU模塊12累加器模塊14操縱器模塊18節(jié)拍發(fā)生器21指令寄放器模塊IR和指令譯碼器24時鐘產(chǎn)生器28程序計數(shù)器模塊30地址寄放器MAR33存儲器RAM36數(shù)據(jù)寄放器DR384基于VHDL的8位模型運算機的實現(xiàn)42基于VHDL的微程序執(zhí)行流程圖4

9、28位模型機的頂層原理圖設(shè)計43 HYPERLINK l bookmark30 o Current Document 基于VHDL的8位模型機工作流程44 HYPERLINK l bookmark32 o Current Document 頂層VHDL源程序設(shè)計45頭文件cpu_defs的VHDL設(shè)計45CPU的VHDL源程序設(shè)計468位模型機的整體實現(xiàn)54結(jié)論56致謝57參考文獻58附錄A英文原文59附錄B漢語翻譯681緒論本課題研究的目的本課題的要緊任務(wù)是通過動腦和動手解決運算機設(shè)計中的實際問題。綜合運用所學(xué)運算機組成原理知識和VHDL語言編程技術(shù),在QuartusII環(huán)境下實現(xiàn)8位模型運

10、算機功能并進行波形仿真。融會貫通運算機組成原理課程的內(nèi)容,通過知識的綜合運用,加深對運算機系統(tǒng)各個模塊的工作原理及彼此聯(lián)系的熟悉。本課題研究的背景及意義運算機日新月異的進展已經(jīng)成為人們生活中不可或缺的工具,在我國電子運算機盡管起步較晚,可是進展較快。從20世紀50年代開始研制高性能運算機,其進展的時期與國際進展相類似,也經(jīng)歷了大型機,超級運算機,高性能運算機時期。第一時期(19571962年)1957年,哈爾濱工業(yè)大學(xué)研制成功了中國第一臺模擬式電子運算機。1958年,中國第一臺運算機103型通用數(shù)字電子運算機由中國科學(xué)院計算所與北京有線電廠一起研制成功,運行速度每秒1500次,字長31位,內(nèi)存

11、容量1024B。1959年,中國研制成功104型電子運算機,內(nèi)存容量為2048B,字長39位,運算速度為每秒10000次,為我國尖端武器的進展做出了重要奉獻。1960年,中國第一臺大型通用電子運算機107型通用電子運算機研制成功,其字長32位,內(nèi)存容量為1024B,有加減乘除等16條指令,要緊用于彈道計算。第二時期(19631972年)1963年,中國第一臺大型晶體管電子運算機109機研制成功。這標志著中國電子運算機進入了第二代。1964年,441B全晶體管運算機研制成功,字長40位。1965年,中國第一臺百萬次集成電子運算機DJS-II型的操作系統(tǒng)編制完成。1967年,新型晶體管大型通用數(shù)字

12、運算機誕生。1968年,北京大學(xué)承接研制百萬次集成電路數(shù)字電子運算機150機。1970年,中國第一臺具有多道程序分時操作系統(tǒng)和標準匯編語言的運算機411B-II型全晶體管運算機研制成功。1972年,每秒運算11萬次的大型集成電路通用數(shù)字電子運算機研制成功。第三時期(19731982年)1973年,中國第一臺百萬次集成電路電子運算機研制成功,字長48位,存儲容量13KB。1974年,DJS-130,131,132,135,140,152,153等13個機型前后研制成功。1976年,DJS-183,184,185,186,1804機研制成功。我國臺灣省臺中農(nóng)學(xué)院發(fā)明了第一代倉頡輸入法。1977年,

13、中國第一臺微型運算機DJS-050機研制成功。1979年,中國研制成功每秒運算500萬次的集成電路運算機HDS-9。1981年,中國研制成功的260機平均運算速度達到每秒1000萬次。信息互換用漢字編碼字符集大體集GB23121980國家標準正式發(fā)布實施。第四時期(19831992年)1983年,國防科技大學(xué)研制成功“銀河I型”巨型運算機,運算速度達到每秒1億次。1985年,華光I型漢字激光照排系統(tǒng)投入生產(chǎn)。1986年,中華學(xué)習(xí)機投入生產(chǎn)。1987年,第一臺國產(chǎn)的286微機長城286正式推出。1988年,第一臺國產(chǎn)386微機長城386推出,中國發(fā)覺首例運算機病毒。1990年,中國首臺高智能運算

14、機EST/IS4260智能工作站誕生,長城486運算機問世。1992年,中國最大的漢字字符集6萬運算機漢字字庫正式成立。第五時期(1992年至今)1993年,中國第一臺10億次巨型銀河運算機II型通過鑒定。1995年,曙光1000大型機通過鑒定,具峰值可達每秒25億次。1997年,銀河-田并行巨型運算機研制成功。1999年,銀河-IV巨型機研制成功。而在國外電子運算機要比咱們早十幾年。世界上第一臺電子數(shù)字式運算機于1946年2月15日在美國賓夕法尼亞大學(xué)研制成功,它的名稱叫ENIAC,是電子數(shù)值積分式運算機(TheElectronicNumbericalIntergratorandComput

15、er勺縮寫。它利用了17468個真空電子管,耗電174千瓦,占地170平方米,重達30噸,每秒鐘可進行5000次加法運算。ENIAC誕生后短短的幾十年間,運算機的進展突飛猛進。要緊電子器件接踵利用了真空電子管,晶體管,中、小規(guī)模集成電路和大規(guī)模、超大規(guī)模集成電路,引發(fā)運算機的幾回更新?lián)Q代。每一次更新?lián)Q代都使運算機的體積和耗電量大大減小,功能大大增強,應(yīng)用領(lǐng)域進一步拓寬。專門是體積小、價錢低、功能強的微型運算機的顯現(xiàn),使得運算機迅速普及,進入了辦公室和家庭,在辦公室自動化和多媒體應(yīng)用方面發(fā)揮了專門大的作用。目前,運算機的應(yīng)用已擴展到社會的各個領(lǐng)域。可將運算機的進展進程分成以下幾個時期:第一代為電

16、子管運算機;第二代為晶體管運算機;第三代為中小規(guī)模集成電路運算機;第四代為大規(guī)模、超大規(guī)模集成電路運算機;第五代為龐大規(guī)模集成電路新一代運算機(1990年至此刻)。四代機顯現(xiàn)以后,日、美、歐等從20世紀80年代開始,踴躍開展新一代運算機的研究,但由于對新一代運算機的太高期望,使得至今仍未有沖破性進展,尚未哪一種運算機被人們公以為新一代運算機的典型代表。當前,人們在改良運算機芯片制造工藝的同時,大力研究新型運算機元件。光子元件、超導(dǎo)元件、生物電子元件、神經(jīng)網(wǎng)絡(luò)系統(tǒng)等研究已見眉目,新一代運算機的曙光已經(jīng)顯現(xiàn)。目前,運算機技術(shù)正朝著微型化、巨型化、網(wǎng)絡(luò)化、智能化、多媒體化等方向進展。而模型運算機是將

17、運算機的簡化,實現(xiàn)相同功能,在明白得和研究方面更方便,更快捷,由此更受到界內(nèi)人士的好評。模型運算機的研究仍在進展當中,國內(nèi)外尚未太多的資料結(jié)果顯示,本課題確實是模型運算機的具體內(nèi)部構(gòu)造,實現(xiàn)各部份部件功能,了解其工作原理。模型運算機有著重要的進展地位,在爾后幾年會成為研究的重點,一樣是進展運算機性能的重要途徑。2基于VHDL編程的基礎(chǔ)知識VHDL語言概述VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage訓(xùn)超高速集成電路硬件描述語言。美國國防部在20世紀80年代初為其超高速集成電路VHSIC打算提出的硬件描述語言,它是硬件

18、設(shè)計者和EDA工具之間的界面。設(shè)計者利用HDL來描述自己的設(shè)計,并把那個描述告知EDA工具,最后在EDA工具的幫忙下進行詳細地設(shè)計及驗證。硬件描述語言進展至今已有幾十年的歷史,并已成功地應(yīng)用到系統(tǒng)的仿真、驗證和設(shè)計、綜合等方面。目前經(jīng)常使用的硬件描述語言有AHDL、ABEL、VHDL、VerilogHDL等等。20世紀80年代后期,美國國防部開發(fā)的VHDL語言是IEEE標準化的硬件描述語言,而且已經(jīng)成為系統(tǒng)描述的國際公認標準,取得眾多EDA公司的支持。VHDL語言覆蓋面廣,描述能力強,能支持硬件的設(shè)計、驗證、綜合和測試,是一種多層次的硬件描述語言。其設(shè)計描述能夠是描述電路具體組成的結(jié)構(gòu)描述,也

19、能夠是描述電路功能的行為描述。這些描述能夠從最抽象的系統(tǒng)級直到最精準的邏輯級,乃至門級。運用VHDL語言設(shè)計系統(tǒng)一樣采納自頂向下分層設(shè)計的方式,第一從系統(tǒng)級功能設(shè)計開始,對系統(tǒng)高層模塊進行行為描述和功能仿真。系統(tǒng)的功能驗證完成后,將抽象的高層設(shè)計自頂向下逐級細化,直到與所用可編程邏輯器件相對應(yīng)的邏輯描述。VHDL語言還能夠描述與工藝有關(guān)的信息,工藝參數(shù)能夠通過設(shè)計文件語言參數(shù)來調(diào)整,可不能因工藝轉(zhuǎn)變與進展而使VHDL設(shè)計過時。因此,VHDL設(shè)計的生命周期與其他設(shè)計方式相較是最長的。VHDL的特點:?功能壯大,描述力強。?可移植性好。?研制周期短,本錢低。?能夠延長設(shè)計的生命周期。?具有向ASI

20、C移植的能力。VHDL的設(shè)計流程本課題采納的設(shè)計流程采納VHDL設(shè)計硬件電路系統(tǒng)的設(shè)計流程一樣能夠分為以下幾個步驟。(1)確信電路具體功能。通常情形下,開發(fā)前期先設(shè)計整體方案,但整體放啊相對照較抽象,利用VHDL的設(shè)計人員必需分析電路所要實現(xiàn)的具體功能。(2)設(shè)計輸入。利用自頂向下的方式,將設(shè)打算分為不同的功能模塊。每一個模塊完成必然的邏輯功能。模塊劃分是設(shè)計進程中的一個重要環(huán)節(jié),這一步要花費較多的時刻和精力完成,從而保證整體最優(yōu)。(3)功能仿真。在功能仿真時期要緊對所設(shè)計的電路進行功能驗證,通過功能仿真,發(fā)覺設(shè)計存在的缺點。例如,輸入輸出是不是有矛盾,有無未加處置的輸入信號,是不是許諾使能等

21、。通過功能仿真,在設(shè)計前期糾正缺點和錯誤,能夠節(jié)省后期的時刻,縮短整體開發(fā)周期。VHDL的程序結(jié)構(gòu)實體和結(jié)構(gòu)體是VHDL設(shè)計文件的兩個大體組成部份。實體描述設(shè)計系統(tǒng)的外部接口信號;結(jié)構(gòu)體用于描述系統(tǒng)的行為、系統(tǒng)數(shù)據(jù)的流程或系統(tǒng)組織結(jié)構(gòu)形式(即系統(tǒng)的內(nèi)部電路)。配置用于從庫當選取所需元件安裝到設(shè)計單元的實體中。包集合寄存各設(shè)計模塊能共享的數(shù)據(jù)類型、常數(shù)、子程序等。庫用于寄存已編譯的實體、結(jié)構(gòu)體、包集合和配置。VHDL源文件大體魄式LIBRARY庫名;一一庫USE庫名.程序包名.;程序包ENTITY實體名IS實體PORT();END實體名;ARCHITECTURE結(jié)構(gòu)體名OF實體名一一結(jié)構(gòu)體()E

22、ND結(jié)構(gòu)體名;有關(guān)QuartusII的介紹QuartusII是Altera公司在21世紀初推出的CPLD/FPGA集成開發(fā)環(huán)境,它是該公司前一代CPLD/FPGA集成開發(fā)環(huán)境MAX+PUSII的更新?lián)Q代產(chǎn)品。QuartusII提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計環(huán)境,其界面友好,使設(shè)計者能方便地進行設(shè)計輸入、快速處置和器件編程。QuartusII提供了完整的多平臺設(shè)計環(huán)境,能知足各類特定設(shè)計的需要。QuartusII是單片可編程系統(tǒng)(SOPC)設(shè)計的綜合性環(huán)境和SOPC開發(fā)的大體設(shè)計工具;QuartusII與Matlab和DSPBuilder結(jié)合,能夠進行基于FPGA的DSP系統(tǒng)開發(fā),是DSP硬件系統(tǒng)實

23、現(xiàn)的關(guān)鍵EDA工具。QuartusII能夠直接利用第三方的綜合工具,如LeonardoSpectrum,并能直接挪用這些工具。QuartusII具有仿真功能,同時也支持第三方的仿真工具,如ModelSim。QuartusII包括模塊化的編譯器,在對設(shè)計進行處置時能夠進行全編譯,也能夠單獨運行其中的某個功能模塊。QuartusII還包括許多十分有效的LPM模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部份。軟件增強了網(wǎng)絡(luò)功能,它具有最新的Internet技術(shù),設(shè)計人員能夠直接通過Internet取得Altera的技術(shù)支持。Altera與業(yè)界處于領(lǐng)先地位的EDA工具廠商組成ACCESS聯(lián)盟,確保了Alt

24、eraEDA工具與這些支持Altera器件的EDA工具之間順暢接口。Altera致力于提供電路設(shè)計人員都超級熟悉的邏輯開發(fā)環(huán)境。Altera的新一代開發(fā)軟件QuartusII支持器件種類眾多,如APEX20K,Cyclone,APEXII,Excalibur,Mercury和Stratix等新器件系列。QuartusII支持多時鐘按時分析、LogicLock基于塊的設(shè)計、SOPC、內(nèi)嵌SignalTapII邏輯分析儀、功率估量器等高級工具。QuartusII包括有MAX+PLUSII的GUI,且易于MAX+PLUSII的工程平穩(wěn)地過渡到QuartusII開發(fā)環(huán)境。本課題采納文本方式輸入實現(xiàn):1

25、.成立工程文件語言輸入(1)成立文件。單擊“File菜單下的“NeW命令或利用快捷鍵Ctrl+N,彈出“NeW對話框。在“DeviceDesignFilesM面下雙擊“VHDLFile選項(或選中該項后單擊“OK按鈕)后成立新文件。2)輸入程序。在程序編輯區(qū)內(nèi)編寫程序。3)保留文件。單擊保留文件按鈕,彈出對話框?qū)⑤斎氲腣HDL語言程序保留為vhd文件,注意后綴名是.vhd,名字與實體名相同,單擊保留”按鈕即可保留文件。4)編譯工程。單擊水平工具條上的編譯按鈕或選擇菜單Processing下的StartComplilation,開始編譯,并伴隨著進度不斷地轉(zhuǎn)變,編譯完成后顯現(xiàn)信息窗口。若是編譯進

26、程顯現(xiàn)錯誤,要將錯誤更正,保留后再次編譯,直到編譯無錯誤為止。3.仿真設(shè)計設(shè)計仿真的目的確實是在軟件環(huán)境下,驗證電路的行為和思想是不是一致。仿真分為功能仿真和時序仿真。功能仿真是在設(shè)計輸入以后,綜合和布局布線之前的仿真,不考慮電路的邏輯和門電路的時刻延時,著重考慮電路在理想環(huán)境下的行為和預(yù)期設(shè)計成效的一致性。時序仿真是在綜合、布局布線后,也即電路已經(jīng)映射到特定的工藝環(huán)境后,考慮器件延時的情形下對布局布線的網(wǎng)絡(luò)表文件進行的一種仿真,其中器件延時信息通過反向標注時序延時信息實現(xiàn)的。1)仿真文件的生成。1)成立矢量波形文件。單擊“Fil磔單下的“NeW命令,在彈出的“NeW寸話框當選擇“OtheFi

27、les頁面,選擇“VectorWaveformFile后單擊“OK按鈕,彈出矢量波形編輯窗口。2)添加引腳或節(jié)點。左鍵雙擊“NameT方空白處,彈出InsertNodeorBus寸話框。單擊對話框“NodeFinderH鈕后,彈出“NodeFinde對話框,在“Filter后面的方框里選擇“Pinall;然后單擊“List按鈕,在“NodeFoun中列出了設(shè)計中的所有的輸入/輸出引腳號,選擇需要的引腳。3)編輯輸入信號并保留文件。2)功能仿真。功能仿真是忽略延時的仿真,是理想的仿真。接下來咱們一路來進行設(shè)計的功能仿真。第一單擊“Assignment既單下的“Setting除除,單擊左側(cè)題目欄中

28、的“Simulato譴項后,在右邊的“Simulationmod3勺下拉菜單當選擇“Functiona選項即可(軟件默許的是“Timing選項),單擊“OK按鈕后完成設(shè)置。后需要生成功能仿真網(wǎng)絡(luò)表。單擊“Processin藤單下的GenerateFunctionalNetlis命令后會自動創(chuàng)建功能仿真網(wǎng)絡(luò)表。圖8位模型運算機的設(shè)計流程3基于VHDL8位模型機的原理與設(shè)計模型運算機的原理所謂模型運算機確實是一運算機實際結(jié)構(gòu)為基礎(chǔ),將其簡化,能對輸入的信息進行處置運算,更便于分析設(shè)計。隨著微電子技術(shù)的進步,現(xiàn)代運算機要緊由運算器,操縱器,存儲器,輸入設(shè)備,輸出設(shè)備五大部份組成。運算性能完成用戶要求

29、是依照提早設(shè)計好的指令進行的,指令是運算機執(zhí)行具體操作的命令。一條指令確實是機械語言的一個語句,用它來講明機械硬件應(yīng)完成什么樣的大體操作。在本課題中把模型機劃分了十個模塊別離是存儲器,時鐘信號源,節(jié)拍發(fā)生器,操作操縱器,程序計數(shù)器,地址寄放器,累加器,算術(shù)邏輯單元,指令寄放器和指令譯碼器。讓預(yù)設(shè)指令在這些部件中按順序執(zhí)行達到預(yù)期目的。運算機執(zhí)行一條指令分為三步進行:第1步是取指令,將要執(zhí)行的指令從內(nèi)存取到操縱器中;第2步是分析指令,對所取的指令通過譯碼器進行分析判定,判定該指令要完成的操作;第3步是執(zhí)行指令,依照分析結(jié)果向各部件發(fā)出操作信息,執(zhí)行該指令相應(yīng)的操作功能。模型機的整體設(shè)計要求要設(shè)計

30、一個模型運算機,它由十個功能部件組成,具體是存儲器,時鐘信號源,節(jié)拍發(fā)生器,操作操縱器,程序計數(shù)器,地址寄放器,累加器,算術(shù)邏輯單元,指令寄放器和指令譯碼器。設(shè)計要求為:1)總線結(jié)構(gòu):單總線,數(shù)據(jù)總線位數(shù)8位,地址總線3位2)存儲器:存儲容量5*8位3)操作操縱器:實現(xiàn)指令操作碼所需的操作操縱信號4)運算器:一個累加器,實現(xiàn)加法操作5)指令系統(tǒng)規(guī)模:3指令模型機邏輯框圖的設(shè)計圖8位模型機邏輯框圖模型機的指令系統(tǒng)設(shè)計模型運算機可完成兩個當即數(shù)相加,并將相加結(jié)果送入累加器。指令系統(tǒng)規(guī)模為條指令,為了方便描述以“6+0”為例,設(shè)計3條指令,具體如下:LDA,6;A6,把6送入累加器A,操作碼是001

31、1111QADDA,0;AA+0,把A中6與0相加,結(jié)果送入累加器A,操作碼是;HALT;運算完畢,停機,操作碼是0111011Q模型機的指令執(zhí)行流程設(shè)計依照模型機的結(jié)構(gòu)框圖,可設(shè)計指令系統(tǒng)中每條指令的執(zhí)行流程。一條指令從主存中掏出到執(zhí)行完,需要假設(shè)干個機械周期,任何指令的第一個機械周期都是“取指令周期”,一條指令一共需要幾個機械周期,取決于指令在機內(nèi)實現(xiàn)的復(fù)雜程度。本模型機的指令流程如下:1)第一條指令LDA,6;將當即數(shù)6送入A。T0:(PC)-MARABUS,IMAR=0T1:DBUSDR,IDR=1T2:(PC)+1-PC,IPC=1(DR)-IR,IIR=0,LD=1T3:(PC)M

32、ARABUS,IMAR=0T4:DBUSDR,IDR=1T5:(PC)+1-PC,IPC=1T6:dbus-A,IA=0T7:空2)第二條指令A(yù)DDA,0;把A中6與當即數(shù)0相加,結(jié)果6送入累加器AT0:(PC)MARABUS,IMAR=0T1:DBUSDR,IDR=1T2:(PC)+1-PC,IPC=1(DR)-IR,IIR=0,ADD=1T3:(PC)MARABUS,IMAR=0T4:DBUSDR,IDR=1T5:(PC)+1-PC,IPC=1A+0-SR,ISUM=0T6:SR-dbus,ESUM=0dbus-A,IA=0,EDR=1T7:空3)第三條指令HALT;運算完畢,停機T0:(

33、PC)-MARABUS,IMAR=0T1:DBUSDR,IDR=1T2:(PC)+1-PC,IPC=1(DR)-IR,IIR=0,HALT=1基于VHDL8位模型機各模塊的設(shè)計與實現(xiàn)算術(shù)邏輯單元ALU模塊說明:此模塊用于實現(xiàn)加法運算Y輸出結(jié)果圖算術(shù)邏輯運算單元程序流程圖說明:ALU功能部件,有兩個操縱信號,別離是加法運算操縱信號ISUM和輸出操縱信號ESUM,當ISUM=0時,在CLK作用下將兩數(shù)相加,當輸出操縱命令ESUM=0時,將相加結(jié)果讀入到內(nèi)部數(shù)據(jù)總線上。源程序設(shè)計LIBRARYIEEE;USEALUISPORT(AC,DR:INSTD_LOGIC_VECTOR(7DOWNTO0);I

34、SUM:INSTD_LOGIC;ESUM:INSTD_LOGIC;ALU_OUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0););ENDALU;ARCHITECTUREAOFALUISSIGNAL:ALU_TEMP:STD_LOGIC_VECTOR(7DOWNTO0);BEGINALU_TEMP=AC+DRWHENISUM=0;ALU_OUT=ALU_TEMP;ENDA;模塊仿真波形圖ALU功能仿真波形分析:兩個輸入信號AC,DR,一個輸出信號ALU_OUT和兩個操縱命令信號ISUM,ESUM。在仿真設(shè)置中將AC值設(shè)為從00000000一一遞增到,而DR值為了方便觀看設(shè)為000

35、00000,兩個操縱命令信號全數(shù)設(shè)為0即即時相加即時輸出,運行后如下圖,輸出結(jié)果也是從00000000到由于截圖大小有限只截到00001000,功能仿真成功。累加器模塊說明:實現(xiàn)8位模型機的累加器N圖累加器ACC程序流程圖說明:設(shè)置一個中間信號REGQ,輸入信號是DATA_IN,輸出信號時DATA_OUT,兩個操縱信號別離是IA輸入操縱信號和EA輸出操縱信號。當輸入操縱信號IA=0時,將輸入數(shù)據(jù)DATA_IN存入到REGQ中,當輸出操縱信號EA=0是將以存到REGQ中的輸入數(shù)據(jù)賦與輸出數(shù)據(jù)DATA_OUT輸出。源程序設(shè)計LIBRARYIEEE;USEACCISPORT(DATA_IN:INST

36、D_LOGIC_VECTOR(7DOWNTO0);IA:INSTD_LOGIC;EA:INSTD_LOGIC;CLK:INSTD_LOGIC;DATA_OUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ENDACC;ARCHITECTUREAOFACCISSIGNALREGQ:STD_LOGIC_VECTOR(7DOWNTO0);BEGINPROCESS(IA,EA,CLK)BEGINIF(CLKEVENTANDCLK=1)THENIF(IA=0)THENREGQ=DATA_IN;ENDIF;ENDIF;ENDPROCESS;DATA_OUT=REGQWHENEA=0ELSE

37、ZZZZZZZZENDA;模塊仿真波形?inditioinoctTnr.diuidM加欣匯1105ns-,f加1肌CI,5En?屜i討0淅虹Eniacc理器aMM3Li,QdatajuBOOCki.dat8_wtBOOC小叫m2電3巴砧一年廿四庭叫海上修吧薰吟出腐19OKieMOCOOOX/娜I-m而im皿血)amooX珈。血。波形分析:CLK周期為10ns,那時鐘發(fā)生且為上升沿的時候,輸入控功能制信號IA=0時,實現(xiàn)輸入,把輸入數(shù)據(jù)設(shè)置成從00000000到依次遞增1,輸出信號始終為0來輸出輸入數(shù)據(jù)如圖可見,當IA=0輸入數(shù)據(jù),輸出=輸入,當IA=1數(shù)據(jù)沒有被輸入,出輸出仍為上次輸入,因此輸

38、出為00000000,00000010,00000100由仿真波形可知,ACC模塊設(shè)計功能成功實現(xiàn)。操縱器模塊說明:操縱模塊依照指令操作碼和時序信號,產(chǎn)生各類操作操縱信號IMAR=(T0+T3.LD+T3.ADD)IIR=T2IA=(T6.LD+T6.ADD)IDR=T1+T4.LD+T4.ADDIPC=T2+T5.LD+T5.ADDISUM=(T5.ADD)ESUM=(T6.ADD)EA=(T7.ADD)EDR=T6.ADD+T7.ADD圖操縱器CTRL程序流程圖說明:輸入信號為三個操作指令信號LD,ADD,HALT和T0-T7八個節(jié)拍脈沖及一個時鐘信號CLK,輸出為九個操縱信號。當HALT

39、=1時IPC=0和ESUM=0,當HALT=0時,9個操縱信號別依照不同的節(jié)拍發(fā)生有不同的取值來執(zhí)行各自操縱功能。源程序LIBRARYIEEE;USECTRLISPOTR(LD,ADD,HALT:INSTD_LOGIC;CLK:INSTD_LOGIC;T0,T1,T2,T3,T4,T5,T6,T7:INSTD_LOGIC;IPC,IMAR,IDR,EDR,IA,EA,ISUM,ESUM,IIR:OUTSTD_LOGIC;);ENDENTITY;ARCHITECTUREAOFCTRLISBEGINPROCESS(LD,ADD,HALT)BEGINIF(HALT=1)THENIPC=0;ESUM=

40、0;ELSEIMAR=not(t0or(t3andld)or(t3andadd);IIR=nott2;IA=not(t6andld)or(t6andadd);IDR=t1or(t4andld)or(t4andadd);IPC=t2or(t5andld)or(t5andadd);ISUM=not(t5andadd);ESUM=not(t6andadd);EA=not(t7andadd);EDRI9r:o-Q:l=Ba0.公Ho-時1案史包,p赴手II-1:E審曰4與n11sw*EXb1!111論H皂si11fc4S1_bSs&MS*51!I9iqiitliiV吉三!工口與聿能否1*0號且曰蟲售*

41、在一目=1ACr1LTJ1Cnja33:工一jOJc*:T3V口zW:T*元圖操縱器CTRL功能仿真波形分析:ADD,LD,T0-T7波形設(shè)置為0,1交替,HALT先為10ns的高電平以后皆為低電平,運行后結(jié)果如下圖,依照公式IMAR=not(t0or(t3andld)or(t3andadd);IIR=nott2;IA=not(t6andld)or(t6andadd);IDR=t1or(t4andId)or(t4andadd);IPC=t2or(t5andId)or(t5andadd);ISUM=not(t5andadd);ESUM=not(t6andadd);EA=not(t7andadd)

42、;EDR=(t6andadd)or(t7andadd);可驗證波行無誤,CTRL模塊功能設(shè)計成功。節(jié)拍發(fā)生器說明:用于產(chǎn)生T0-T7的8個節(jié)拍脈沖信號,是模型機按此節(jié)拍有序的工作開始TEMP(0)=TEMP(7)TEMP(1)=TEMP(0)TEMP(2)=TEMP(1)TEMP(3)=TEMP(2)TEMP(4)=TEMP(3)TEMP(5)=TEMP(4)TEMP(6)=TEMP(5)TEMP(7)=TEMP(6)TEMP(0)=1TEMP(1)=0TEMP(2)=0TEMP(3)=0TEMP(4)=0TEMP(5)=0TEMP(6)=0TEMP(7)=0圖節(jié)拍發(fā)生器程序流程圖說明:輸入信

43、號位CLR和CLK,當CLR=0時賦初值,不然當CLK上升沿到來時進行環(huán)形移位,以實現(xiàn)節(jié)拍發(fā)生器功能。2.VHDL源程序LIBRARYIEEE;USECOUNTERISPORT(CLK,CLR:INSTD_LOGIC;T0,T1,T2,T3,T4,T5,T6,T7:OUT_LOGIC);ENDCOUNTER;ARCHITECTUREAOFCOUNTERISSIGNALTEMP:STD_LOGIC_VECTOR(7DOWNTO0);BEGINT0=TEMP(0);T1=TEMP(1);T2=TEMP(2);T3=TEMP(3);T4=TEMP(4);T5=TEMP(5);T6=TEMP(6);T

44、7=TEMP(7);PROCESS(CLKCLR)BEGINIF(CLR=0)THENTEMP(0)=1;TEMP(1)=0;TEMP(2)=0;TEMP(3)=0;TEMP(4)=0;TEMP(5)=0;TEMP(6)=0;TEMP(7)=0;ELSIF(CLKEVENTANDCLK=1)THENTEMP(0)=TEMP(7);TEMP(1)=TEMP(0);TEMP(2)=TEMP(1);TEMP(3)=TEMP(2);TEMP(4)=TEMP(3);TEMP(5)=TEMP(4);TEMP(6)=TEMP(5);TEMP(7)=TEMP(6);ENDIF;ENDPROCESS;ENDA;

45、圖節(jié)拍發(fā)生器仿真波形圖波形分析:依照輸入的時鐘信號以8個時鐘周期為一個大周期發(fā)生一個節(jié)拍脈沖,從T0到T7依次循環(huán)發(fā)生,結(jié)果如下圖,節(jié)拍發(fā)生器模塊功能設(shè)計成功。指令寄放器模塊IR和指令譯碼器說明:指令寄放器IR用來保留當前正在執(zhí)行的一條指令,若是是操作碼就送到指令譯碼器進行譯碼。開始圖指令寄放器模塊程序流程圖說明:當執(zhí)行 指令寄放器。若是條指令時,先把它從主存儲器中取到數(shù)據(jù)寄放器中,然后在傳送到IR中貯存的是操作碼LD00111110,ADD,HALT01110110,譯碼器就將操作碼譯成相應(yīng)的操作指令LD,ADD,HALT源程序LIBRARYIEEE;USEIRISPORT(DATA_IN:

46、INSTD_LOGIC_VECTOR(7DOWNTO0);IIR:INSTD_LOGIC;CLK:INSTD_LOGIC;LD,:OUTSTD_LOGIC);ENDIR;ARCHITECTUREAOFIRISSIGNALREGQ:STD_LOGIC_VECTOR(7OWNTO0);BEGINPROCESS(CLK,IIR)BEGINIF(CLKEVENTANDCLK=1)THENIF(IIR=0)THENREGQLD=1;ADD=0;HALTLD=0;ADD=1;HALTLD=0;ADD=0;HALTNULL;ENDCASE;ENDPROCESS;ENDA;1抖=一*ZNii焉19i1,JJ閂

47、11n1,口=b-d-t-riIBn1:汽1三Tiiiiy三s口T-1-i!s三工sXs_L-|i11J1Lr-*百蹩SU11-.ILJr1LlLNczj當=后男=_-j$RErnnJLr_111石耳SC3一J1EE居胃Q-得Q一oH忌trn1L口*尸俎N口E,-p=|fB=|FEBP=)041FCfeKKii金11FTF=_EFknCO-C31|111|111fC3_1N9o*修m-TUTf9JB6色臺色立旨旨各5邙Sv率0rH十瞭言圖指令寄放器功能仿真波形分析:當IIR=0時,輸入操作碼,并對其進行判定,當操作碼為某個指令時,該指令輸出。當執(zhí)行一條指令時,先把它從主存儲器中取到數(shù)據(jù)寄放器中

48、,然后在傳送到指令寄放器。若是IR中貯存的是操作碼LD0011111QADD,HALT01110110,譯碼器就將操作碼譯成相應(yīng)的操作指令LD,ADD,HALT。在此仿真圖中為了清楚其功能把DATA_IN設(shè)置成0011111Q,01110110,循環(huán),仿真結(jié)果如下圖ADD,LD,HALT依次使能,證明此功能模塊設(shè)計成功。時鐘產(chǎn)生器說明:用來產(chǎn)生固定頻率的方波脈沖。開始圖時鐘產(chǎn)生器模塊程序流程圖說明:用于產(chǎn)生固定頻率的方波,時鐘周期為,設(shè)置counter值從0到依次按clk周期按序加一得以實現(xiàn),如此循環(huán)。源程序LIBRARYIEEE;USECLK_SOURCEISPORT(CLK_50M:INS

49、TD_LOGIC;CLK:OUTSTD_LOGIC);ENDENTITY;ARCHITECTUREAOFCLK_SOURCEISSIGNALCLK_TEMP:STD_LOGIC;BEGINCLK=CLK_TEMP;PROCESS(CLK_50M,CLK_TEMP)VARIABLECOUNTER:INTEGERRANGE0TO;BEGINIF(COUNTER=)THENCOUNTER:=0;CLK_TEMP=NOTCLK_TEMP;ELSIF(CLK_50MEVENTANDCLK_50M=1)THENCOUNTER:=COUNTER+1;ENDIF;ENDPROCESS;ENDA;圖時鐘產(chǎn)生器功

50、能仿真波形分析:輸入信號CLK_50M時鐘頻率為50MHz即周期為20ns,在每一個時鐘上升沿是counter值自動加1,在達到時歸零重計,如此循環(huán)產(chǎn)生的固定周期,顯示波形如下圖。程序計數(shù)器模塊說明:用于確信下一條指令的地址。圖程序計數(shù)器模塊程序流程圖說明:程序計數(shù)器的作用是確信下一條指令的地址。由于模型運算機只有5個字節(jié)的機械碼,因此程序計數(shù)器PC的輸出只利用3位,當IPC=0時,計數(shù)器維持原狀態(tài);IPC=1時,計數(shù)器處于計數(shù)狀態(tài),那時鐘信號CLK上升沿到來時,做加1運算。源程序LIBRARYIEEE;USEPCISPORT(IPC,CLK,CLR:INSTD_LOGIC;PCOUT:OUT

51、STD_LOGIC_VECTOR(2DOWNTO0);ENDPC;ARCHITECTUREAOFPCISSIGNALQOUT:STD_LOGIC_VECTOR(2DOWNTO0);BEGINPROCESS(CLK,CLR,IPC)BEGINIF(CLR=0)THENQOUT=”0000”;ELSIF(CLKEVENTANDCLK=1)THENIF(IPC=1)THENQOUT=QOUT+1;ENDIF;ENDIF;ENDPROCESS;PCOUT=QOUT;ENDA;圖程序計數(shù)器功能仿真波形分析:時鐘信號CLK周期設(shè)為10ns,前20nsCLR信號設(shè)為低電平,程序計數(shù)器清零輸出為000,第20

52、ns以后CLR=1,程序計數(shù)器開始隨時鐘上升沿開始計數(shù),輸出地址為000,001,010,011,100,101,110,111,波形如下圖。地址寄放器MAR說明:用MAR來保留當前CPU所訪問的主存儲器單元的地址圖地址寄放器模塊程序流程圖說明:用來保留當前CPU所訪問的主存儲器單元的地址,由于主存儲器與CPU之間存在操作速度上的不同,因此必需利用地址寄放器來保留地址信息,直到主存儲器的讀/寫操作完成為止。當IMAR=0且時鐘信號CLK上升沿到來時,將地址存入,并直接輸出到存儲器的地址線上.源程序設(shè)計LIBRARYIEEE;USEMARISPORT(ADDR_IN:INSTD_LOGIC_VE

53、CTOR(2DOWNTO0);IMAR:INSTD_LOGIC;CLK:INSTD_LOGIC;ADDR_OUT:OUTSTD_LOGIC_VECTOR(2DOWNTO0);ENDMAR;ARCHITECTUREAOFMARISBEGINPROCESS(CLK,IMAR)BEGINIF(CLKEVENTANDCLK=1)THENIF(IMAR=0)THENADDR_OUT=ADDR_IN;ENDIF;ENDIF;ENDPROCESS;ENDA;SifeditiabftrgfiTIS,N麗疏肌3Uits J t|Fatte:2在陽卜媼4-h Gist山小。生。業(yè)團口蛀汕g帖曲云】g I10,C

54、13 呦.口試刑013順*IIiiuiiI箝TRTmrErmzrmrErLrLrmrLJOil : IDQ CO)呻1 j; 010 : mi ; I M);皿;QI : D口(蹲 I cm2Q己:而:I III I一iiK cm ,i fljr;如:聞: m : m :嘰:ni oa ;地 胤:旗順 pip3 dur-忸圖地址寄放器功能仿真波形分析:輸入等于輸出,本地址寄放信號IMAR=0時,將地址輸入,ADDRIN設(shè)置為000到100循環(huán),ADDR_OUT輸出也是對應(yīng)的000到1000,波形圖如下圖存儲器RAM說明:用于存儲程序和數(shù)據(jù)(開始CS=0NY4fWR=0Y寫入地址內(nèi)容N*讀出地址

55、內(nèi)容圖存儲器RAM程序流程圖說明:運算機是按事前編寫的程序進行運算的,第一將編寫好的程序?qū)懭氪鎯ζ?,運算機在運行進程中對存儲器進行讀寫操作。存儲器,存儲內(nèi)容:00000111110,00100000110,010,01100000111,10001110110源程序設(shè)計LIBRARYIEEE;USERAMISPORT(WR,CS:INSTD_LOGIC;DIN:INSTD_LOGIC_VECTOR(7DOWNTO0);DOUT:OUTSTD_LOGIC_VECTOR(7DOWNTO0);ADDR:INSTD_LOGIC_VECTOR(2DOWNTO0);ENDRAM;ARCHITECTUREAOFRAMISTYPEMEMORYISARRAY(0TO

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論