cpu控制器的設(shè)計_第1頁
cpu控制器的設(shè)計_第2頁
cpu控制器的設(shè)計_第3頁
cpu控制器的設(shè)計_第4頁
cpu控制器的設(shè)計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成與結(jié)構(gòu)課程設(shè)計報告題 目: CPU控制器設(shè)計 院 (系): 信息科學(xué)與工程 專業(yè)班級: 學(xué)生姓名: 學(xué) 號: 指導(dǎo)教師: 顧 兵 20 15 年 06 月 15 日至20 15 年 06 月 26 日華中科技大學(xué)武昌分校制計算機組成與結(jié)構(gòu)課程設(shè)計任務(wù)書一、設(shè)計(調(diào)查報告/論文)題目CPU控制器設(shè)計二、設(shè)計(調(diào)查報告/論文)主要內(nèi)容1.掌握CPU控制器的工作原理和邏輯功能。2.運用VHDL實現(xiàn)能支持基本指令的單時鐘控制器設(shè)計與調(diào)試。3.采用QUARTUS II軟件設(shè)計仿真和調(diào)試完成。三、原始資料1袁春風(fēng)計算機組成與系統(tǒng)結(jié)構(gòu)北京:清華大學(xué)出版社,2010。2唐朔飛計算機組成原理北京:高等

2、教育出版社,2008。四、要求的設(shè)計(調(diào)查/論文)成果1.課程設(shè)計報告2.設(shè)計仿真文件五、進程安排講解課程設(shè)計的具體內(nèi)容、要求、安排、考核方法、注意事項及相關(guān)知識,幫助學(xué)生明確任務(wù)。 1天查閱資料 1天整體方案設(shè)計,畫出功能模塊圖 1天各模塊的詳細設(shè)計,畫出相應(yīng)邏輯電路圖。 2天在指定環(huán)境下完成系統(tǒng)實現(xiàn)、調(diào)試 2天撰寫課程設(shè)計報告 1天驗收并提問答辯 1天六、 主要參考資料1顧兵,陳國平計算機組成與結(jié)構(gòu)實踐教程(修訂版)2014.5。2樓學(xué)慶,平玲娣計算機組成課程設(shè)計杭州:淅江大學(xué)出版社2007。3王誠等計算機組成與設(shè)計(第3版)實驗指導(dǎo)北京:清華大學(xué)出版社,2008。4David A. Pa

3、tterson John L. Hennessy計算機組成與設(shè)計(硬件/軟件接口)康繼昌等譯北京:機械工業(yè)出版社,2012。5袁春風(fēng)計算機組成與系統(tǒng)結(jié)構(gòu)北京:清華大學(xué)出版社,2010。6Altera Corporation Quartus_II官方教程-中文版目 錄目 錄i1需求與總體設(shè)計11.1設(shè)計任務(wù)及功能要求11.1.1設(shè)計任務(wù)11.1.2功能要求11.2總體設(shè)計11.2.1總體設(shè)計原理11.2.2總體設(shè)計說明11.3總體框圖22詳細設(shè)計與實現(xiàn)32.1方案設(shè)計與實現(xiàn)32.1.1輸入與輸出邏輯圖32.1.2指令與控制信號真值表32.1.3控制器設(shè)計思路流程圖42.2指令分析及邏輯電路圖42

4、.2.1 R-type型指令42.2.2 Ori指令52.2.3 lw指令62.2.4 sw指令72.2.5 branch指令72.2.6 Jump指令82.2.7邏輯電路圖92.3 VHDL代碼分析及實現(xiàn)102.3.1代碼分析102.3.2代碼實現(xiàn)113電路仿真調(diào)試143.1代碼仿真143.2功能仿真及調(diào)試14總結(jié)17參考文獻181需求與總體設(shè)計1.1設(shè)計任務(wù)及功能要求1.1.1設(shè)計任務(wù)通過對CPU的工作原理和邏輯功能的理解,運用VHDL硬件描述語言實現(xiàn)能支持基本指令的單時鐘控制器設(shè)計,采用QUARTUS II軟件設(shè)計仿真和調(diào)試完成。1.1.2功能要求1.運用VHDL實現(xiàn)能支持基本指令的單時

5、鐘控制器設(shè)計與調(diào)試。 1>實現(xiàn)能夠執(zhí)行R類型、ori、addiu、lw、sw、beg以及jump指令的單時鐘控制器使其能夠支持基本的指令。2>實現(xiàn)cpu的控制。2.采用QUARTUS II軟件設(shè)計仿真和調(diào)試完成。1.2總體設(shè)計1.2.1總體設(shè)計原理CPU每次從存儲器讀取一條指令后,PC指針指向正在取值的指令并存放到指令寄存器IR中,IR將指令送到控制器,控制器對指令進行譯碼,判斷指令類型,從而生成相應(yīng)指令對應(yīng)的的數(shù)據(jù)通路控制信號,指揮整個CPU的運轉(zhuǎn)??刂茊卧饕粋€指令譯碼器,輸入的是指令操作碼op(R-型指令還包括功能碼func),輸出的是控制信號。所以,控制單元的設(shè)計過程

