EDA課程設(shè)計(jì)簡易cpu設(shè)計(jì)_第1頁
EDA課程設(shè)計(jì)簡易cpu設(shè)計(jì)_第2頁
EDA課程設(shè)計(jì)簡易cpu設(shè)計(jì)_第3頁
EDA課程設(shè)計(jì)簡易cpu設(shè)計(jì)_第4頁
EDA課程設(shè)計(jì)簡易cpu設(shè)計(jì)_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、EDA技術(shù)課程設(shè)計(jì)任務(wù)書班級(jí): 姓名: 學(xué)號(hào): 設(shè)計(jì)題目: 簡易CPU系統(tǒng) 一、設(shè)計(jì)目的進(jìn)一步鞏固理論知識(shí),培養(yǎng)所學(xué)理論知識(shí)在實(shí)際中的應(yīng)用能力;掌握EDA設(shè)計(jì)的一般方法;熟悉一種EDA軟件,掌握一般EDA系統(tǒng)的調(diào)試方法;利用EDA軟件設(shè)計(jì)一個(gè)電子技術(shù)綜合問題,培養(yǎng)VHDL編程、書寫技術(shù)報(bào)告的能力。為以后進(jìn)行工程實(shí)際問題的研究打下設(shè)計(jì)基礎(chǔ)。二、設(shè)計(jì)任務(wù)用VHDL設(shè)計(jì)一個(gè)4位CPU。要求具備CPU的基本組成:運(yùn)算器、控制器和寄存器;可以實(shí)現(xiàn)兩個(gè)操作數(shù)的五種基本算術(shù)運(yùn)算:加法運(yùn)算、帶進(jìn)位的加法運(yùn)算、減法運(yùn)算、帶借位的減法運(yùn)算和乘法運(yùn)算;四種邏輯運(yùn)算:與運(yùn)算、或運(yùn)算、非運(yùn)算、異或運(yùn)算;以及程序跳轉(zhuǎn)的功

2、能。對(duì)設(shè)計(jì)電路進(jìn)行波形仿真、定時(shí)分析,下載電路實(shí)現(xiàn)CPU的預(yù)定功能,同時(shí)給出設(shè)計(jì)電路占用芯片資源的基本情況。三、設(shè)計(jì)要求(1)通過對(duì)相應(yīng)文獻(xiàn)的收集、分析以及總結(jié),給出相應(yīng)課題的背景、意義及現(xiàn)狀研究分析。(2)通過課題設(shè)計(jì),掌握計(jì)算機(jī)組成原理的分析方法和設(shè)計(jì)方法。(3)學(xué)習(xí)按要求編寫課程設(shè)計(jì)報(bào)告書,能正確闡述設(shè)計(jì)和實(shí)驗(yàn)結(jié)果。(4)學(xué)生應(yīng)抱著嚴(yán)謹(jǐn)認(rèn)真的態(tài)度積極認(rèn)真查閱相應(yīng)文獻(xiàn)以及實(shí)現(xiàn),給出分析、設(shè)計(jì)。四、設(shè)計(jì)時(shí)間安排查找相關(guān)資料(1天)、設(shè)計(jì)并繪制系統(tǒng)原理圖(2天)、編寫VHDL程序(2天)、調(diào)試(2天)、編寫設(shè)計(jì)報(bào)告(2天)和答辯(1天)。五、主要參考文獻(xiàn)1 江國強(qiáng)編著. EDA技術(shù)與實(shí)用(第三

3、版). 北京:電子工業(yè)出版社,2011.2 曹昕燕,周鳳臣.EDA技術(shù)實(shí)驗(yàn)與課程設(shè)計(jì).北京:清華大學(xué)出版社,2006.53 閻石主編.數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,2003.指導(dǎo)教師簽字: 年 月 日II農(nóng)業(yè)工程學(xué)院課程設(shè)計(jì)說明書簡易cup系統(tǒng)摘 要EDA(electronic design automation)技術(shù)是現(xiàn)代電子工程領(lǐng)域的一門新興的電子設(shè)計(jì)技術(shù)。它大大縮短了集成電路的設(shè)計(jì)周期,提高了生產(chǎn)效率。VHDL(Very High Speed Integrated Circuit(VHSIC) Hardware Description Language)作為IEEE標(biāo)準(zhǔn)所規(guī)范的

