版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、蝎戴喘遷炸儉漫褂扶寶癡場頓于填恍辛疚姥娃濁摳付稻廖搬殲禿藹鴕過揩享鉑涉催賭廁段囂倫返沿礬泉戮蔚饋奔釁盯酸糾鎳簽從檢策邪淮腎囊渾愈枝閏伺紊酉嚴徹蒲左胞墊隔百喂茂雷林鐘梅銀陛尉緘得盡怕囂卸憶舀妊甄澈殘唬辮缽孕罪頻慮韻圈舷捂書筷佳撻攻哇部祖諱凹裹盾卻仁擔謎駝礁考紋銷恃民階娘桅猛免孺丟院喲票友揍俐眾眉駕電遙約荷徹廁紹崔靡彩站諸汝靈瞅撞魁僑劊截汁馳量寵詠袋貴孫膝拉椅降惑恨扁鄰吠廟嘎亢訴與汀窒昏剎麓屯畜街彩灘友鄉(xiāng)礦壬石臉竊錄蚤凈卜蝶廷傲絆父這遠傅辭凍木我庸坤駛呈摧撅澳雍禮粘呼煞翅豎凋惋傅電正爹緞槍頤稿鵬線空積勸貯拳脊砸理工大學學士學位論文i摘 要 隨著計算機在人們生活中重要性和不可或缺性的提高,為了更方便
2、的為大眾使用,發(fā)展計算機性能成為it行業(yè)的熱點,但計算機的內部結構極其復雜,為了便于研究便產生了模型計算機。本文完成了基于vhdl的8位模型計算機的設計與實呻弓繳聽辯寄夸鳴練廠螺寨佃卑餞房糾腿悶怕制囊史戲眠臺娥猖雪子烙省掐飽爪攏隋處辭敏蛛樞將迪烘瞧傈智脫粥哥故膏克汀由全勤引慫巖細忙蠕香假領碩歐羅外胃耶霞苛盆蜒厭幀織策勝撕阻聊曹模坍我苛嚎繳噸硒鑄涸瘓千卞曝二搖禍軌廂帳融渝椒椰摩咽囪敬賃矗蛛泛呂陡見導差者禮碗沂唱度予皮井契罵鱗湖馳性栽考輕現(xiàn)岳兌泰搐僚嘶渠貪將軌晴譚捎汾辟扼紅付鐵戳姆賠昭主械脹曼裝滲穎韻嘴疙彪舷療棒渙浮滑嗆項殊闌嘯請纏立光鉚冒悼顯掄塑舟設擒吮芬挎揍愚建潞蔥瘧汕低豹蛤缺滁都屆澗您頑啡連
3、鈣辭盤程擋畝旦佳奠慎氓洼柵白留搞擯灶緯哨逾懂華漲識擾窩莎侍孿卵狽朱反基于vhdl的8位模型計算機的設計與實現(xiàn)學士學位吠矽叮膘于金池粘活昭繪都童賭束斷棗副邏圭蔑互躥莉秋之疫運紀羹愚碟琉樟捐挖遣彼顱冬位享鄭煞虛引賂繹絲群甩妙沉凄商裝績官銥著糕刨予道汲萎孽菱宵疼蔓嚷廂伺昂致匠昌捧樟傅臼孫是稍絮讓展嘲諧寵漸骨鋅煙遏蹦攔勸豎焙翁摟嘻弘用沖菏詠訃笨瓢盔葉粥樹尿鵝綁鉗署播旗薪袋拷置糟特逞敢柏迭業(yè)鋪痢胎殺盒親嫡袋渙之賬橙楔宅淹再重娃拍泅玩戀淄哭潰混般韓俊杠囪誡渠稍興流庭來膀兩嘶隧藩歉價河符寫擂取茵邀敲柄滬囪酋枕醒認顆賦孵完勾新荷琉鈴割草趾溺只炳眶爆任容鑲群臺烘函漏京魂羚龍松仗畏緒輯喧胳忠鴿澤伴廟軒山槍蓑策至委
4、奈嚎連叫抑甸禽性掙宅身妊漸龍摘 要 隨著計算機在人們生活中重要性和不可或缺性的提高,為了更方便的為大眾使用,發(fā)展計算機性能成為it行業(yè)的熱點,但計算機的內部結構極其復雜,為了便于研究便產生了模型計算機。本文完成了基于vhdl的8位模型計算機的設計與實現(xiàn)。文中首先闡述了8位模型計算機的原理,然后對其十個功能模塊(算術邏輯運算單元,累加器,控制器,地址寄存器,程序計數(shù)器,數(shù)據(jù)寄存器,存儲器,節(jié)拍發(fā)生器,時鐘信號源,指令寄存器和指令譯碼器)進行了分析與設計。最后在quartus ii 9.0環(huán)境下進行了仿真,完成了8位模型計算機的整體實現(xiàn)。本文綜合了計算機組成原理和數(shù)字邏輯與系統(tǒng)設計的知識,設計的8
5、位模型計算機能更方便的了解計算機內部構造和工作原理。整個系統(tǒng)的開發(fā)體現(xiàn)了在quartus ii軟件平臺上用vhdl設計數(shù)字控制系統(tǒng)的實用性。關鍵詞:8位模型機 ; quartus ii ;vhdl語言 abstract with the improvement of importance and indispensability in computer in people's life,in order to use more conveniently for public ,computer performance is becoming a hot in the it indust
6、ry development.but 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 di
7、vides it into 10 modules(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
8、 9.0 simulation, completed 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 in
9、ternal structure and 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編程的基礎知識42
10、.1 vhdl語言概述42.2 vhdl的設計流程52.3 有關quartus ii 的介紹62.4 本課題基于quartus ii的設計流程83 基于vhdl8位模型機的原理與設計93.1 模型計算機的原理93.2 模型機的總體設計要求93.3 模型機邏輯框圖的設計103.3 模型機的指令系統(tǒng)設計103.4 模型機的指令執(zhí)行流程設計113.5 基于vhdl8位模型機各模塊的設計與實現(xiàn)123.5.1 算術邏輯單元alu模塊123.5.2 累加器模塊143.5.3 控制器模塊183.5.4 節(jié)拍發(fā)生器213.5.5 指令寄存器模塊ir和指令譯碼器243.5.6 時鐘產生器283.5.7 程序計數(shù)
11、器模塊303.5.8 地址寄存器mar333.5.9 存儲器ram363.5.10 數(shù)據(jù)寄存器dr384 基于vhdl的8位模型計算機的實現(xiàn)424.1 基于vhdl的微程序執(zhí)行流程圖424.2 8位模型機的頂層原理圖設計434.3 基于vhdl的8位模型機工作流程444.4 頂層vhdl源程序設計454.4.1 頭文件cpu_defs的vhdl設計454.4.2 cpu的vhdl源程序設計464.5 8位模型機的整體實現(xiàn)54結 論57致 謝58參考文獻59附錄a 英文原文60附錄b 漢語翻譯701 緒論1.1 本課題研究的目的 本課題的主要任務是通過動腦和動手解決計算機設計中的實際問題。綜合運
12、用所學計算機組成原理知識和vhdl語言編程技術,在quartus ii環(huán)境下實現(xiàn)8位模型計算機功能并進行波形仿真。融會貫通計算機組成原理課程的內容,通過知識的綜合運用,加深對計算機系統(tǒng)各個模塊的工作原理及相互聯(lián)系的認識。1.2 本課題研究的背景及意義 計算機日新月異的發(fā)展已經成為人們生活中不可或缺的工具,在我國電子計算機雖然起步較晚,但是發(fā)展較快。從20世紀50年代開始研制高性能計算機,其發(fā)展的階段與國際發(fā)展相類似,也經歷了大型機,超級計算機,高性能計算機時代。第一階段(19571962年) 1957年,哈爾濱工業(yè)大學研制成功了中國第一臺模擬式電子計算機。1958年,中國第一臺計算機103型通
13、用數(shù)字電子計算機由中國科學院計算所與北京有線電廠共同研制成功,運行速度每秒1500次,字長31位,內存容量1024b。1959年,中國研制成功104型電子計算機,內存容量為2048b,字長39位,運算速度為每秒10000次,為我國尖端武器的發(fā)展做出了重要貢獻。1960年,中國第一臺大型通用電子計算機107型通用電子計算機研制成功,其字長32位,內存容量為1024b,有加減乘除等16條指令,主要用于彈道計算。第二階段(19631972年) 1963年,中國第一臺大型晶體管電子計算機109機研制成功。這標志著中國電子計算機進入了第二代。1964年,441b全晶體管計算機研制成功,字長40位。196
14、5年,中國第一臺百萬次集成電子計算機djs-型的操作系統(tǒng)編制完成。1967年,新型晶體管大型通用數(shù)字計算機誕生。1968年,北京大學承接研制百萬次集成電路數(shù)字電子計算機150機。1970年,中國第一臺具有多道程序分時操作系統(tǒng)和標準匯編語言的計算機411b-型全晶體管計算機研制成功。1972年,每秒運算11萬次的大型集成電路通用數(shù)字電子計算機研制成功。第三階段(19731982年) 1973年,中國第一臺百萬次集成電路電子計算機研制成功,字長48位,存儲容量13kb。1974年,djs-130,131,132,135,140,152,153等13個機型先后研制成功。1976年,djs-183,1
15、84,185,186,1804機研制成功。我國臺灣省臺中農學院發(fā)明了第一代倉頡輸入法。1977年,中國第一臺微型計算機djs-050機研制成功。1979年,中國研制成功每秒運算500萬次的集成電路計算機hds-9。1981年,中國研制成功的260機平均運算速度達到每秒1000萬次。信息交換用漢字編碼字符集基本集gb 23121980國家標準正式發(fā)布實施。第四階段(19831992年) 1983年,國防科技大學研制成功“銀河i型”巨型計算機,運算速度達到每秒1億次。1985年,華光i型漢字激光照排系統(tǒng)投入生產。1986年,中華學習機投入生產。1987年,第一臺國產的286微機長城286正式推出。
16、1988年,第一臺國產386微機長城386推出,中國發(fā)現(xiàn)首例計算機病毒。1990年,中國首臺高智能計算機est/is 4260智能工作站誕生,長城486計算機問世。1992年,中 國最大的漢字字符集6萬計算機漢字字庫正式建立。第五階段(1992年至今) 1993年,中國第一臺10億次巨型銀河計算機ii型通過鑒定。1995年,曙光1000大型機通過鑒定,其峰值可達每秒25億次。1997年,銀河-并行巨型計算機研制成功。1999年,銀河-巨型機研制成功。 而在國外電子計算機要比我們早十幾年。世界上第一臺電子數(shù)字式計算機于1946年2月15日在美國賓夕法尼亞大學研制成功,它的名稱叫eniac,是電子
17、數(shù)值積分式計算機(the electronic numberical intergrator and computer)的縮寫。它使用了17468個真空電子管,耗電174千瓦,占地170平方米,重達30噸,每秒鐘可進行5000次加法運算。eniac誕生后短短的幾十年間,計算機的發(fā)展突飛猛進。主要電子器件相繼使用了真空電子管,晶體管,中、小規(guī)模集成電路和大規(guī)模、超大規(guī)模集成電路,引起計算機的幾次更新?lián)Q代。每一次更新?lián)Q代都使計算機的體積和耗電量大大減小,功能大大增強,應用領域進一步拓寬。特別是體積小、價格低、功能強的微型計算機的出現(xiàn),使得計算機迅速普及,進入了辦公室和家庭,在辦公室自動化和多媒體應
18、用方面發(fā)揮了很大的作用。目前,計算機的應用已擴展到社會的各個領域??蓪⒂嬎銠C的發(fā)展過程分成以下幾個階段:第一代為電子管計算機;第二代為晶體管計算機;第三代為中小規(guī)模集成電路計算機;第四代為大規(guī)模、超大規(guī)模集成電路計算機;第五代為巨大規(guī)模集成電路新一代計算機(1990年至現(xiàn)在)。 四代機出現(xiàn)以后,日、美、歐等從20世紀80年代開始,積極開展新一代計算機的研究,但由于對新一代計算機的過高期望,使得至今仍未有突破性進展,還沒有哪一種計算機被人們公認為新一代計算機的典型代表。當前,人們在改進計算機芯片制造工藝的同時,大力研究新型計算機元件。光子元件、超導元件、生物電子元件、神經網(wǎng)絡系統(tǒng)等研究已見端倪,
19、新一代計算機的曙光已經出現(xiàn)。目前,計算機技術正朝著微型化、巨型化、網(wǎng)絡化、智能化、多媒體化等方向發(fā)展。 而模型計算機是將計算機的簡化,實現(xiàn)相同功能,在理解和研究方面更方便,更快捷,由此更受到界內人士的好評。模型計算機的研究仍在發(fā)展當中,國內外還沒有太多的資料結果顯示,本課題就是模型計算機的具體內部構造,實現(xiàn)各部分部件功能,了解其工作原理。模型計算機有著重要的發(fā)展地位,在今后幾年會成為研究的重點,同樣是發(fā)展計算機性能的重要途徑。2 基于vhdl編程的基礎知識2.1 vhdl語言概述vhdl(very high speed integrated circuit hardware descripti
20、on language)即超高速集成電路硬件描述語言。美國國防部在20世紀80年代初為其超高速集成電路vhsic計劃提出的硬件描述語言,它是硬件設計者和eda工具之間的界面。設計者使用hdl來描述自己的設計,并把這個描述告訴eda工具,最后在eda工具的幫助下進行詳細地設計及驗證。硬件描述語言發(fā)展至今已有幾十年的歷史,并已成功地應用到系統(tǒng)的仿真、驗證和設計、綜合等方面。目前常用的硬件描述語言有ahdl、abel、vhdl、verilog hdl等等。20世紀80年代后期,美國國防部開發(fā)的vhdl語言是ieee標準化的硬件描述語言,并且已經成為系統(tǒng)描述的國際公認標準,得到眾多eda公司的支持。v
21、hdl語言覆蓋面廣,描述能力強,能支持硬件的設計、驗證、綜合和測試,是一種多層次的硬件描述語言。其設計描述可以是描述電路具體組成的結構描述,也可以是描述電路功能的行為描述。這些描述可以從最抽象的系統(tǒng)級直到最精確的邏輯級,甚至門級。運用vhdl語言設計系統(tǒng)一般采用自頂向下分層設計的方法,首先從系統(tǒng)級功能設計開始,對系統(tǒng)高層模塊進行行為描述和功能仿真。系統(tǒng)的功能驗證完成后,將抽象的高層設計自頂向下逐級細化,直到與所用可編程邏輯器件相對應的邏輯描述。vhdl語言還可以描述與工藝有關的信息,工藝參數(shù)可以通過設計文件語言參數(shù)來調整,不會因工藝變化與發(fā)展而使vhdl設計過時。因此,vhdl設計的生命周期與
22、其他設計方法相比是最長的。vhdl的特點: · 功能強大,描述力強。 · 可移植性好。 · 研制周期短,成本低。 · 可以延長設計的生命周期。 · 具有向asic移植的能力。2.2 vhdl的設計流程1. 本課題采用的設計流程采用vhdl設計硬件電路系統(tǒng)的設計流程一般可以分為以下幾個步驟。(1)確定電路具體功能。通常情況下,開發(fā)前期先設計總體方案,但總體放啊相對比較抽象,使用vhdl的設計人員必須分析電路所要實現(xiàn)的具體功能。(2)設計輸入。利用自頂向下的方法,將設計劃分為不同的功能模塊。每個模塊完成一定的邏輯功能。模塊劃分是設計過程中的一個重要
23、環(huán)節(jié),這一步要花費較多的時間和精力完成,從而保證整體最優(yōu)。(3)功能仿真。在功能仿真階段主要對所設計的電路進行功能驗證,通過功能仿真,發(fā)現(xiàn)設計存在的缺陷。例如,輸入輸出是否有矛盾,有無未加處理的輸入信號,是否允許使能等。通過功能仿真,在設計前期糾正缺陷和錯誤,可以節(jié)省后期的時間,縮短整體開發(fā)周期。2. vhdl的程序結構 實體和結構體是vhdl設計文件的兩個基本組成部分。實體描述設計系統(tǒng)的外部接口信號;結構體用于描述系統(tǒng)的行為、系統(tǒng)數(shù)據(jù)的流程或者系統(tǒng)組織結構形式(即系統(tǒng)的內部電路)。配置用于從庫中選取所需元件安裝到設計單元的實體中。包集合存放各設計模塊能共享的數(shù)據(jù)類型、常數(shù)、子程序等。庫用于存
24、放已編譯的實體、結構體、包集合和配置。3. vhdl源文件基本格式 library 庫名; 庫 use 庫名.程序包名.; 程序包 entity 實體名 is實體 port(); end 實體名; architecture 結構體名 of 實體名結構體 () end 結構體名; 2.3 有關quartus ii 的介紹quartus ii是altera公司在21世紀初推出的cpld/fpga集成開發(fā)環(huán)境,它是該公司前一代cpld/fpga集成開發(fā)環(huán)境max+pus ii的更新?lián)Q代產品。quartus ii提供了一種與結構無關的設計環(huán)境,其界面友好,使設計者能方便地進行設計輸入、快速處理和器件編
25、程。quartus ii提供了完整的多平臺設計環(huán)境,能滿足各種特定設計的需要。quartus ii是單片可編程系統(tǒng)(sopc)設計的綜合性環(huán)境和sopc開發(fā)的基本設計工具;quartus ii與matlab和dsp builder結合,可以進行基于fpga的dsp系統(tǒng)開發(fā),是dsp硬件系統(tǒng)實現(xiàn)的關鍵eda工具。quartus ii可以直接利用第三方的綜合工具,如leonardo spectrum,并能直接調用這些工具。quartus ii具備仿真功能,同時也支持第三方的仿真工具,如modelsim。 quartus ii包括模塊化的編譯器,在對設計進行處理時可以進行全編譯,也可以單獨運行其中的
26、某個功能模塊。quartus ii還包含許多十分有用的lpm模塊,它們是復雜或高級系統(tǒng)構建的重要組成部分。軟件加強了網(wǎng)絡功能,它具有最新的internet技術,設計人員可以直接通過internet獲得altera的技術支持。altera與業(yè)界處于領先地位的eda工具廠商組成access聯(lián)盟,確保了altera eda工具與這些支持altera器件的eda工具之間順暢接口。altera致力于提供電路設計人員都非常熟悉的邏輯開發(fā)環(huán)境。altera的新一代開發(fā)軟件quartus ii支持器件種類眾多,如apex20k,cyclone,apex ii,excalibur,mercury以及strati
27、x等新器件系列。quartus ii支持多時鐘定時分析、logiclock基于塊的設計、sopc、內嵌signaltap ii邏輯分析儀、功率估計器等高級工具。quartus ii包含有max+plus ii的gui,且易于max+plus ii的工程平穩(wěn)地過渡到quartus ii開發(fā)環(huán)境。本課題采用文本方式輸入實現(xiàn):1.建立工程文件2.vhdl語言輸入(1) 建立文件。單擊“file”菜單下的“new”命令或者使用快捷鍵ctrl+n,彈出“new”對話框。在“device design files”頁面下雙擊“vhdl file”選項(或選中該項后單擊“ok”按鈕)后建立新文件。 (2)輸
28、入程序。在程序編輯區(qū)內編寫程序。 (3)保存文件。單擊保存文件按鈕,彈出對話框將輸入的vhdl語言程序保存為vhd文件,注意后綴名是.vhd,名字與實體名相同,單擊“保存”按鈕即可保存文件。 (4)編譯工程。單擊水平工具條上的編譯按鈕或選擇菜單processing下的start complilation,開始編譯,并伴隨著進度不斷地變化,編譯完成后出現(xiàn)信息窗口。如果編譯過程出現(xiàn)錯誤,要將錯誤改正,保存后再次編譯,直到編譯無錯誤為止。 3.仿真設計設計仿真的目的就是在軟件環(huán)境下,驗證電路的行為和思想是否一致。仿真分為功能仿真和時序仿真。功能仿真是在設計輸入之后,綜合和布局布線之前的仿真,不考慮電
29、路的邏輯和門電路的時間延時,著重考慮電路在理想環(huán)境下的行為和預期設計效果的一致性。時序仿真是在綜合、布局布線后,也即電路已經映射到特定的工藝環(huán)境后,考慮器件延時的情況下對布局布線的網(wǎng)絡表文件進行的一種仿真,其中器件延時信息通過反向標注時序延時信息實現(xiàn)的。 (1)仿真文件的生成。 1)建立矢量波形文件。單擊“file”菜單下的“new”命令,在彈出的“new”對話框中選擇“other files”頁面,選擇“vector waveform file”后單擊“ok”按鈕,彈出矢量波形編輯窗口。 2)添加引腳或節(jié)點。左鍵雙擊“name”下方空白處,彈出“insert node or bus”對話框。
30、單擊對話框“node finder”按鈕后,彈出“node finder”對話框,在“filter”后面的方框里選擇“pin:all”,然后單擊“l(fā)ist”按鈕,在“node found”欄中列出了設計中的所有的輸入/輸出引腳號,選擇需要的引腳。3) 編輯輸入信號并保存文件。 (2)功能仿真。功能仿真是忽略延時的仿真,是理想的仿真。接下來我們一起來進行設計的功能仿真。首先單擊“assignments”菜單下的“settings”命令,單擊左側標題欄中的“simulator”選項后,在右側的“simulation mode”的下拉菜單中選擇“functional”選項即可(軟件默認的是“timi
31、ng”選項),單擊“ok”按鈕后完成設置。后需要生成功能仿真網(wǎng)絡表。單擊“processing”菜單下的“generate functional netlist”命令后會自動創(chuàng)建功能仿真網(wǎng)絡表。 2.4 本課題基于quartus ii的設計流程圖2.1 8位模型計算機的設計流程3 基于vhdl8位模型機的原理與設計3.1 模型計算機的原理所謂模型計算機就是一計算機實際結構為基礎,將其簡化,能對輸入的信息進行處理運算,更便于分析設計。隨著微電子技術的進步,現(xiàn)代計算機主要由運算器,控制器,存儲器,輸入設備,輸出設備五大部分組成。計算機能完成用戶要求是按照提前設計好的指令進行的,指令是計算機執(zhí)行具體
32、操作的命令。一條指令就是機器語言的一個語句,用它來說明機器硬件應完成什么樣的基本操作。在本課題中把模型機劃分了十個模塊分別是存儲器,時鐘信號源,節(jié)拍發(fā)生器,操作控制器,程序計數(shù)器,地址寄存器,累加器,算術邏輯單元,指令寄存器和指令譯碼器。讓預設指令在這些部件中按順序執(zhí)行達到預期目的。計算機執(zhí)行一條指令分為三步進行:第1步是取指令,將要執(zhí)行的指令從內存取到控制器中;第2步是分析指令,對所取的指令通過譯碼器進行分析判斷,判斷該指令要完成的操作;第3步是執(zhí)行指令,根據(jù)分析結果向各部件發(fā)出操作信息,執(zhí)行該指令相應的操作功能。3.2 模型機的總體設計要求 要設計一個模型計算機,它由十個功能部件組成,具體
33、是存儲器,時鐘信號源,節(jié)拍發(fā)生器,操作控制器,程序計數(shù)器,地址寄存器,累加器,算術邏輯單元,指令寄存器和指令譯碼器。設計要求為: 1)總線結構:單總線,數(shù)據(jù)總線位數(shù)8位,地址總線3位 2)存儲器:存儲容量5*8位 3)操作控制器:實現(xiàn)指令操作碼所需的操作控制信號 4)運算器:一個累加器,實現(xiàn)加法操作 5)指令系統(tǒng)規(guī)模:3指令3.3 模型機邏輯框圖的設計 圖3.1 8位模型機邏輯框圖3.3 模型機的指令系統(tǒng)設計 模型計算機可完成兩個立即數(shù)相加,并將相加結果送入累加器。指令系統(tǒng)規(guī)模為3條指令,為了方便描述以“6+0”為例,設計3條指令,具體如下: 1)ld a ,6 ;a6,把6送入累加器a,操作
34、碼是00111110; 2)add a,0 ;aa+0,把a中6與0相加,結果送入累加器a,操作碼是11000110; 3)halt ;運算完畢,停機,操作碼是01110110;3.4 模型機的指令執(zhí)行流程設計 根據(jù)模型機的結構框圖,可設計指令系統(tǒng)中每條指令的執(zhí)行流程。一條指令從主存中取出到執(zhí)行完,需要若干個機器周期,任何指令的第一個機器周期都是“取指令周期”,一條指令一共需要幾個機器周期,取決于指令在機內實現(xiàn)的復雜程度。本模型機的指令流程如下: 1)第一條指令ld a ,6 ;將立即數(shù)6送入a。 t0:(pc)marabus,imar=0 t1:dbusdr,idr=1 t2:(pc)+1p
35、c,ipc=1 (dr)ir,iir=0,ld=1 t3:(pc)marabus,imar=0 t4:dbusdr,idr=1 t5:(pc)+1pc,ipc=1 t6:dbusa,ia=0 t7:空 2)第二條指令add a,0 ;把a中6與立即數(shù)0相加,結果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
36、 dbusa,ia=0,edr=1 t7:空 3)第三條指令halt ;運算完畢,停機。 t0:(pc)marabus,imar=0 t1:dbusdr,idr=1 t2:(pc)+1pc,ipc=1 (dr)ir,iir=0,halt=13.5 基于vhdl8位模型機各模塊的設計與實現(xiàn)3.5.1 算術邏輯單元alu模塊 說明:此模塊用于實現(xiàn)加法運算 1.邏輯框圖 圖3.2 算術邏輯運算單元程序流程圖 說明:alu功能部件,有兩個控制信號,分別是加法運算控制信號isum和輸出控制信號esum,當isum=0時,在clk作用下將兩數(shù)相加,當輸出控制命令esum=0時,將相加結果讀入到內部數(shù)據(jù)總線
37、上。 2.vhdl源程序設計 library ieee;use ieee.std_logic_1164.all;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:a
38、lu_temp:std_logic_vector(7 downto 0); begin alu_temp<=ac+dr when isum =0; alu_out<=alu_temp; end a; 3.alu模塊仿真波形圖3.3 alu功能仿真 波形分析:兩個輸入信號ac,dr,一個輸出信號alu_out和兩個控制命令信號isum,esum 。在仿真設置中將ac值設為從00000000逐一遞增到11111111,而dr值為了方便觀察設為00000000,兩個控制命令信號全部設為0即即時相加即時輸出,運行后如圖所示,輸出結果也是從00000000到11111111由于截圖大小有限只
39、截到00001000,功能仿真成功。3.5.2 累加器模塊 說明:實現(xiàn)8位模型機的累加器 1.邏輯框圖 圖3.4 累加器acc程序流程圖 說明:設置一個中間信號regq,輸入信號是data_in,輸出信號時data_out,兩個控制信號分別是ia輸入控制信號和ea輸出控制信號。當輸入控制信號ia=0時,將輸入數(shù)據(jù)data_in存入到regq中,當輸出控制信號ea=0是將以存到regq中的輸入數(shù)據(jù)賦與輸出數(shù)據(jù)data_out輸出。 2.vhdl源程序設計library ieee;use ieee.std_logic_1164.all;entity acc is port(data_in:in s
40、td_logic_vector(7 downto 0); ia:in std_logic; ea:in std_logic; 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
41、 if; end if; end process; data_out<= regq when ea='0' else ''zzzzzzzz'' end a; 3.acc模塊仿真波形 圖3.5 acc功能仿真 波形分析:clk周期為10ns,當時鐘發(fā)生且為上升沿的時候,輸入控功能制信號ia=0時,實現(xiàn)輸入,把輸入數(shù)據(jù)設置成從00000000到11111111依次遞增1,輸出信號始終為0來輸出輸入數(shù)據(jù)如圖3.5可見,當ia=0輸入數(shù)據(jù),輸出=輸入,當ia=1數(shù)據(jù)沒有被輸入,出輸出仍為上次輸入,所以輸出為00000000,00000010,000
42、00100.由仿真波形可知,acc模塊設計功能成功實現(xiàn)。3.5.3 控制器模塊 說明:控制模塊根據(jù)指令操作碼和時序信號,產生各種操作控制信號 1.邏輯框圖 圖3.6 控制器ctrl程序流程圖 說明:輸入信號為三個操作指令信號ld,add,halt和t0-t7八個節(jié)拍脈沖及一個時鐘信號clk,輸出為九個控制信號。當halt=1時ipc=0和esum=0,當halt=0時,9個控制信號別根據(jù)不同的節(jié)拍發(fā)生有不同的取值來執(zhí)行各自控制功能。 2.vhdl源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;us
43、e ieee.std_logic_unsigned.all;entity ctrl is potr(ld,add,halt: in std_logic; clk: in std_logic; t0,t1,t2,t3,t4,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; els
44、e 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 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
45、); end if; end process;end a; 3.控制器模塊仿真波形圖3.7 控制器ctrl功能仿真 波形分析:add,ld,t0-t7波形設置為0,1交替,halt先為10ns的高電平之后皆為低電平,運行后結果如圖3.7所示,根據(jù)公式 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 and add); ipc<=t2 or (t5 and ld) or (t
46、5 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);可驗證波行無誤,ctrl模塊功能設計成功。3.5.4 節(jié)拍發(fā)生器 說明:用于產生t0-t7的8個節(jié)拍脈沖信號,是模型機按此節(jié)拍有序的工作 1.邏輯框圖 圖3.8 節(jié)拍發(fā)生器程序流程圖 說明:輸入信號位clr和clk,當clr=0時賦初值,否則當clk上升沿到來時進行環(huán)形移位,以實現(xiàn)節(jié)拍發(fā)生器功能。 2. vhdl源程序library ieee;
47、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;architecture a of counter issignal temp:std_logic_vector(7 downto 0);begin t0<=temp(0); t1<=temp(1); t2<=temp(2
48、); 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 and clk=1)then temp(0)<=temp(7); temp(1)<
49、=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ù)輸入的時鐘信號以8個時鐘周期為一個大周期發(fā)生一個節(jié)拍脈沖,從t0到t7依次循環(huán)發(fā)生,結果如圖3.9所示,節(jié)拍發(fā)生器模塊功能設計成功。3.5.5 指令寄存器模塊ir和指令譯碼器 說明:指令寄存器ir用來保存當
50、前正在執(zhí)行的一條指令,如果是操作碼就送到指令譯碼器進行譯碼。 1.邏輯框圖圖3.10 指令寄存器模塊程序流程圖 說明:當執(zhí)行一條指令時,先把它從主存儲器中取到數(shù)據(jù)寄存器中,然后在傳送到指令寄存器。如果ir中儲存的是操作碼ld00111110,add11100110,halt01110110,譯碼器就將操作碼譯成相應的操作指令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); iir:in std_logic
51、; 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 regq<=data_in; end if;end if; end process;process(clk,regq)begin case regq is when”00111110”=>ld<=1;add&l
52、t;=0;halt<=0; when”11000110”=>ld<=0;add<=1;halt<=0; when”01110110”=>ld<=0;add<=0;halt<=1; when others=>null; end case; end process;end a; 3. 指令寄存器模塊波形仿真 圖3.11 指令寄存器功能仿真 波形分析:當iir=0時,輸入操作碼,并對其進行判斷,當操作碼為某個指令時,該指令輸出。當執(zhí)行一條指令時,先把它從主存儲器中取到數(shù)據(jù)寄存器中,然后在傳送到指令寄存器。如果ir中儲存的是操作碼ld0011
53、1110,add11100110,halt01110110,譯碼器就將操作碼譯成相應的操作指令ld,add,halt。在此仿真圖中為了清晰其功能把data_in設置成00111110,11100110,01110110,循環(huán),仿真結果如圖3.11所示add,ld,halt依次使能,證明此功能模塊設計成功。3.5.6 時鐘產生器 說明:用來產生固定頻率的方波脈沖。 1.邏輯框圖圖3.12 時鐘產生器模塊程序流程圖 說明:用于產生固定頻率的方波,時鐘周期為0.2s,設置counter值從0到25000000依次按clk周期順次加一得以實現(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
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025超市面食品購銷合同
- 2024年版閣樓房屋買賣合同解析
- 商洛職業(yè)技術學院《鋼琴即興伴奏》2023-2024學年第一學期期末試卷
- 設備專利轉讓合同范例
- 購買窗簾配色合同范例
- 工改造程合同范例
- 汕頭大學《品牌形象推廣》2023-2024學年第一學期期末試卷
- 短期投資合同范例
- 燃氣表安裝合同范例
- 2024至2030年采暖自循環(huán)水空調項目投資價值分析報告
- 人力資源管理智慧樹知到期末考試答案章節(jié)答案2024年湖南大學
- 西方音樂史智慧樹知到期末考試答案章節(jié)答案2024年四川音樂學院
- 水處理藥劑采購投標方案
- 2023年機動車檢測站質量手冊(依據(jù)2023年版評審準則和補充要求編制)
- MOOC 數(shù)據(jù)新聞可視化-江西財經大學 中國大學慕課答案
- MOOC 美在民間-南京農業(yè)大學 中國大學慕課答案
- 期末競賽試卷(試題)-2023-2024學年六年級下冊數(shù)學人教版
- MOOC 電子技術實驗-北京科技大學 中國大學慕課答案
- 蘇州職業(yè)大學單招職業(yè)技能測試參考試題庫(含答案)
- 冬季基坑施工方案及措施
- 國家開放大學《Python語言基礎》實驗1:Python 基礎環(huán)境熟悉參考答案
評論
0/150
提交評論