6、如下。1>根據(jù)每條指令的功能,分析控制信號的取值,并在表中列出。2>根據(jù)列出的指令和控制信號的關(guān)系,寫出每個控制信號的邏輯表達式。1.2.2總體設(shè)計說明1)指令格式如下:MIPS指令分為三種指令:R_Type,I_Type,J_TypeR_Type 如:加法ADD 減法SUBSTRACT加法指令的匯編格式add rd, rs, rt加法指令的匯編格式sub rd, rs, rt圖1.1 指令格式2)設(shè)計步驟:第一步:確定每個元件所需控制信號的取值。第二步:匯總所有指令所涉及到的控制信號,生成一張反映指令與控制信號之間關(guān)系的表。第三步:根據(jù)表得到每個控制信號的邏輯表達式,據(jù)此設(shè)計控制

7、器電路。1.3總體框圖總體設(shè)計框圖如圖1.1:圖1.2 控制器總體框圖2詳細設(shè)計與實現(xiàn)2.1方案設(shè)計與實現(xiàn)2.1.1輸入與輸出邏輯圖由cpu控制器的功能原理得出輸入與輸出邏輯圖如下:圖2.1 輸入與輸出邏輯圖2.1.2指令與控制信號真值表查閱得到指令與控制信號真值表如下:表2.1指令與控制信號真值表op000000001101001001100011101011000100000010指令類型R-typeoriaddiulwswbegjumpRegWr1111xxxALUSrc011110xRegDst1000xxxMemtoReg0001xxXMemWr0000100Branch000001

8、0Jump0000001ExtOpx0111xxALUop<0>100000XALUop<1>x1000xXALUop<2>x11001X2.1.3控制器設(shè)計思路流程圖 根據(jù)各指令控制信號真值表可得主控制器設(shè)計思路流程圖如圖2.2所示。圖2.2 設(shè)計思路流程圖2.2指令分析及邏輯電路圖2.2.1 R-type型指令圖2.3是R-型指令的執(zhí)行過程示意圖,其中粗線描述了R-型指令的數(shù)據(jù)在數(shù)據(jù)通中 的執(zhí)行路徑:Register File(Rs,Rt)busA,busBALURegister File(Rd)。圖2.3 R-型指令執(zhí)行過程 控制信號的取值分析如下。

9、Branch=Jump=0:因為是非分支指令、非無條件跳轉(zhuǎn)指令。 RegDst=1:因為R-型指令的目的寄存器為Rd。 ALUSrc=0:保證選擇busB作為ALU的B口操作數(shù)。 MemtoReg=0:保證選擇ALU結(jié)果送到目的寄存器。 RegWr=1:保證在下個時鐘到來時,在不發(fā)生溢出的情況下結(jié)果被寫到目的寄存 器。 MemWr=0:保證下一個時鐘到來時,不會有信息寫到數(shù)據(jù)存儲器。 ExtOp=x:因為ALUSrc=0,所以擴展器Extender的值不會影響執(zhí)行結(jié)果,故ExtOp 取0或1都無所謂。2.2.2 Ori指令 指令完成的功能:Rrt Rrs op ZeroExtimm16 圖2.

10、4 Ori的控制信號控制信號的取值分析如下。分支指令和跳轉(zhuǎn)指令都為零Branch=jump=0因為是非分之指令,非跳轉(zhuǎn)指令。RegDst=1:因為Ori指令的目的寄存器為Rt。ALUSrc=1:保證選擇busB作為ALU的A口操作數(shù)。ALUctr=or。MemtoReg=0:保證選擇ALU結(jié)果送到目的寄存器。RegWr=1:保證在下個時鐘到來時,在不發(fā)生溢出的情況下結(jié)果被寫到目的寄存器。MemWr=0:保證在下個時鐘到來時,不會有信息寫到數(shù)據(jù)存儲器。ExpOp=x:因為ALUSrc=0,所以擴展器Extender的值不會影響執(zhí)行結(jié)果,故ExtOP取0或1都無所謂。2.2.3 lw指令 指令完成