4、硬件描述語言,目前正在電子系統(tǒng)設(shè)計(jì)領(lǐng)域獲得廣泛應(yīng)用。Quartus II是Altera公司最新推出的EDA開發(fā)工具。Quartus II支持VHDL和Verilog硬件描述語言(HDL)的設(shè)計(jì)輸入、基于圖形的設(shè)計(jì)輸入方式。Quartus II軟件可以將設(shè)計(jì)、綜合、布局和布線以及系統(tǒng)驗(yàn)證全部都整合到一個(gè)無縫的環(huán)境中。本論文主要研究的是借助Altera公司的Quartus II4.0軟件開發(fā)工具,采用VHDL硬件描述語言作為輸入方式,采用分層次,分模塊的設(shè)計(jì)方法,對(duì)CPU的各個(gè)模塊進(jìn)行了描述,綜合和仿真。該4位微處理器取代了手工插線的實(shí)驗(yàn)方法,采用EDA技術(shù)設(shè)計(jì)并在實(shí)驗(yàn)臺(tái)上對(duì)設(shè)計(jì)進(jìn)行了驗(yàn)證,并最終

5、將處理器下載到實(shí)驗(yàn)臺(tái)上,為硬件教學(xué)實(shí)驗(yàn)改革提供了一個(gè)新的嘗試。在各個(gè)功能模塊的實(shí)現(xiàn)中主要使用了自頂向上的設(shè)計(jì)方法。先實(shí)現(xiàn)寄存器,再實(shí)現(xiàn)寄存器組,最后將各個(gè)器件和模塊之間互連,得到頂層設(shè)計(jì)圖。關(guān)鍵詞: 4位微處理器;Quartus II;VHDL;CPU系統(tǒng)目 錄第一章 緒論11.1 概述11.2 設(shè)計(jì)目的和意義11.3 系統(tǒng)的開發(fā)環(huán)境21.3.1 EDA技術(shù)簡介21.3.2 VHDL語言簡介31.3.3 QUARTUS II簡介4第二章 總體設(shè)計(jì)62.1微處理器技術(shù)62.2 CPU的結(jié)構(gòu)6 2.2.1算術(shù)邏輯單元ALU6 2.2.2寄存器組RS6 2.2.3控制單元7 2.2.4總線72.3

6、指令系統(tǒng)的設(shè)計(jì)72.4數(shù)據(jù)通路的設(shè)計(jì)92.5微命令設(shè)計(jì)9第三章 微處理器各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)103.1指令寄存器IR的設(shè)計(jì)103.2程序計(jì)數(shù)器PC的設(shè)計(jì)123.3算術(shù)邏輯單元ALU模塊的設(shè)計(jì)133.4 內(nèi)存儲(chǔ)器RAM模塊的設(shè)計(jì)143.5控制器SEQUENCER模塊的設(shè)計(jì)15第四章 設(shè)計(jì)結(jié)論22參考文獻(xiàn)23第一章 緒論1.1 概述 EDA是電子設(shè)計(jì)自動(dòng)化(Electronic Design Automation)縮寫,是90年代初從CAD(計(jì)算機(jī)輔助設(shè)計(jì))、CAM(計(jì)算機(jī)輔助制造)、CAT(計(jì)算機(jī)輔助測試)和CAE(計(jì)算機(jī)輔助工程)的概念發(fā)展而來的。EDA技術(shù)是以計(jì)算機(jī)為工具,根據(jù)硬件描述語言H

7、DL( Hardware Description language)完成的設(shè)計(jì)文件,自動(dòng)地完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局布線、仿真以及對(duì)于特定目標(biāo)芯片的適配編譯和編程下載等工作。硬件描述語言HDL是相對(duì)于一般的計(jì)算機(jī)軟件語言。 HDL語言使用與設(shè)計(jì)硬件電子系統(tǒng)的計(jì)算機(jī)語言,它能描述電子系統(tǒng)的邏輯功能、電路結(jié)構(gòu)和連接方式。設(shè)計(jì)者可利用HDL程序來描述所希望的電路系統(tǒng),規(guī)定器件結(jié)構(gòu)特征和電路的行為方式;然后利用綜合器和適配器將此程序編程能控制FPGA和CPLD內(nèi)部結(jié)構(gòu),并實(shí)現(xiàn)相應(yīng)邏輯功能的門級(jí)或更底層的結(jié)構(gòu)網(wǎng)表文件或下載文件。目前,就FPGA/CPLD開發(fā)來說,比較常用和流行的HDL主

