版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、摘 要 隨著計(jì)算機(jī)在人們生活中重要性和不可或缺性的提高,為了更方便的為大眾使用,發(fā)展計(jì)算機(jī)性能成為it行業(yè)的熱點(diǎn),但計(jì)算機(jī)的內(nèi)部結(jié)構(gòu)極其復(fù)雜,為了便于研究便產(chǎn)生了模型計(jì)算機(jī)。本文完成了基于vhdl的8位模型計(jì)算機(jī)的設(shè)計(jì)與實(shí)現(xiàn)。文中首先闡述了8位模型計(jì)算機(jī)的原理,然后對其十個(gè)功能模塊(算術(shù)邏輯運(yùn)算單元,累加器,控制器,地址寄存器,程序計(jì)數(shù)器,數(shù)據(jù)寄存器,存儲器,節(jié)拍發(fā)生器,時(shí)鐘信號源,指令寄存器和指令譯碼器)進(jìn)行了分析與設(shè)計(jì)。最后在quartus ii 9.0環(huán)境下進(jìn)行了仿真,完成了8位模型計(jì)算機(jī)的整體實(shí)現(xiàn)。本文綜合了計(jì)算機(jī)組成原理和數(shù)字邏輯與系統(tǒng)設(shè)計(jì)的知識,設(shè)計(jì)的8位模型計(jì)算機(jī)能更方便的了解計(jì)
2、算機(jī)內(nèi)部構(gòu)造和工作原理。整個(gè)系統(tǒng)的開發(fā)體現(xiàn)了在quartus ii軟件平臺上用vhdl設(shè)計(jì)數(shù)字控制系統(tǒng)的實(shí)用性。關(guān)鍵詞:8位模型機(jī) ; quartus ii ;vhdl語言 abstract with the improvement of importance and indispensability in computer in peoples life,in order to use more conveniently for public ,computer performance is becoming a hot in the it industry development.but
3、the internal structure of the computer is very complicate,computer model simplifies the difficulty of the research. this article completed the design and implementation of eight model computer based on vhdl.first ,this article expounds the principle of eight model computer,then divides it into 10 mo
4、dules(arithmetic logic unit, accumulator, controllers, address register, the program counter and data registers, memory, beat generator, a clock signal, instruction register and instruction decoder)and analyse and design each of them.finally under the environment of the quartus ii 9.0 simulation, co
5、mpleted overall implementation of the 8 model computer. the analysis and design of the eight model computer integrated the knowledge of computer constitute principle and digital logic and system design. the design of the eight model computer can be more convenient to understand internal structure an
6、d working principle.the whole system development manifests the practicability of designing the numerical control system on the quartus ii software platform with vhdl. key words: eight model computer ; vhdl language; quartus ii 目 錄1 緒論11.1 本課題研究的目的11.2 本課題研究的背景及意義12 基于vhdl編程的基礎(chǔ)知識42.1 vhdl語言概述42.2 vhd
7、l的設(shè)計(jì)流程52.3 有關(guān)quartus ii 的介紹62.4 本課題基于quartus ii的設(shè)計(jì)流程83 基于vhdl8位模型機(jī)的原理與設(shè)計(jì)93.1 模型計(jì)算機(jī)的原理93.2 模型機(jī)的總體設(shè)計(jì)要求93.3 模型機(jī)邏輯框圖的設(shè)計(jì)103.3 模型機(jī)的指令系統(tǒng)設(shè)計(jì)103.4 模型機(jī)的指令執(zhí)行流程設(shè)計(jì)113.5 基于vhdl8位模型機(jī)各模塊的設(shè)計(jì)與實(shí)現(xiàn)123.5.1 算術(shù)邏輯單元alu模塊123.5.2 累加器模塊143.5.3 控制器模塊183.5.4 節(jié)拍發(fā)生器213.5.5 指令寄存器模塊ir和指令譯碼器243.5.6 時(shí)鐘產(chǎn)生器283.5.7 程序計(jì)數(shù)器模塊303.5.8 地址寄存器mar
8、333.5.9 存儲器ram363.5.10 數(shù)據(jù)寄存器dr384 基于vhdl的8位模型計(jì)算機(jī)的實(shí)現(xiàn)424.1 基于vhdl的微程序執(zhí)行流程圖424.2 8位模型機(jī)的頂層原理圖設(shè)計(jì)434.3 基于vhdl的8位模型機(jī)工作流程444.4 頂層vhdl源程序設(shè)計(jì)454.4.1 頭文件cpu_defs的vhdl設(shè)計(jì)454.4.2 cpu的vhdl源程序設(shè)計(jì)464.5 8位模型機(jī)的整體實(shí)現(xiàn)54結(jié) 論57致 謝58參考文獻(xiàn)59附錄a 英文原文60附錄b 漢語翻譯701 緒論1.1 本課題研究的目的 本課題的主要任務(wù)是通過動腦和動手解決計(jì)算機(jī)設(shè)計(jì)中的實(shí)際問題。綜合運(yùn)用所學(xué)計(jì)算機(jī)組成原理知識和vhdl語言
9、編程技術(shù),在quartus ii環(huán)境下實(shí)現(xiàn)8位模型計(jì)算機(jī)功能并進(jìn)行波形仿真。融會貫通計(jì)算機(jī)組成原理課程的內(nèi)容,通過知識的綜合運(yùn)用,加深對計(jì)算機(jī)系統(tǒng)各個(gè)模塊的工作原理及相互聯(lián)系的認(rèn)識。1.2 本課題研究的背景及意義 計(jì)算機(jī)日新月異的發(fā)展已經(jīng)成為人們生活中不可或缺的工具,在我國電子計(jì)算機(jī)雖然起步較晚,但是發(fā)展較快。從20世紀(jì)50年代開始研制高性能計(jì)算機(jī),其發(fā)展的階段與國際發(fā)展相類似,也經(jīng)歷了大型機(jī),超級計(jì)算機(jī),高性能計(jì)算機(jī)時(shí)代。第一階段(19571962年) 1957年,哈爾濱工業(yè)大學(xué)研制成功了中國第一臺模擬式電子計(jì)算機(jī)。1958年,中國第一臺計(jì)算機(jī)103型通用數(shù)字電子計(jì)算機(jī)由中國科學(xué)院計(jì)算所與北
10、京有線電廠共同研制成功,運(yùn)行速度每秒1500次,字長31位,內(nèi)存容量1024b。1959年,中國研制成功104型電子計(jì)算機(jī),內(nèi)存容量為2048b,字長39位,運(yùn)算速度為每秒10000次,為我國尖端武器的發(fā)展做出了重要貢獻(xiàn)。1960年,中國第一臺大型通用電子計(jì)算機(jī)107型通用電子計(jì)算機(jī)研制成功,其字長32位,內(nèi)存容量為1024b,有加減乘除等16條指令,主要用于彈道計(jì)算。第二階段(19631972年) 1963年,中國第一臺大型晶體管電子計(jì)算機(jī)109機(jī)研制成功。這標(biāo)志著中國電子計(jì)算機(jī)進(jìn)入了第二代。1964年,441b全晶體管計(jì)算機(jī)研制成功,字長40位。1965年,中國第一臺百萬次集成電子計(jì)算機(jī)d
11、js-型的操作系統(tǒng)編制完成。1967年,新型晶體管大型通用數(shù)字計(jì)算機(jī)誕生。1968年,北京大學(xué)承接研制百萬次集成電路數(shù)字電子計(jì)算機(jī)150機(jī)。1970年,中國第一臺具有多道程序分時(shí)操作系統(tǒng)和標(biāo)準(zhǔn)匯編語言的計(jì)算機(jī)411b-型全晶體管計(jì)算機(jī)研制成功。1972年,每秒運(yùn)算11萬次的大型集成電路通用數(shù)字電子計(jì)算機(jī)研制成功。第三階段(19731982年) 1973年,中國第一臺百萬次集成電路電子計(jì)算機(jī)研制成功,字長48位,存儲容量13kb。1974年,djs-130,131,132,135,140,152,153等13個(gè)機(jī)型先后研制成功。1976年,djs-183,184,185,186,1804機(jī)研制成
12、功。我國臺灣省臺中農(nóng)學(xué)院發(fā)明了第一代倉頡輸入法。1977年,中國第一臺微型計(jì)算機(jī)djs-050機(jī)研制成功。1979年,中國研制成功每秒運(yùn)算500萬次的集成電路計(jì)算機(jī)hds-9。1981年,中國研制成功的260機(jī)平均運(yùn)算速度達(dá)到每秒1000萬次。信息交換用漢字編碼字符集基本集gb 23121980國家標(biāo)準(zhǔn)正式發(fā)布實(shí)施。第四階段(19831992年) 1983年,國防科技大學(xué)研制成功“銀河i型”巨型計(jì)算機(jī),運(yùn)算速度達(dá)到每秒1億次。1985年,華光i型漢字激光照排系統(tǒng)投入生產(chǎn)。1986年,中華學(xué)習(xí)機(jī)投入生產(chǎn)。1987年,第一臺國產(chǎn)的286微機(jī)長城286正式推出。1988年,第一臺國產(chǎn)386微機(jī)長城3
13、86推出,中國發(fā)現(xiàn)首例計(jì)算機(jī)病毒。1990年,中國首臺高智能計(jì)算機(jī)est/is 4260智能工作站誕生,長城486計(jì)算機(jī)問世。1992年,中 國最大的漢字字符集6萬計(jì)算機(jī)漢字字庫正式建立。第五階段(1992年至今) 1993年,中國第一臺10億次巨型銀河計(jì)算機(jī)ii型通過鑒定。1995年,曙光1000大型機(jī)通過鑒定,其峰值可達(dá)每秒25億次。1997年,銀河-并行巨型計(jì)算機(jī)研制成功。1999年,銀河-巨型機(jī)研制成功。 而在國外電子計(jì)算機(jī)要比我們早十幾年。世界上第一臺電子數(shù)字式計(jì)算機(jī)于1946年2月15日在美國賓夕法尼亞大學(xué)研制成功,它的名稱叫eniac,是電子數(shù)值積分式計(jì)算機(jī)(the electr
14、onic numberical intergrator and computer)的縮寫。它使用了17468個(gè)真空電子管,耗電174千瓦,占地170平方米,重達(dá)30噸,每秒鐘可進(jìn)行5000次加法運(yùn)算。eniac誕生后短短的幾十年間,計(jì)算機(jī)的發(fā)展突飛猛進(jìn)。主要電子器件相繼使用了真空電子管,晶體管,中、小規(guī)模集成電路和大規(guī)模、超大規(guī)模集成電路,引起計(jì)算機(jī)的幾次更新?lián)Q代。每一次更新?lián)Q代都使計(jì)算機(jī)的體積和耗電量大大減小,功能大大增強(qiáng),應(yīng)用領(lǐng)域進(jìn)一步拓寬。特別是體積小、價(jià)格低、功能強(qiáng)的微型計(jì)算機(jī)的出現(xiàn),使得計(jì)算機(jī)迅速普及,進(jìn)入了辦公室和家庭,在辦公室自動化和多媒體應(yīng)用方面發(fā)揮了很大的作用。目前,計(jì)算機(jī)的
15、應(yīng)用已擴(kuò)展到社會的各個(gè)領(lǐng)域。可將計(jì)算機(jī)的發(fā)展過程分成以下幾個(gè)階段:第一代為電子管計(jì)算機(jī);第二代為晶體管計(jì)算機(jī);第三代為中小規(guī)模集成電路計(jì)算機(jī);第四代為大規(guī)模、超大規(guī)模集成電路計(jì)算機(jī);第五代為巨大規(guī)模集成電路新一代計(jì)算機(jī)(1990年至現(xiàn)在)。 四代機(jī)出現(xiàn)以后,日、美、歐等從20世紀(jì)80年代開始,積極開展新一代計(jì)算機(jī)的研究,但由于對新一代計(jì)算機(jī)的過高期望,使得至今仍未有突破性進(jìn)展,還沒有哪一種計(jì)算機(jī)被人們公認(rèn)為新一代計(jì)算機(jī)的典型代表。當(dāng)前,人們在改進(jìn)計(jì)算機(jī)芯片制造工藝的同時(shí),大力研究新型計(jì)算機(jī)元件。光子元件、超導(dǎo)元件、生物電子元件、神經(jīng)網(wǎng)絡(luò)系統(tǒng)等研究已見端倪,新一代計(jì)算機(jī)的曙光已經(jīng)出現(xiàn)。目前,計(jì)算
16、機(jī)技術(shù)正朝著微型化、巨型化、網(wǎng)絡(luò)化、智能化、多媒體化等方向發(fā)展。 而模型計(jì)算機(jī)是將計(jì)算機(jī)的簡化,實(shí)現(xiàn)相同功能,在理解和研究方面更方便,更快捷,由此更受到界內(nèi)人士的好評。模型計(jì)算機(jī)的研究仍在發(fā)展當(dāng)中,國內(nèi)外還沒有太多的資料結(jié)果顯示,本課題就是模型計(jì)算機(jī)的具體內(nèi)部構(gòu)造,實(shí)現(xiàn)各部分部件功能,了解其工作原理。模型計(jì)算機(jī)有著重要的發(fā)展地位,在今后幾年會成為研究的重點(diǎn),同樣是發(fā)展計(jì)算機(jī)性能的重要途徑。2 基于vhdl編程的基礎(chǔ)知識2.1 vhdl語言概述vhdl(very high speed integrated circuit hardware description language)即超高速集成電
17、路硬件描述語言。美國國防部在20世紀(jì)80年代初為其超高速集成電路vhsic計(jì)劃提出的硬件描述語言,它是硬件設(shè)計(jì)者和eda工具之間的界面。設(shè)計(jì)者使用hdl來描述自己的設(shè)計(jì),并把這個(gè)描述告訴eda工具,最后在eda工具的幫助下進(jìn)行詳細(xì)地設(shè)計(jì)及驗(yàn)證。硬件描述語言發(fā)展至今已有幾十年的歷史,并已成功地應(yīng)用到系統(tǒng)的仿真、驗(yàn)證和設(shè)計(jì)、綜合等方面。目前常用的硬件描述語言有ahdl、abel、vhdl、verilog hdl等等。20世紀(jì)80年代后期,美國國防部開發(fā)的vhdl語言是ieee標(biāo)準(zhǔn)化的硬件描述語言,并且已經(jīng)成為系統(tǒng)描述的國際公認(rèn)標(biāo)準(zhǔn),得到眾多eda公司的支持。vhdl語言覆蓋面廣,描述能力強(qiáng),能支持
18、硬件的設(shè)計(jì)、驗(yàn)證、綜合和測試,是一種多層次的硬件描述語言。其設(shè)計(jì)描述可以是描述電路具體組成的結(jié)構(gòu)描述,也可以是描述電路功能的行為描述。這些描述可以從最抽象的系統(tǒng)級直到最精確的邏輯級,甚至門級。運(yùn)用vhdl語言設(shè)計(jì)系統(tǒng)一般采用自頂向下分層設(shè)計(jì)的方法,首先從系統(tǒng)級功能設(shè)計(jì)開始,對系統(tǒng)高層模塊進(jìn)行行為描述和功能仿真。系統(tǒng)的功能驗(yàn)證完成后,將抽象的高層設(shè)計(jì)自頂向下逐級細(xì)化,直到與所用可編程邏輯器件相對應(yīng)的邏輯描述。vhdl語言還可以描述與工藝有關(guān)的信息,工藝參數(shù)可以通過設(shè)計(jì)文件語言參數(shù)來調(diào)整,不會因工藝變化與發(fā)展而使vhdl設(shè)計(jì)過時(shí)。因此,vhdl設(shè)計(jì)的生命周期與其他設(shè)計(jì)方法相比是最長的。vhdl的特
19、點(diǎn): 功能強(qiáng)大,描述力強(qiáng)。 可移植性好。 研制周期短,成本低。 可以延長設(shè)計(jì)的生命周期。 具有向asic移植的能力。2.2 vhdl的設(shè)計(jì)流程1. 本課題采用的設(shè)計(jì)流程采用vhdl設(shè)計(jì)硬件電路系統(tǒng)的設(shè)計(jì)流程一般可以分為以下幾個(gè)步驟。(1)確定電路具體功能。通常情況下,開發(fā)前期先設(shè)計(jì)總體方案,但總體放啊相對比較抽象,使用vhdl的設(shè)計(jì)人員必須分析電路所要實(shí)現(xiàn)的具體功能。(2)設(shè)計(jì)輸入。利用自頂向下的方法,將設(shè)計(jì)劃分為不同的功能模塊。每個(gè)模塊完成一定的邏輯功能。模塊劃分是設(shè)計(jì)過程中的一個(gè)重要環(huán)節(jié),這一步要花費(fèi)較多的時(shí)間和精力完成,從而保證整體最優(yōu)。(3)功能仿真。在功能仿真階段主要對所設(shè)計(jì)的電路進(jìn)
20、行功能驗(yàn)證,通過功能仿真,發(fā)現(xiàn)設(shè)計(jì)存在的缺陷。例如,輸入輸出是否有矛盾,有無未加處理的輸入信號,是否允許使能等。通過功能仿真,在設(shè)計(jì)前期糾正缺陷和錯(cuò)誤,可以節(jié)省后期的時(shí)間,縮短整體開發(fā)周期。2. vhdl的程序結(jié)構(gòu) 實(shí)體和結(jié)構(gòu)體是vhdl設(shè)計(jì)文件的兩個(gè)基本組成部分。實(shí)體描述設(shè)計(jì)系統(tǒng)的外部接口信號;結(jié)構(gòu)體用于描述系統(tǒng)的行為、系統(tǒng)數(shù)據(jù)的流程或者系統(tǒng)組織結(jié)構(gòu)形式(即系統(tǒng)的內(nèi)部電路)。配置用于從庫中選取所需元件安裝到設(shè)計(jì)單元的實(shí)體中。包集合存放各設(shè)計(jì)模塊能共享的數(shù)據(jù)類型、常數(shù)、子程序等。庫用于存放已編譯的實(shí)體、結(jié)構(gòu)體、包集合和配置。3. vhdl源文件基本格式 library 庫名; 庫 use 庫名
21、.程序包名.; 程序包 entity 實(shí)體名 is實(shí)體 port(); end 實(shí)體名; architecture 結(jié)構(gòu)體名 of 實(shí)體名結(jié)構(gòu)體 () end 結(jié)構(gòu)體名; 2.3 有關(guān)quartus ii 的介紹quartus ii是altera公司在21世紀(jì)初推出的cpld/fpga集成開發(fā)環(huán)境,它是該公司前一代cpld/fpga集成開發(fā)環(huán)境max+pus ii的更新?lián)Q代產(chǎn)品。quartus ii提供了一種與結(jié)構(gòu)無關(guān)的設(shè)計(jì)環(huán)境,其界面友好,使設(shè)計(jì)者能方便地進(jìn)行設(shè)計(jì)輸入、快速處理和器件編程。quartus ii提供了完整的多平臺設(shè)計(jì)環(huán)境,能滿足各種特定設(shè)計(jì)的需要。quartus ii是單片可編
22、程系統(tǒng)(sopc)設(shè)計(jì)的綜合性環(huán)境和sopc開發(fā)的基本設(shè)計(jì)工具;quartus ii與matlab和dsp builder結(jié)合,可以進(jìn)行基于fpga的dsp系統(tǒng)開發(fā),是dsp硬件系統(tǒng)實(shí)現(xiàn)的關(guān)鍵eda工具。quartus ii可以直接利用第三方的綜合工具,如leonardo spectrum,并能直接調(diào)用這些工具。quartus ii具備仿真功能,同時(shí)也支持第三方的仿真工具,如modelsim。 quartus ii包括模塊化的編譯器,在對設(shè)計(jì)進(jìn)行處理時(shí)可以進(jìn)行全編譯,也可以單獨(dú)運(yùn)行其中的某個(gè)功能模塊。quartus ii還包含許多十分有用的lpm模塊,它們是復(fù)雜或高級系統(tǒng)構(gòu)建的重要組成部分。軟
23、件加強(qiáng)了網(wǎng)絡(luò)功能,它具有最新的internet技術(shù),設(shè)計(jì)人員可以直接通過internet獲得altera的技術(shù)支持。altera與業(yè)界處于領(lǐng)先地位的eda工具廠商組成access聯(lián)盟,確保了altera eda工具與這些支持altera器件的eda工具之間順暢接口。altera致力于提供電路設(shè)計(jì)人員都非常熟悉的邏輯開發(fā)環(huán)境。altera的新一代開發(fā)軟件quartus ii支持器件種類眾多,如apex20k,cyclone,apex ii,excalibur,mercury以及stratix等新器件系列。quartus ii支持多時(shí)鐘定時(shí)分析、logiclock基于塊的設(shè)計(jì)、sopc、內(nèi)嵌sig
24、naltap ii邏輯分析儀、功率估計(jì)器等高級工具。quartus ii包含有max+plus ii的gui,且易于max+plus ii的工程平穩(wěn)地過渡到quartus ii開發(fā)環(huán)境。本課題采用文本方式輸入實(shí)現(xiàn):1.建立工程文件2.vhdl語言輸入(1) 建立文件。單擊“file”菜單下的“new”命令或者使用快捷鍵ctrl+n,彈出“new”對話框。在“device design files”頁面下雙擊“vhdl file”選項(xiàng)(或選中該項(xiàng)后單擊“ok”按鈕)后建立新文件。 (2)輸入程序。在程序編輯區(qū)內(nèi)編寫程序。 (3)保存文件。單擊保存文件按鈕,彈出對話框?qū)⑤斎氲膙hdl語言程序保存為
25、vhd文件,注意后綴名是.vhd,名字與實(shí)體名相同,單擊“保存”按鈕即可保存文件。 (4)編譯工程。單擊水平工具條上的編譯按鈕或選擇菜單processing下的start complilation,開始編譯,并伴隨著進(jìn)度不斷地變化,編譯完成后出現(xiàn)信息窗口。如果編譯過程出現(xiàn)錯(cuò)誤,要將錯(cuò)誤改正,保存后再次編譯,直到編譯無錯(cuò)誤為止。 3.仿真設(shè)計(jì)設(shè)計(jì)仿真的目的就是在軟件環(huán)境下,驗(yàn)證電路的行為和思想是否一致。仿真分為功能仿真和時(shí)序仿真。功能仿真是在設(shè)計(jì)輸入之后,綜合和布局布線之前的仿真,不考慮電路的邏輯和門電路的時(shí)間延時(shí),著重考慮電路在理想環(huán)境下的行為和預(yù)期設(shè)計(jì)效果的一致性。時(shí)序仿真是在綜合、布局布線
26、后,也即電路已經(jīng)映射到特定的工藝環(huán)境后,考慮器件延時(shí)的情況下對布局布線的網(wǎng)絡(luò)表文件進(jìn)行的一種仿真,其中器件延時(shí)信息通過反向標(biāo)注時(shí)序延時(shí)信息實(shí)現(xiàn)的。 (1)仿真文件的生成。 1)建立矢量波形文件。單擊“file”菜單下的“new”命令,在彈出的“new”對話框中選擇“other files”頁面,選擇“vector waveform file”后單擊“ok”按鈕,彈出矢量波形編輯窗口。 2)添加引腳或節(jié)點(diǎn)。左鍵雙擊“name”下方空白處,彈出“insert node or bus”對話框。單擊對話框“node finder”按鈕后,彈出“node finder”對話框,在“filter”后面的方
27、框里選擇“pin:all”,然后單擊“l(fā)ist”按鈕,在“node found”欄中列出了設(shè)計(jì)中的所有的輸入/輸出引腳號,選擇需要的引腳。3) 編輯輸入信號并保存文件。 (2)功能仿真。功能仿真是忽略延時(shí)的仿真,是理想的仿真。接下來我們一起來進(jìn)行設(shè)計(jì)的功能仿真。首先單擊“assignments”菜單下的“settings”命令,單擊左側(cè)標(biāo)題欄中的“simulator”選項(xiàng)后,在右側(cè)的“simulation mode”的下拉菜單中選擇“functional”選項(xiàng)即可(軟件默認(rèn)的是“timing”選項(xiàng)),單擊“ok”按鈕后完成設(shè)置。后需要生成功能仿真網(wǎng)絡(luò)表。單擊“processing”菜單下的“g
28、enerate functional netlist”命令后會自動創(chuàng)建功能仿真網(wǎng)絡(luò)表。 2.4 本課題基于quartus ii的設(shè)計(jì)流程圖2.1 8位模型計(jì)算機(jī)的設(shè)計(jì)流程3 基于vhdl8位模型機(jī)的原理與設(shè)計(jì)3.1 模型計(jì)算機(jī)的原理所謂模型計(jì)算機(jī)就是一計(jì)算機(jī)實(shí)際結(jié)構(gòu)為基礎(chǔ),將其簡化,能對輸入的信息進(jìn)行處理運(yùn)算,更便于分析設(shè)計(jì)。隨著微電子技術(shù)的進(jìn)步,現(xiàn)代計(jì)算機(jī)主要由運(yùn)算器,控制器,存儲器,輸入設(shè)備,輸出設(shè)備五大部分組成。計(jì)算機(jī)能完成用戶要求是按照提前設(shè)計(jì)好的指令進(jìn)行的,指令是計(jì)算機(jī)執(zhí)行具體操作的命令。一條指令就是機(jī)器語言的一個(gè)語句,用它來說明機(jī)器硬件應(yīng)完成什么樣的基本操作。在本課題中把模型機(jī)劃分
29、了十個(gè)模塊分別是存儲器,時(shí)鐘信號源,節(jié)拍發(fā)生器,操作控制器,程序計(jì)數(shù)器,地址寄存器,累加器,算術(shù)邏輯單元,指令寄存器和指令譯碼器。讓預(yù)設(shè)指令在這些部件中按順序執(zhí)行達(dá)到預(yù)期目的。計(jì)算機(jī)執(zhí)行一條指令分為三步進(jìn)行:第1步是取指令,將要執(zhí)行的指令從內(nèi)存取到控制器中;第2步是分析指令,對所取的指令通過譯碼器進(jìn)行分析判斷,判斷該指令要完成的操作;第3步是執(zhí)行指令,根據(jù)分析結(jié)果向各部件發(fā)出操作信息,執(zhí)行該指令相應(yīng)的操作功能。3.2 模型機(jī)的總體設(shè)計(jì)要求 要設(shè)計(jì)一個(gè)模型計(jì)算機(jī),它由十個(gè)功能部件組成,具體是存儲器,時(shí)鐘信號源,節(jié)拍發(fā)生器,操作控制器,程序計(jì)數(shù)器,地址寄存器,累加器,算術(shù)邏輯單元,指令寄存器和指令
30、譯碼器。設(shè)計(jì)要求為: 1)總線結(jié)構(gòu):單總線,數(shù)據(jù)總線位數(shù)8位,地址總線3位 2)存儲器:存儲容量5*8位 3)操作控制器:實(shí)現(xiàn)指令操作碼所需的操作控制信號 4)運(yùn)算器:一個(gè)累加器,實(shí)現(xiàn)加法操作 5)指令系統(tǒng)規(guī)模:3指令3.3 模型機(jī)邏輯框圖的設(shè)計(jì) 圖3.1 8位模型機(jī)邏輯框圖3.3 模型機(jī)的指令系統(tǒng)設(shè)計(jì) 模型計(jì)算機(jī)可完成兩個(gè)立即數(shù)相加,并將相加結(jié)果送入累加器。指令系統(tǒng)規(guī)模為3條指令,為了方便描述以“6+0”為例,設(shè)計(jì)3條指令,具體如下: 1)ld a ,6 ;a6,把6送入累加器a,操作碼是00111110; 2)add a,0 ;aa+0,把a(bǔ)中6與0相加,結(jié)果送入累加器a,操作碼是1100
31、0110; 3)halt ;運(yùn)算完畢,停機(jī),操作碼是01110110;3.4 模型機(jī)的指令執(zhí)行流程設(shè)計(jì) 根據(jù)模型機(jī)的結(jié)構(gòu)框圖,可設(shè)計(jì)指令系統(tǒng)中每條指令的執(zhí)行流程。一條指令從主存中取出到執(zhí)行完,需要若干個(gè)機(jī)器周期,任何指令的第一個(gè)機(jī)器周期都是“取指令周期”,一條指令一共需要幾個(gè)機(jī)器周期,取決于指令在機(jī)內(nèi)實(shí)現(xiàn)的復(fù)雜程度。本模型機(jī)的指令流程如下: 1)第一條指令ld a ,6 ;將立即數(shù)6送入a。 t0:(pc)marabus,imar=0 t1:dbusdr,idr=1 t2:(pc)+1pc,ipc=1 (dr)ir,iir=0,ld=1 t3:(pc)marabus,imar=0 t4:dbu
32、sdr,idr=1 t5:(pc)+1pc,ipc=1 t6:dbusa,ia=0 t7:空 2)第二條指令add a,0 ;把a(bǔ)中6與立即數(shù)0相加,結(jié)果6送入累加器a。 t0:(pc)marabus,imar=0 t1:dbusdr,idr=1 t2:(pc)+1pc,ipc=1 (dr)ir,iir=0,add=1 t3:(pc)marabus,imar=0 t4:dbusdr,idr=1 t5:(pc)+1pc,ipc=1 a+0sr,isum=0 t6:srdbus,esum=0 dbusa,ia=0,edr=1 t7:空 3)第三條指令halt ;運(yùn)算完畢,停機(jī)。 t0:(pc)ma
33、rabus,imar=0 t1:dbusdr,idr=1 t2:(pc)+1pc,ipc=1 (dr)ir,iir=0,halt=13.5 基于vhdl8位模型機(jī)各模塊的設(shè)計(jì)與實(shí)現(xiàn)3.5.1 算術(shù)邏輯單元alu模塊 說明:此模塊用于實(shí)現(xiàn)加法運(yùn)算 1.邏輯框圖 圖3.2 算術(shù)邏輯運(yùn)算單元程序流程圖 說明:alu功能部件,有兩個(gè)控制信號,分別是加法運(yùn)算控制信號isum和輸出控制信號esum,當(dāng)isum=0時(shí),在clk作用下將兩數(shù)相加,當(dāng)輸出控制命令esum=0時(shí),將相加結(jié)果讀入到內(nèi)部數(shù)據(jù)總線上。 2.vhdl源程序設(shè)計(jì) library ieee;use ieee.std_logic_1164.al
34、l;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity alu is port(ac,dr:in std_logic_vector(7 downto 0); isum:in std_logic; esum:in std_logic; alu_out:out std_logic_vector(7 downto 0); ); end alu; architecture a of alu is signal:alu_temp:std_logic_vector(7 downto 0); begin alu_temp=a
35、c+dr when isum =0; alu_out=alu_temp; end a; 3.alu模塊仿真波形圖3.3 alu功能仿真 波形分析:兩個(gè)輸入信號ac,dr,一個(gè)輸出信號alu_out和兩個(gè)控制命令信號isum,esum 。在仿真設(shè)置中將ac值設(shè)為從00000000逐一遞增到11111111,而dr值為了方便觀察設(shè)為00000000,兩個(gè)控制命令信號全部設(shè)為0即即時(shí)相加即時(shí)輸出,運(yùn)行后如圖所示,輸出結(jié)果也是從00000000到11111111由于截圖大小有限只截到00001000,功能仿真成功。3.5.2 累加器模塊 說明:實(shí)現(xiàn)8位模型機(jī)的累加器 1.邏輯框圖 圖3.4 累加器ac
36、c程序流程圖 說明:設(shè)置一個(gè)中間信號regq,輸入信號是data_in,輸出信號時(shí)data_out,兩個(gè)控制信號分別是ia輸入控制信號和ea輸出控制信號。當(dāng)輸入控制信號ia=0時(shí),將輸入數(shù)據(jù)data_in存入到regq中,當(dāng)輸出控制信號ea=0是將以存到regq中的輸入數(shù)據(jù)賦與輸出數(shù)據(jù)data_out輸出。 2.vhdl源程序設(shè)計(jì)library ieee;use ieee.std_logic_1164.all;entity acc is port(data_in:in std_logic_vector(7 downto 0); ia:in std_logic; ea:in std_logic;
37、 clk:in std_logic; data_out:out std_logic_vector(7 downto 0);end acc;architecture a of acc issignal regq:std_logic_vector(7 downto 0);begin process(ia,ea,clk) begin if(clkevent and clk=1) then if(ia=0) then regq=data_in; end if; end if; end process; data_out= regq when ea=0 else zzzzzzzz end a; 3.ac
38、c模塊仿真波形 圖3.5 acc功能仿真 波形分析:clk周期為10ns,當(dāng)時(shí)鐘發(fā)生且為上升沿的時(shí)候,輸入控功能制信號ia=0時(shí),實(shí)現(xiàn)輸入,把輸入數(shù)據(jù)設(shè)置成從00000000到11111111依次遞增1,輸出信號始終為0來輸出輸入數(shù)據(jù)如圖3.5可見,當(dāng)ia=0輸入數(shù)據(jù),輸出=輸入,當(dāng)ia=1數(shù)據(jù)沒有被輸入,出輸出仍為上次輸入,所以輸出為00000000,00000010,00000100.由仿真波形可知,acc模塊設(shè)計(jì)功能成功實(shí)現(xiàn)。3.5.3 控制器模塊 說明:控制模塊根據(jù)指令操作碼和時(shí)序信號,產(chǎn)生各種操作控制信號 1.邏輯框圖 圖3.6 控制器ctrl程序流程圖 說明:輸入信號為三個(gè)操作指令
39、信號ld,add,halt和t0-t7八個(gè)節(jié)拍脈沖及一個(gè)時(shí)鐘信號clk,輸出為九個(gè)控制信號。當(dāng)halt=1時(shí)ipc=0和esum=0,當(dāng)halt=0時(shí),9個(gè)控制信號別根據(jù)不同的節(jié)拍發(fā)生有不同的取值來執(zhí)行各自控制功能。 2.vhdl源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ctrl is potr(ld,add,halt: in std_logic; clk: in std_logic; t0,t1,t2,t3,t4
40、,t5,t6,t7:in std_logic; ipc,imar,idr,edr,ia,ea,isum,esum,iir: out std_logic;);end entity;architecture a of ctrl isbegin process(ld,add,halt) begin if (halt=1) then ipc=0; esum=0; else imar=not(t0 or (t3 and ld)or (t3 and add); iir=not t2; ia=not(t6 and ld)or(t6 and add ); idr=t1 or(t4 and ld) or (t4
41、 and add); ipc=t2 or (t5 and ld) or (t5 and add); isum=not (t5 and add); esum=not(t6 and add); ea=not (t7 and add); edr=(t6 an add) or (t7 and add); end if; end process;end a; 3.控制器模塊仿真波形圖3.7 控制器ctrl功能仿真 波形分析:add,ld,t0-t7波形設(shè)置為0,1交替,halt先為10ns的高電平之后皆為低電平,運(yùn)行后結(jié)果如圖3.7所示,根據(jù)公式 imar=not(t0 or (t3 and ld)or
42、 (t3 and add); iir=not t2; ia=not(t6 and ld)or(t6 and add ); idr=t1 or(t4 and ld) or (t4 and add); ipc=t2 or (t5 and ld) or (t5 and add); isum=not (t5 and add); esum=not(t6 and add); ea=not (t7 and add); edr=(t6 and add) or (t7 and add);可驗(yàn)證波行無誤,ctrl模塊功能設(shè)計(jì)成功。3.5.4 節(jié)拍發(fā)生器 說明:用于產(chǎn)生t0-t7的8個(gè)節(jié)拍脈沖信號,是模型機(jī)按此節(jié)拍
43、有序的工作 1.邏輯框圖 圖3.8 節(jié)拍發(fā)生器程序流程圖 說明:輸入信號位clr和clk,當(dāng)clr=0時(shí)賦初值,否則當(dāng)clk上升沿到來時(shí)進(jìn)行環(huán)形移位,以實(shí)現(xiàn)節(jié)拍發(fā)生器功能。 2. vhdl源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entuty counter isport(clk,clr:in std_logic; t0,t1,t2,t3,t4,t5,t6,t7:out_logic);end counter;architectu
44、re a of counter issignal temp:std_logic_vector(7 downto 0);begin t0=temp(0); t1=temp(1); t2=temp(2); t3=temp(3); t4=temp(4); t5=temp(5); t6=temp(6); t7=temp(7); process(clkclr) beginif(clr=0)then temp(0)=1; temp(1)=0; temp(2)=0; temp(3)=0; temp(4)=0; temp(5)=0; temp(6)=0; temp(7)=0; elsif(clkevent a
45、nd clk=1)then 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); end if; end process;end a; 3.節(jié)拍發(fā)生器仿真波形圖3.9 節(jié)拍發(fā)生器仿真波形圖 波形分析:根據(jù)輸入的時(shí)鐘信號以8個(gè)時(shí)鐘周期為一個(gè)大周期發(fā)生一個(gè)節(jié)拍脈沖,從t0到t7依次循環(huán)發(fā)生,結(jié)果如圖3.9所示,節(jié)拍發(fā)生器模塊功能設(shè)計(jì)成功。3.5.5 指令寄存器模塊ir和指令譯碼器 說
46、明:指令寄存器ir用來保存當(dāng)前正在執(zhí)行的一條指令,如果是操作碼就送到指令譯碼器進(jìn)行譯碼。 1.邏輯框圖圖3.10 指令寄存器模塊程序流程圖 說明:當(dāng)執(zhí)行一條指令時(shí),先把它從主存儲器中取到數(shù)據(jù)寄存器中,然后在傳送到指令寄存器。如果ir中儲存的是操作碼ld00111110,add11100110,halt01110110,譯碼器就將操作碼譯成相應(yīng)的操作指令ld,add,halt。 2.vhdl源程序library ieee;use ieee.std_logic_1164.all;entity ir isport(data_in:in std_logic_vector(7 downto 0); ii
47、r:in std_logic; clk:in std_logic; ld,add.halt:out std_logic);end ir;architecture a of ir issignal regq:std_logic_vector(7 ownto 0);begin process(clk,iir) beginif(clkevent and clk=1)then if(iir=0)then regqld=1;add=0;haltld=0;add=1;haltld=0;add=0;haltnull; end case; end process;end a; 3. 指令寄存器模塊波形仿真 圖
48、3.11 指令寄存器功能仿真 波形分析:當(dāng)iir=0時(shí),輸入操作碼,并對其進(jìn)行判斷,當(dāng)操作碼為某個(gè)指令時(shí),該指令輸出。當(dāng)執(zhí)行一條指令時(shí),先把它從主存儲器中取到數(shù)據(jù)寄存器中,然后在傳送到指令寄存器。如果ir中儲存的是操作碼ld00111110,add11100110,halt01110110,譯碼器就將操作碼譯成相應(yīng)的操作指令ld,add,halt。在此仿真圖中為了清晰其功能把data_in設(shè)置成00111110,11100110,01110110,循環(huán),仿真結(jié)果如圖3.11所示add,ld,halt依次使能,證明此功能模塊設(shè)計(jì)成功。3.5.6 時(shí)鐘產(chǎn)生器 說明:用來產(chǎn)生固定頻率的方波脈沖。 1
49、.邏輯框圖圖3.12 時(shí)鐘產(chǎn)生器模塊程序流程圖 說明:用于產(chǎn)生固定頻率的方波,時(shí)鐘周期為0.2s,設(shè)置counter值從0到25000000依次按clk周期順次加一得以實(shí)現(xiàn),如此循環(huán)。 2.vhdl源程序library ieee;use ieee.std_logic_1164.all;entity clk_source is port(clk_50m:in std_logic; clk:out std_logic);end entity;architecture a of clk_source issignal clk_temp:std_logic;begin clk=clk_temp; pr
50、ocess(clk_50m,clk_temp) variable counter:integer range 0 to 25000000; begin if(counter=25000000)then counter:=0; clk_temp=not clk_temp; elsif(clk_50mevent and clk_50m=1)then counter:=counter+1; end if; end process;end a; 3.時(shí)鐘產(chǎn)生器模塊仿真波形圖3.13 時(shí)鐘產(chǎn)生器功能仿真 波形分析:輸入信號clk_50m時(shí)鐘頻率為50mhz即周期為20ns,在每個(gè)時(shí)鐘上升沿是counte
51、r值自動加1,在達(dá)到25000000時(shí)歸零重計(jì),如此循環(huán)產(chǎn)生0.2s的固定周期,顯示波形如圖3.13所示。3.5.7 程序計(jì)數(shù)器模塊 說明:用于確定下一條指令的地址。 1.邏輯框圖圖3.14 程序計(jì)數(shù)器模塊程序流程圖 說明:程序計(jì)數(shù)器的作用是確定下一條指令的地址。由于模型計(jì)算機(jī)只有5個(gè)字節(jié)的機(jī)器碼,所以程序計(jì)數(shù)器pc的輸出只使用3位,當(dāng)ipc=0時(shí),計(jì)數(shù)器保持原狀態(tài);ipc=1時(shí),計(jì)數(shù)器處于計(jì)數(shù)狀態(tài),當(dāng)時(shí)鐘信號clk上升沿到來時(shí),做加1運(yùn)算。 2.vhdl源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity pc isport( ipc,clk,clr:in std_logic; pcout:out std_logic_vector(2 downto 0);end pc;architecture a of pc issignal qout:std_logic_vector(2 downto 0);beginpr
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 西安罐體機(jī)房保溫施工方案
- 二零二五年度個(gè)人與個(gè)人間家政服務(wù)合同范本3篇
- 太原瀝青路面施工方案
- 2025版消防電梯安全設(shè)施安裝與維護(hù)承包合同范本3篇
- 二零二五年度高品質(zhì)貼鋁箔巖棉板采購與節(jié)能檢測服務(wù)合同3篇
- 酒泉消防電氣檢測施工方案
- 二零二五年度個(gè)人與個(gè)人間藝術(shù)品購買借款合同
- 二零二五年度金融糾紛訴訟保全擔(dān)保合同大全3篇
- 2025版選礦廠承包合同及礦山安全生產(chǎn)技術(shù)服務(wù)協(xié)議3篇
- 預(yù)制塑料梯形槽施工方案
- 廣西華銀鋁業(yè)財(cái)務(wù)分析報(bào)告
- 無違法犯罪記錄證明申請表(個(gè)人)
- 電捕焦油器火災(zāi)爆炸事故分析
- 大學(xué)生勞動教育PPT完整全套教學(xué)課件
- 繼電保護(hù)原理應(yīng)用及配置課件
- 《殺死一只知更鳥》讀書分享PPT
- 蓋洛普Q12解讀和實(shí)施完整版
- 2023年Web前端技術(shù)試題
- 品牌策劃與推廣-項(xiàng)目5-品牌推廣課件
- DB31T 685-2019 養(yǎng)老機(jī)構(gòu)設(shè)施與服務(wù)要求
- 燕子山風(fēng)電場項(xiàng)目安全預(yù)評價(jià)報(bào)告
評論
0/150
提交評論