11、的功能:Rrt M Rrs + SignExtimm16 圖2.5 lw的控制信號控制信號的取值分析如下。分支指令和跳轉(zhuǎn)指令都為零 Branch=jump=0因為是非分之指令,非跳轉(zhuǎn)指令。RegDst=1:因為lw指令的目的寄存器為Rt。ALUSrc=1:保證選擇busA作為ALU的A口操作數(shù)。ALUctr=add。MemtoReg=1:保證選擇存儲器結(jié)果送到目的寄存器。RegWr=1:保證在下個時鐘到來時,在不發(fā)生溢出的情況下結(jié)果被寫到目的寄存器。MemWr=0:保證在下個時鐘到來時,不會有信息寫到數(shù)據(jù)存儲器。ExpOp=1:因為要利用擴展器Extender進行擴展。2.2.4 sw指令 指

12、令完成的功能:rt, rs, imm16圖2.6 sw的控制信號控制信號的取值分析如下。分支指令和跳轉(zhuǎn)指令都為零 Branch=jump=0因為是非分之指令,非跳轉(zhuǎn)指令。RegDst=x:因為不會寫到寄存器。ALUSrc=1:保證選擇busA作為ALU的A口操作數(shù)。ALUctr=add。MemtoReg=x:有沒有結(jié)果送到目的寄存器無所謂。RegWr=0:不會有結(jié)果被寫到目的寄存器。MemWr=1:保證在下個時鐘到來時,會有信息寫到數(shù)據(jù)存儲器。ExpOp=1:因為要利用擴展器Extender進行擴展。2.2.5 branch指令 指令完成的功能:rs, rt, imm16圖2.7 branch

13、的控制信號控制信號的取值分析如下。分支指令置位,跳轉(zhuǎn)指令清零 Branch=1,jump=0因為是分之指令,非跳轉(zhuǎn)指令。寄存器寫信號 RegDst=x:因為不會寫到寄存器。算術(shù)邏輯單元選擇信號 ALUSrc=0:保證選擇busB作為ALU的B口操作數(shù)。算術(shù)邏輯單元控制信號ALUctr=sub。存儲器寫寄存器信號MemtoReg=x:有沒有結(jié)果送到目的寄存器無所謂。寄存器寫信號 RegWr=0:不會有結(jié)果被寫到目的寄存器。存儲器寫信號MemWr=0:保證在下個時鐘到來時,不會有信息寫到數(shù)據(jù)存儲器。符號擴展信號 ExpOp=x:因為不需要利用擴展器Extender進行擴展。2.2.6 Jump指令

14、 指令完成的功能:jtarget圖2.8 jump指令的控制信號控制信號的取值分析如下。分支指令清零,跳轉(zhuǎn)指令置位 Branch=0,jump=1因為是非分之指令,跳轉(zhuǎn)指令。目的寄存器 RegDst=x:因為不會寫到寄存器。算術(shù)邏輯單元 ALUSrc=x:保證選擇busB作為ALU的A口操作數(shù)。算術(shù)邏輯單元控制信號ALUctr=x。存儲器到寄存器信號MemtoReg=x:有沒有結(jié)果送到目的寄存器無所謂。寄存器寫信號RegWr=0:不會有結(jié)果被寫到目的寄存器,避免寄存器在指令執(zhí)行過程時被寫入任何結(jié)果。存儲器寫信號MemWr=0:保證在下個時鐘到來時,不會有信息寫到數(shù)據(jù)存儲器。符號擴展信號ExpO

15、p=x:因為要利用擴展器Extender進行擴展。2.2.7邏輯電路圖圖2.9控制器邏輯電路圖2.3 VHDL代碼分析及實現(xiàn)2.3.1代碼分析1)實體一個VHDL實體指定了實體的名稱,實體的端口和實體所關(guān)聯(lián)的信息。所有的設(shè)計都是用一個或多個實體創(chuàng)建起來的。實體是設(shè)計的最基本模塊。設(shè)計的最高層次是頂層設(shè)計。如果設(shè)計是分等級的,那么頂層的描述將包含較低層次的描述。這些較低層次的描述將是被包含在頂層實體描述中的較低層次的實體。關(guān)鍵字ENTITY表示這是一個實體語句的開始。它指定了端口數(shù)量,端口方向和端口類型。實體是描述VHDL模型的接口。entity main_controller isport(o

16、p: in std_logic_vector(5 downto 0);RegWr,ALUSrc,RegDst,MemtoReg,MemWr,Branch,Jump,ExtOp,ALUOP0,ALUOP1,ALUOP2,RType: out std_logic);end main_controller;2)結(jié)構(gòu)結(jié)構(gòu)體描述實體的基本功能,并有對實體的行為進行建模的語句。所有的能被仿真 的實體都有一個結(jié)構(gòu)體描述,這個結(jié)構(gòu)體描述了實體的行為。一個單一的實體可以有多個結(jié)構(gòu)體,一個結(jié)構(gòu)體可能是一種行為,而令一個結(jié)構(gòu)體可能是一個設(shè)計的結(jié)構(gòu)描述。一個結(jié)構(gòu)體總是與一個實體和描述這個實體的行為相關(guān)聯(lián)。關(guān)鍵字ARC