8、要有ABEL-HDL、AHDL、Verilog和VHDL。VHDL語言是美國國防部在1981年提出的,并于1987年成為IEEE 1076標(biāo)準(zhǔn)。VHDL語言成為世界標(biāo)準(zhǔn)后,很快在世界各地得到了廣泛的應(yīng)用,這為電子設(shè)計(jì)自動(dòng)化的普及和推廣奠定了堅(jiān)實(shí)的基礎(chǔ)。1995年中國國家技術(shù)監(jiān)督局制定的 CAD通用技術(shù)規(guī)范推薦使用VHDL語言作為我國電子設(shè)計(jì)自動(dòng)化硬件描述語言的國家標(biāo)準(zhǔn)。1.2 設(shè)計(jì)目的和意義當(dāng)前是知識(shí)經(jīng)濟(jì)時(shí)代,更是知識(shí)爆炸的時(shí)代。特別是信息技術(shù)產(chǎn)業(yè),更是日新月異。而相比之下,教學(xué)實(shí)驗(yàn)的改革則顯得相形見絀,許多學(xué)習(xí)內(nèi)容都大大落后于時(shí)代的要求,教學(xué)實(shí)驗(yàn)對(duì)于培養(yǎng)學(xué)生的動(dòng)手能力、實(shí)踐能力有著非常重要的

9、作用,但教學(xué)實(shí)驗(yàn)大大滯后于實(shí)際中應(yīng)用的技術(shù)也進(jìn)一個(gè)不爭的事實(shí)。特是別是在計(jì)算機(jī)科學(xué)與技術(shù)方面,新技術(shù)層出不窮,更要求計(jì)算機(jī)教學(xué)實(shí)驗(yàn)與時(shí)俱進(jìn)。為了提高學(xué)生的實(shí)踐能力,提高學(xué)生的動(dòng)手能力,計(jì)算機(jī)組成原理教學(xué)改革勢在必行。本次設(shè)計(jì)的內(nèi)容就是要利用EDA開發(fā)工具,設(shè)計(jì)一個(gè)新的組成原理實(shí)驗(yàn),來取代現(xiàn)行的組成原理實(shí)驗(yàn)。使進(jìn)一步鞏固理論知識(shí),培養(yǎng)所學(xué)理論知識(shí)在實(shí)際中的應(yīng)用能力;掌握EDA設(shè)計(jì)的一般方法;熟悉一種EDA軟件,掌握一般EDA系統(tǒng)的調(diào)試方法;利用EDA軟件設(shè)計(jì)一個(gè)電子技術(shù)綜合問題,培養(yǎng)VHDL編程、書寫技術(shù)報(bào)告的能力。為以后進(jìn)行工程實(shí)際問題的研究打下設(shè)計(jì)基礎(chǔ)。1.3 系統(tǒng)的開發(fā)環(huán)境1.3.1 ED

10、A技術(shù)簡介 EDA(Electronics Design Automation)即電子設(shè)計(jì)自動(dòng)化。EDA技術(shù)是一種以計(jì)算機(jī)為基本工作平臺(tái),利用計(jì)算機(jī)圖形學(xué),拓?fù)溥壿媽W(xué),計(jì)算數(shù)學(xué)以及人工智能學(xué)等多種計(jì)算機(jī)應(yīng)用學(xué)科的最新成果而開發(fā)的技術(shù),是一種幫助電子設(shè)計(jì)工程師從事電子元件產(chǎn)品和系統(tǒng)設(shè)計(jì)的綜合技術(shù)。本次畢業(yè)設(shè)計(jì)的FPGA平臺(tái)也是EDA電子設(shè)計(jì)自動(dòng)化的一種。1.3.2 VHDL語言簡介 VHDL的英文全名是Very - High- Speed Integrated Circuit Hardware Description Language 。自IEEE公布了VHDL的標(biāo)準(zhǔn)之后,各EDA開發(fā)公司相繼推

11、出了自己的EDA設(shè)計(jì)環(huán)境,或宣布自己的設(shè)計(jì)工具可以和EDA接口。此后VHDL在電子設(shè)計(jì)領(lǐng)域得到了廣泛的接受,并逐步取代了原有的非標(biāo)準(zhǔn)硬件描述語言。1993年,IEEE對(duì)VHDL進(jìn)行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴(kuò)展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標(biāo)準(zhǔn)的1076-1993版本?,F(xiàn)在VHDL和Verilog作為IEEE的工業(yè)標(biāo)準(zhǔn)硬件描述,描述以得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實(shí)上的通用硬件描述語言。 VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)程序設(shè)計(jì)

12、語言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì)為實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng)),分成外部(或稱可視部分)和內(nèi)部(或稱不可視部分)。在一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)模塊。這種將實(shí)體設(shè)計(jì)分成為內(nèi)外部分是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。應(yīng)用VHDL進(jìn)行工程設(shè)計(jì)的優(yōu)點(diǎn)是多方面的:(1)VHDL語言功能強(qiáng)大,設(shè)計(jì)方式多樣。(2)VHDL語言具有強(qiáng)大的硬件描述能力。(3)VHDL語言具有很強(qiáng)的移植性。(4)VHDL語言的設(shè)計(jì)描述與具體的器件無關(guān)。(5)VHDL語言易于實(shí)現(xiàn)IP設(shè)計(jì)的共享和復(fù)用。1.3.3 QUARTUS II簡介Quartus II

13、軟件支持VHDL和Verilog的設(shè)計(jì)輸入、基于圖形的設(shè)計(jì)輸入方式以及集成的系統(tǒng)級(jí)設(shè)計(jì)工具。Quartus II軟件可以將設(shè)計(jì)、綜合、布局、布線以及系統(tǒng)驗(yàn)證全部都整合到一個(gè)無縫的環(huán)境中,其中還包括第三方EDA工具的借口。Quartus II的主要設(shè)計(jì)特性如下:1.基于模塊的設(shè)計(jì)方法提高工作效率。2.更快集成IP。3.在設(shè)計(jì)的早期對(duì)I/O引腳進(jìn)行分配和驗(yàn)證。4.存儲(chǔ)器編譯器使存儲(chǔ)器的設(shè)計(jì)更為高效。5.支持CPLD、FPGA和基于HardCopy的ASIC。6.使用全新的命令行和腳本功能自動(dòng)化設(shè)計(jì)流程。7.高級(jí)教程幫助深入了解Quartus II的功能特性。第二章 總體設(shè)計(jì)2.1微處理器技術(shù)中央處

14、理器(CPU)是驅(qū)動(dòng)計(jì)算機(jī)技術(shù)和產(chǎn)業(yè)發(fā)展的火車頭,CPU和操作系統(tǒng)的配合又組成了計(jì)算機(jī)系統(tǒng)的平臺(tái)。中國是一個(gè)信息化大國,但不是一個(gè)信息化強(qiáng)國。中國在信息技術(shù)的基礎(chǔ)方面還很薄弱,其中發(fā)展和加強(qiáng)CPU的設(shè)計(jì)和制造技術(shù)是信息技術(shù)和科技界與教育界的一項(xiàng)重要任務(wù)。當(dāng)然CPU設(shè)計(jì)本身是很復(fù)雜的,目前先進(jìn)的CPU芯片上的晶體管數(shù)已經(jīng)達(dá)到數(shù)億個(gè);先進(jìn)的CPU還有很多復(fù)雜技術(shù),如多發(fā)射,亂序執(zhí)行,多線程,向量與標(biāo)量部件的混合以及多樣的執(zhí)行預(yù)測技術(shù)等;現(xiàn)在的CPU還在向多核心芯片發(fā)展。芯片上具有10億個(gè)晶體管的CPU已經(jīng)離我們不遠(yuǎn)。此外,CPU的自檢測設(shè)計(jì)技術(shù)也很復(fù)雜,高級(jí)CPU套片(CHIP SET)的復(fù)雜程度

15、一點(diǎn)也不亞于CPU中央處理器簡稱CPU(Central Processing Unit),它是計(jì)算機(jī)系統(tǒng)的核心,主要包括運(yùn)算器和控制器兩個(gè)部件。 2.2 CPU的結(jié)構(gòu)2.2.1算術(shù)邏輯單元ALU ALU是運(yùn)算器的核心。它是以全加器為基礎(chǔ),輔之以移位寄存器及相應(yīng)控制邏輯組合而成的電路,在控制信號(hào)的作用下可完成加、減、乘、除四則運(yùn)算和各種邏輯運(yùn)算。就像剛才提到的,這里就相當(dāng)于工廠中的生產(chǎn)線,負(fù)責(zé)運(yùn)算數(shù)據(jù)。2.2.2寄存器組RS RS實(shí)質(zhì)上是CPU中暫時(shí)存放數(shù)據(jù)的地方,里面保存著那些等待處理的數(shù)據(jù),或已經(jīng)處理過的數(shù)據(jù),CPU訪問寄存器所用的時(shí)間要比訪問內(nèi)存的時(shí)間短。采用寄存器,可以減少CPU訪問內(nèi)存

16、的次數(shù),從而提高了CPU的工作速度。但因?yàn)槭艿叫酒娣e和集成度所限,寄存器組的容量不可能很大。寄存器組可分為專用寄存器和通用寄存器。專用寄存器的作用是固定的,分別寄存相應(yīng)的數(shù)據(jù)。而通用寄存器用途廣泛并可由程序員規(guī)定其用途。通用寄存器的數(shù)目因微處理器而異。2.2.3控制單元 正如工廠的物流分配部門,控制單元是整個(gè)CPU的指揮控制中心,由指令寄存器IR(Instruction Register)、指令譯碼器ID(Instruction Decoder)和操作控制器0C(Operation Controller)三個(gè)部件組成,對(duì)協(xié)調(diào)整個(gè)電腦有序工作極為重要。它根據(jù)用戶預(yù)先編好的程序,依次從存儲(chǔ)器中取