17、HITECTURE表示這條語句描述了一個實體的結(jié)構(gòu)體。這個結(jié)構(gòu)體的名稱是behav,所描述的實體稱為main_controller。architecture behav of main_controller issignal iRtype, ori,addiu,lw,sw,beq,jump1: std_logic;beginprocess(op)beginend process;process(iRtype, ori,addiu,lw,sw,beq,jump1)end process;end behav;2.3.2代碼實現(xiàn)library ieee;use ieee.std_logic_1164

18、.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity main_controller isport(op: in std_logic_vector(5 downto 0);RegWr,ALUSrc,RegDst,MemtoReg,MemWr,Branch,Jump,ExtOp,ALUOP0,ALUOP1,ALUOP2,RType: out std_logic);end main_controller;architecture behav of main_controller issignal iRtyp

19、e, ori,addiu,lw,sw,beq,jump1: std_logic;beginprocess(op)begincase op is when "000000" =>iRtype <= '1'ori<='0' ; addiu <= '0' lw <= '0' sw <= '0' beq <= '0' jump1 <= '0'when "001101" =>iRtype <=

20、'0'ori<='1' ; addiu <= '0' lw <= '0' sw <= '0' beq <= '0' jump1 <= '0'when "001001" =>iRtype <= '0'ori<='0' ; addiu <= '1' lw <= '0' sw <= '0' beq <= '

21、0' jump1 <= '0'when "100011" =>iRtype <= '0'ori<='0' ; addiu <= '0' lw <= '1' sw <= '0' beq <= '0' jump1 <= '0'when "101011" =>iRtype <= '0'ori<='0' ; addiu <

22、;= '0' lw <= '0' sw <= '1' beq <= '0' jump1 <= '0'when "000100" =>iRtype <= '0'ori<='0' ; addiu <= '0' lw <= '0' sw <= '0' beq <= '1' jump1 <= '0'when "0

23、00010" =>iRtype <= '0'ori<='0' ; addiu <= '0' lw <= '0' sw <= '0' beq <= '0' jump1 <= '1'when others=>end case;end process;process(iRtype, ori,addiu,lw,sw,beq,jump1)beginif(iRtype = '1' )thenRegDst<= &

24、#39;1' ; ALUOP0<= '1' ; ALUOP2<= '0' RType<= '1' ;RegWr <= '1'ALUSrc <= '0'MemtoReg<= '0'MemWr<= '0'Jump<= '0'Branch<= '0'ExtOp<= '0'ALUOP1<= '0'elsif(ori='1')then ALU

25、OP1<= '1'RegWr <= '1'ALUSrc <= '1'RegDst<= '0' ; ALUOP0<= '0' ; ALUOP2<= '0' RType<= '0' ;MemtoReg<= '0'MemWr<= '0'Jump<= '0'Branch<= '0'ExtOp<= '0'elsif(addiu ='1&

26、#39;)thenRegWr <= '1'ALUSrc <= '1'ExtOp<= '1'ALUOP1<= '0'RegDst<= '0' ; ALUOP0<= '0' ; ALUOP2<= '0' RType<= '0' ;MemtoReg<= '0'MemWr<= '0'Jump<= '0'Branch<= '0'elsif( l

27、w ='1' )thenRegWr <= '1'ALUSrc <= '1'MemtoReg<= '1'ExtOp<= '1'ALUOP1<= '0'RegDst<= '0' ; ALUOP0<= '0' ; ALUOP2<= '0' RType<= '0' ;MemWr<= '0'Jump<= '0'Branch<= '0&#

28、39;elsif(sw ='1')thenMemWr<= '1'ALUSrc <= '1'ExtOp<= '1'ALUOP1<= '0'RegWr <= '0'RegDst<= '0' ; ALUOP0<= '0' ; ALUOP2<= '0' RType<= '0' ;MemtoReg<= '0'Jump<= '0'Branch<=

29、 '0'elsif(beq ='1')thenBranch<= '1' ALUOP2<= '1'ALUOP1<= '0'RegWr <= '0'ALUSrc <= '0'RegDst<= '0' ; ALUOP0<= '0' ; RType<= '0' ;MemtoReg<= '0'MemWr<= '0'Jump<= '0'

30、ExtOp<= '0'elsif(jump1='1')thenJump<= '1'ALUOP1<= '0'RegWr <= '0'ALUSrc <= '0'RegDst<= '0' ; ALUOP0<= '0' ; ALUOP2<= '0' RType<= '0' ;MemtoReg<= '0'MemWr<= '0'Branch<= '0'ExtOp<= 

溫馨提示

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

評論

0/150

提交評論