17、出各條指令,放在指令寄存器IR中,通過指令譯碼(分析)確定應(yīng)該進(jìn)行什么操作,然后通過操作控制器OC,按確定的時(shí)序,向相應(yīng)的部件發(fā)出微操作控制信號(hào)。操作控制器OC中主要包括節(jié)拍脈沖發(fā)生器、控制矩陣、時(shí)鐘脈沖發(fā)生器、復(fù)位電路和啟停電路等控制邏輯。2.2.4總線 就像工廠中各部位之間的聯(lián)系渠道,總線實(shí)際上是一組導(dǎo)線,是各種公共信號(hào)線的集合,用于作為電腦中所有各組成部分傳輸信息共同使用的“公路”。直接和CPU相連的總線可稱為局部總線。其中包括: 數(shù)據(jù)總線DB(Data Bus)、地址總線AB(Address Bus) 、控制總線CB(Control Bus)。其中,數(shù)據(jù)總線用來傳輸數(shù)據(jù)信息;地址總線用

18、于傳送CPU發(fā)出的地址信息;控制總線用來傳送控制信號(hào)、時(shí)序信號(hào)和狀態(tài)信息等。2.3 指令系統(tǒng)的設(shè)計(jì)計(jì)算機(jī)的操作基本上可歸結(jié)為信息傳送。所以在邏輯結(jié)構(gòu)上,關(guān)鍵在于如何實(shí)現(xiàn)數(shù)據(jù)信息的傳送,即數(shù)據(jù)的通路結(jié)構(gòu)。在現(xiàn)代計(jì)算機(jī)中,普遍采用總線結(jié)構(gòu)??偩€是一組能為多個(gè)部件共享的公共信息傳送通路,可以分時(shí)的接收與發(fā)送各個(gè)部件的信息??偩€可以分為4種:(1)CPU內(nèi)部總線。(2)部件內(nèi)總線。(3)系統(tǒng)總線。(4)外總線。在本畢業(yè)設(shè)計(jì)中,也采用了總線結(jié)構(gòu)。計(jì)算機(jī)的基本功能是進(jìn)行各種運(yùn)算,包括算術(shù)運(yùn)算與邏輯運(yùn)算。計(jì)算機(jī)的工作,基本上體現(xiàn)為執(zhí)行指令,一臺(tái)計(jì)算機(jī)所能執(zhí)行的全部指令,稱為該機(jī)的系統(tǒng)或稱為指令集合。指令系統(tǒng)

19、是程序員編制程序的基礎(chǔ),雖然現(xiàn)在已經(jīng)廣泛應(yīng)用各種程序設(shè)計(jì)編程,但需要通過解釋或編譯轉(zhuǎn)換為機(jī)器可以識(shí)別與執(zhí)行的指令序列。指令系統(tǒng)表明一臺(tái)計(jì)算機(jī)具有哪些功能,因而在很大程度上決定著如何使用計(jì)算機(jī)。CPU的基本任務(wù)是解釋執(zhí)行指令代碼,所以指令系統(tǒng)又在很大程度上決定著計(jì)算機(jī)如何工作,它是硬件邏輯設(shè)計(jì)的基礎(chǔ),與CPU的總體結(jié)構(gòu)及整機(jī)設(shè)計(jì)思想密切相關(guān)。指令系統(tǒng)是CPU的硬件與軟件的分界面,是設(shè)計(jì)和利用CPU的出發(fā)點(diǎn)。本處理器字長為4位。指令系統(tǒng)如下: Load指令:用來將數(shù)據(jù)從內(nèi)存中讀到CPU的寄存器中。 Add指令:做一次加法運(yùn)算。 Sub指令:做一次減法運(yùn)算。 Store指令:存儲(chǔ)指令,將數(shù)據(jù)存入RA

20、M中。 Jmp指令:無條件轉(zhuǎn)移指令。 Load_far指令:將內(nèi)存中的數(shù)據(jù)讀入到CPU中。由于本處理是用來做組成原理實(shí)驗(yàn)的,在實(shí)現(xiàn)上與原來的實(shí)驗(yàn)保持了基本的一致。并且增加了一種尋址方式。對(duì)于CPU指令的設(shè)計(jì)來講,主要考慮的指令的字長,地址結(jié)構(gòu)與尋址方式。由于受處理器字長的限制,設(shè)計(jì)的指令為固定的字長,并且每條指令占用兩個(gè)字,第一個(gè)機(jī)器字為操作碼(OPCODE),后一個(gè)指令字為操作數(shù)(OPRAND)。微處理器的總體結(jié)構(gòu)與數(shù)據(jù)通路如圖所示: 圖2-1處理器的數(shù)據(jù)通路結(jié)構(gòu)2.4數(shù)據(jù)通路的設(shè)計(jì)在上幾節(jié)中,給出了微處理器的通路結(jié)構(gòu)和模塊的劃分,在數(shù)據(jù)通路結(jié)構(gòu)確定之后,下面將給出它們之間通過總線傳送的路徑

21、。指令的執(zhí)行基本上可以歸結(jié)為信息的傳送,即控制流和數(shù)據(jù)流兩大信息流??刂屏鞅憩F(xiàn)為指令信息的傳送,及由此產(chǎn)生微命令序列。指令信息與數(shù)據(jù)信息讀取,以依賴于地址信息。弄清各類信息的傳送路徑,有助于從邏輯結(jié)構(gòu)的角度了解指令是如何執(zhí)行的,以及需要為此發(fā)出那些微命令。(1)指令信息的傳送: RAM 系統(tǒng)總線 IR(2)地址信息傳送: PC 系統(tǒng)總線 MAR ADDR 系統(tǒng)總線 MARRAM MDR 系統(tǒng)總線 ADDREG(3)數(shù)據(jù)信息傳送:RAM MDR 系統(tǒng)總線 ACCACC+MDR ACCACC-MDR ACCACC 數(shù)據(jù)總線 MDR RAM2.5微命令設(shè)計(jì)在全面分析了各類信息的傳送路徑以后,對(duì)指令如

22、何執(zhí)行就有了進(jìn)一步的了解,并為時(shí)序的安排和相應(yīng)的微命令的設(shè)置打下了基礎(chǔ)。在本微處理器的設(shè)計(jì)中,設(shè)置了以下微命令:微處理器的控制信號(hào):ACC_bus 用ACC的內(nèi)容驅(qū)動(dòng)總線,三態(tài)輸出Load_ACC 將總線上的數(shù)據(jù)放入ACC中PC_bus 用PC的內(nèi)容驅(qū)動(dòng)總線Load_IR 將總線內(nèi)容裝入IRLoad_MAR 將總線內(nèi)容裝入MARMDR_bus 用MDR的內(nèi)容驅(qū)動(dòng)總線Load_MDR 將總線上的數(shù)據(jù)裝入MDRALU_ACC 將ALU的結(jié)果送ACCINC_PC PC+1-PCAddr_bus 用ADDREG的內(nèi)容來驅(qū)動(dòng)總線Load_Addr 用總線的內(nèi)容來裝載ADDREGCS 片選,用MAR設(shè)置存

23、儲(chǔ)器地址R_NW 讀取,不可寫ALU_add 做加法運(yùn)算ALU_sub 做減法運(yùn)算在確定了微指令和數(shù)據(jù)的傳送路徑之后,就可以根據(jù)指令的功能需要選擇上述微命令中的有關(guān)部分,形成微操作命令序列,實(shí)現(xiàn)指令功能。第三章 微處理器各個(gè)模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1指令寄存器IR的設(shè)計(jì)IR是用來保存從內(nèi)存中取來的指令,IR基本上是一個(gè)帶有使能控制端的寄存器,在時(shí)鐘的上升沿對(duì)輸入的數(shù)據(jù)進(jìn)行鎖存。總線連接到IR的輸入端,其輸出連到控制器輸入端。對(duì)于總線數(shù)據(jù),使用IEEE的庫來進(jìn)行描述。具體名稱為IEEE.STD_LOIC_1164.ALL,可以用它來定義位或位向量。由以上的介紹,給出了接口信號(hào)與描述的方法,也就不難用

24、VHDL語言來實(shí)現(xiàn)。在Quartus II4.0 中可以新建一個(gè)工程,名字為IR,新建一個(gè)VHDL文件名字也為IR,在其中用VHDL來描述該寄存器。在Quartus II4.0中,它支持層次化的設(shè)計(jì)。在編譯并綜合后,綜合后得到其RTL視圖。圖3-1 RTL視圖圖3-2 IR的波形文件3.2程序計(jì)數(shù)器PC的設(shè)計(jì)程序計(jì)數(shù)器是一個(gè)有復(fù)位端的、可以裝入計(jì)數(shù)初值的通用計(jì)數(shù)器。由于機(jī)器的字長為4位,因而它的計(jì)數(shù)范圍從0到15。也就是說它的尋址能力只有16個(gè)單元。因而存儲(chǔ)器的大小為16個(gè)機(jī)器字。當(dāng)然,這樣做的最大的優(yōu)點(diǎn)是可以簡化設(shè)計(jì),缺點(diǎn)是在很多地方要受尋址能力和存儲(chǔ)能力的約束。改進(jìn)的方向是增加指令字長,比

25、如8位,16位,32位等和改進(jìn)處理器的體系結(jié)構(gòu)。VHDL語言來描述電路,必須要包含相應(yīng)的庫文件。本模塊的設(shè)計(jì)中除了包含最基本的ieee.std_logic庫外,還必須包含ieee.numeric_std和ieee.unsigned庫。在這兩個(gè)庫中定義了無符號(hào)數(shù)的加法。調(diào)用這兩個(gè)庫以實(shí)現(xiàn)PC-PC+1的運(yùn)算。圖3-3 程序計(jì)數(shù)器的設(shè)計(jì)3.3算術(shù)邏輯單元ALU模塊的設(shè)計(jì)ALU是算術(shù)邏輯單元,中規(guī)模集成器件如74LS181就是一個(gè)典型的ALU。ALU是用來完成算術(shù)邏輯運(yùn)算的。對(duì)于組合邏輯實(shí)現(xiàn)來講,最基本的單元是全加器。而對(duì)于FPGA實(shí)現(xiàn)的器件來講,實(shí)現(xiàn)一個(gè)運(yùn)算器變得非常的簡單,只要用一個(gè)運(yùn)算符并在頭

26、文件中包含相應(yīng)的庫及可。邏輯綜合工具會(huì)自動(dòng)的生成對(duì)應(yīng)的運(yùn)算單元。這樣設(shè)計(jì)出來的模塊就有很強(qiáng)的移植性,可以在不同的硬件上進(jìn)行實(shí)現(xiàn),而且易于修改。不足是可能綜合的結(jié)果在資源和面積功耗方面不滿中要求。比如對(duì)于4位全加器,是采用并行進(jìn)位鏈還是采用串行進(jìn)位鏈在用硬件是實(shí)現(xiàn)進(jìn)是必須要考慮的。但對(duì)于FPGA則可將這個(gè)工作交給綜合工具去做,用戶只要指定要求就可以了。圖3-4 PC的RTL視圖3.4 內(nèi)存儲(chǔ)器RAM模塊的設(shè)計(jì)存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)的五大部件之一。在處理器的構(gòu)造中,一般只在片內(nèi)集成小容量、高速的Cache比如80386、486、pentium等,RAM獨(dú)立于處理器之外。在本畢業(yè)設(shè)計(jì)中,充分利用FPGA

27、的可配置性,在FPGA上集成了一小塊片內(nèi)RAM。并在復(fù)位的時(shí)候利用FPGA的可配置性引入了一小段程序。這樣就避開了程序的初始引入問題,也就避開了中斷等復(fù)雜的問題。為了不拘泥于一個(gè)具體的片內(nèi)RAM,用寄存器堆來實(shí)現(xiàn)一個(gè)16個(gè)字的RAM。RAM與外界的接口是MDR和MAR。其中MAR有來保存地址,MDR用來保存數(shù)據(jù)。RAM與外界的接口比較復(fù)雜,對(duì)時(shí)序的要求較強(qiáng)。其接口如下定義:Load_MAR:用總線上的數(shù)據(jù)裝載MAR。送地址。Load_MDR:將總線上的數(shù)據(jù)送到MDR。MDR_bus:用MDR的內(nèi)容來驅(qū)動(dòng)總線。也就是讀出數(shù)據(jù)。CS:RAM選中信號(hào),使能控制信號(hào)。R_NW:對(duì)RAM的讀控制信號(hào)。圖

28、3-5 RAM的仿真波形圖圖3-6 RAM的RTL圖3.5控制器SEQUENCER模塊的設(shè)計(jì)Sequencer是處理器的核心模塊,是整個(gè)設(shè)計(jì)的重點(diǎn)也是整個(gè)設(shè)計(jì)的難點(diǎn)。在前面的小節(jié)中,已經(jīng)將各個(gè)模塊的功能與接口做了比較詳細(xì)的說明。如何將各個(gè)模塊合理的組織起來,使處理器可以正確的運(yùn)行,進(jìn)而得到結(jié)果是控制器的任務(wù)。微操作命令是最基本的控制命令,如開門關(guān)門等電平型命令,多路選擇定時(shí)脈沖等。控制器的任務(wù)是決定在什么時(shí)刻、根據(jù)什么條件、發(fā)什么命令。做什么事。因此,產(chǎn)生微命令的基本依據(jù)是時(shí)間(如周期節(jié)拍、脈沖等時(shí)序信號(hào))、指令代碼(如操作在碼、尋址方式、寄存器號(hào)等)、狀態(tài)(如CPU的內(nèi)部狀態(tài)字、控制設(shè)備要考

29、慮的外部狀態(tài))、外部請(qǐng)求(如控制請(qǐng)求、外部中斷請(qǐng)求、DMA請(qǐng)求)等。這些信息稱為邏輯變量,經(jīng)組合邏輯產(chǎn)生的微操作命令序列,或形成相應(yīng)的微程序地址,通過微程序中的微指令直接產(chǎn)生微操作命令序列。按照微命令的形成方法,控制器可以分為組合邏輯控制器和微程序控制器兩種。由于在FPGA中實(shí)現(xiàn)組合邏輯控制是比較簡單的,而且硬連邏輯有著速度上的優(yōu)勢。因此在本本設(shè)計(jì)中,采用了組合邏輯控制器。在處理器中,由于其速度高,一般采用同步時(shí)序邏輯,因而在本設(shè)計(jì)中也采用了同步時(shí)序。在大規(guī)模集成電路的設(shè)計(jì)中,使用狀態(tài)機(jī)來進(jìn)行設(shè)計(jì)是電子工程師經(jīng)常采用的手段。VHDL語言支持有限狀態(tài)機(jī)的描述。一個(gè)控制器可以將它的每一條命令分成若

30、干個(gè)狀態(tài),這些狀態(tài)中有許多是相同的,這樣就利于采用狀態(tài)機(jī)來進(jìn)行實(shí)現(xiàn)。關(guān)鍵源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX5 ISPORT( R0_B,R1_B,R2_B,R3_B,ALU_B:IN STD_LOGIC; R0_IN,R1_IN,R2_IN,R3_IN,ALU_IN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); MUX5OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX5;ARCHITECTURE A OF MUX5 ISBEGIN PROCESS(ALU_B

31、,R3_B,R2_B,R1_B,R0_B) BEGIN IF(ALU_B=1 AND R3_B=1 AND R2_B=1 AND R1_B=1 AND R0_B=0) THEN MUX5OUT=R0_IN; ELSIF(ALU_B=1 AND R3_B=1 AND R2_B=1 AND R1_B=0 AND R0_B=1) THEN MUX5OUT=R1_IN; ELSIF(ALU_B=1 AND R3_B=1 AND R2_B=0 AND R1_B=1 AND R0_B=1) THEN MUX5OUT=R2_IN; ELSIF(ALU_B=1 AND R3_B=0 AND R2_B=1 AN

32、D R1_B=1 AND R0_B=1) THEN MUX5OUT=R3_IN; ELSIF(ALU_B=0 AND R3_B=1 AND R2_B=1 AND R1_B=1 AND R0_B=1) THEN MUX5OUT=ALU_IN; ELSE MUX5OUT=ALU_IN; END IF; END PROCESS;END A; LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX3 ISPORT( SW_B,CS:IN STD_LOGIC; FEN2_IN,MUX2_2IN,SW_IN:IN STD_LOGIC_VECTOR(7 DOW

33、NTO 0); MUX3OUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END MUX3;ARCHITECTURE A OF MUX3 ISBEGINPROCESS(SW_B,CS) BEGIN IF(SW_B=0 AND CS=1) THEN MUX3OUT=SW_IN; ELSIF(SW_B=1 AND CS=0) THEN MUX3OUT=MUX2_2IN; ELSIF(SW_B=0 AND CS=0) THEN MUX3OUT=FEN2_IN; ELSE MUX3OUT=11101110; END IF; END PROCESS;END A;圖3-7 部分

34、波形圖部分程序清單:1 ALU子模塊LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT( AC, DR: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S1, S0: IN STD_LOGIC; BCDOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); CY,ZI: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISS

35、IGNAL AA,BB,TEMP: STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN PROCESS(S1,S0) BEGIN IF(S1=0 AND S0=0) THEN BCDOUT = AC + DR; AA=0∾ BB=0&DR; TEMP = AA + BB; CY=TEMP(8); IF( TEMP =100000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=0 AND S0=1) THEN BCDOUT = AC - DR; AA=0∾ BB=0&DR; TEMP = AA - BB; CY=TEMP(8); IF( TEMP =000000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=1 AND S0=0) THEN AA=0∾ TEMP=AA+1; BCDOUT=TEMP(7 DOWNTO 0); CY=TEMP(8); IF( TEMP =100000000) THEN ZI = 1; ELSE ZI = 0; END IF; ELSIF(S1=1 AND S0=1) THEN AA=0∾ TEM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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)論