東北大學秦皇島分校計算機組成原理課程設計_第1頁
東北大學秦皇島分校計算機組成原理課程設計_第2頁
東北大學秦皇島分校計算機組成原理課程設計_第3頁
東北大學秦皇島分校計算機組成原理課程設計_第4頁
東北大學秦皇島分校計算機組成原理課程設計_第5頁
已閱讀5頁,還剩11頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、東北大學秦皇島分校計工學院計算機組成與結構課程設計指令系統及專用寄存器設計專業名稱計算機科學與技術班級學號學生姓名指導教師設計時間2012/12/172012/12/28【課程設計內容】題目:16位模型機設計指令系統及專用寄存器設計1、 指令系統設計:本次課程設計要設計的指令使第15、28、57號指令,要清楚各條指令的功能、指令類型、尋址方式等內容,本次設計用到指令的相關內容如表1所示。表1 本次要設計的指令指令編號助記符指令類型功能尋址方式15SUB A, MM算術運算指令從累加器A中減去存儲器MM地址的值直接尋址28OR A, #II邏輯運算指令累加器A“或”立即數II立即數尋址57NOP

2、空指令不執行任何操作2、 模型機硬件設計: 題目:模型機硬件設計程序計數器PC PC是用來存放下一條指令的地址的。當執行一條指令時,首先需要根據PC中存放的指令地址,將指令由內存取到指令寄存器中,此過程稱為“取指令”。與此同時,PC中的地址或自動加1或由轉移指針給出下一條指今的地址。此后經過分析指令,執行指令。完成第一條指令的執行,而后根據PC取出第二條指令的地址,如此循環,執行每一條指令。3、 邏輯電路設計:題目:十六選一選擇器的設計 十六選一選擇器是一個數據選擇器,它有16個數據輸入端,4個控制輸入端,一個輸出端,它的功能就是由4個控制輸入端來決定輸出端輸出的是哪個數據輸入端的數據?!鞠到y

3、設計】1、 模型機邏輯框圖(整機邏輯框圖、芯片引腳及CPU邏輯框圖如下圖1、圖2、圖3所示) 圖1 整機邏輯框圖圖2 芯片引腳圖3 CPU邏輯框圖2、 指令系統設計 指令類型及尋址方式見表1。3、 微操作控制信號1、XRD :外部設備讀信號,當給出了外設的地址后,輸出此信號,從指外設讀數據。2、EMWR:程序存儲器EM寫信號。3、EMRD:程序存儲器EM讀信號。4、PCOE:將程序計數器PC的值送到地址總線ABUS上(MAR)。5、 EMEN:將程序存儲器EM與數據總線DBUS接通,由EMWR和EMRD 決定是將DBUS數據寫到EM中,還是從EM讀出數據送到DBUS。6、 IREN:將程序存儲

4、器EM讀出的數據打入指令寄存器IR。7、 EINT:中斷返回時清除中斷響應和中斷請求標志,便于下次中斷。8、 ELP:PC打入允許,與指令寄存器IR3、IR2位結合,控制程序跳轉。9、 FSTC:進位置1,CY=110、FCLC:進位置0,CY=011、MAREN:將地址總線ABUS上的地址打入地址寄存器MAR。12、MAROE:將地址寄存器MAR的值送到地址總線ABUS上。13、OUTEN:將數據總線DBUS上數據送到輸出端口寄存器OUT里。14、STEN:將數據總線DBUS上數據存入堆棧寄存器ST中。15、RRD:讀寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。16、RWR:寫

5、寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。17、CN:決定運算器是否帶進位移位,CN=1帶進位,CN=0不帶進位。18、FEN:將標志位存入ALU內部的標志寄存器。19、WEN:將數據總線DBUS的值打入工作寄存器W中。20、AEN:將數據總線DBUS的值打入累加器A中。21-23: X2 X0:X2、X1、X0三位組合來譯碼選擇將數據送到DBUS上的寄存器。 24-26: S2 S0:S2、S1、S0三位組合決定ALU做何種運算。4、 指令執行流程 指令執行流程如表2所示:表2 指令的執行流程編號指令指令功能 操作碼節拍數微操作控制信號0_FATCH_取指令000000T2(

6、010)PCMARPCOEMAREN T1 (001)EMWEMENEMRDWEN T0 (000)WIRPC+1PCIREN15SUB A, MM從累加器A中減去存儲器MM地址的值001110XX T6PCMARPCOEMAREN T5PC+1PCEMDBUSDBUSWEMENEMRDWEN T4ALU(A-W)DS2S1S0=001 T3DDBUSDBUSF 續下表 接上表28OR A, #II累加器A“或”立即數II011011XXT6PCMARPCOEMARENT5PC+1PCEMDBUSDBUSWEMENEMRDWENT4ALU(A OR W)DS2S1S0=010T3DDBUSDB

7、USF57NOP不執行任何操作111000XX指令的執行流程圖如圖4所示:開始 PCMAR T2PCOE;MAREN EMW T1EMEN;EMRD;WEN WIR PC+1PC T0IREN譯碼或測試SUB A, MMOR A,#II NOPT6 PCMAR PCMART6 PC+1PC EMWT5 PC+1PCEMWT5T4ALU(A-w)DALU(A OR W)DT4 DFT3 DFT3 圖4 指令的執行流程圖【系統實現】1、 模型機實現(程序計數器PC的實現)(1) 邏輯電路的圖形符號表示、功能程序計數器電路圖形符號如圖所示: 圖5 程序計數器圖形符號表示程序計數器的功能如表3(其中C

8、、ELP、IR2、IR3、Z是輸入端,LDPC是輸出端,LDPC=1表示程序順序執行,即執行自加一,LDPC=0表示程序的轉移執行):表3 程序計數器PC的功能表輸 入 端輸出端ELPIR3IR2CZLDPC 1 x x x x 1 0 001x0 0000x1 001x10 001x0 1 01xxx0(2)指令所涉及的微操作控制信號 ELP:PC打入允許,與指令寄存器的IR3、IR2位結合,控制程序跳轉。 PCOE:將程序計數器PC的值送到地址總線ABUS上。 LDPC:內部信號,轉移控制(=0)時,轉移地址=DBUS上內容。 ICEN:取中段指令信號,低有效。(3)系統實現實現程序計數器

9、PC的VHDL源代碼:library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following library declaration if instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity hello is Port ( ELP : in STD_LOGIC; I

10、R3 : in STD_LOGIC; IR2 : in STD_LOGIC; C : in STD_LOGIC; Z : in STD_LOGIC; LDPC : out STD_LOGIC);end hello;architecture Behavioral of hello isbeginprocess(ELP,IR3,IR2,C,Z) isbeginif(ELP = 1) then LDPC = 1;else if(IR3 = 0) then if(IR2 = 0) then if(C = 1) then LDPC = 0; else LDPC = 1; end if; else if(

11、Z = 1) then LDPC = 0; else LDPC = 1; end if; end if; else LDPC = 0; end if;end if; end process;end Behavioral;2、 邏輯電路設計(十六選一數據選擇器的設計)(1)邏輯電路的圖形符號表示、功能十六選一數據選擇器的電路圖形符號如圖6所示:圖6 十六選一選擇器圖形符號表示功能:圖中s1、s2是控制輸入端,ainpin是數據輸入端,y是輸出端;s1、s2的輸入決定了y的輸出時那個輸入端的值,本次設計的十六選一選擇器是由五個四選一數據選擇器組成,其中s1和四個作為數據輸入的芯片的控制端相連,s2

12、和另一個四選一數據選擇器相連,作用是選擇由哪一個芯片作為輸出。(2)指令所涉及的微操作控制信號十六選一選擇器用到的控制信號就是s1、s2,s1是控制四個數據出入芯片的數據輸出,s2是控制有一個芯片的輸出可以作為輸出,功能表如表4如下:表4 十六選一選擇器的功能表控制信號輸出端s2s1y0000ain0001bin0010cin0011din0100ein0101fin0110gin0111hin1000iin1001jin1010kin1011lin1100min1101nin1110oin1111pin(3)系統實現實現十六選一選擇器的VHDL源代碼如下:library ieee;use i

13、eee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux161 isport(ain,bin,cin,din,ein,fin,gin,hin,iin,jin,kin,lin,min,nin,oin,pin:in std_logic;s1,s2:in std_logic_vector(1 downto 0);y:out std_logic);end;architecture one of mux161 iscomponent mux41port(a,b,c,d:in std_logic; s:in std_logic_ve

14、ctor(1 downto 0);y:out std_logic);end component;signal e,f,g,h:std_logic;beginu1:mux41 port map(ain,bin,cin,din,s1,e);u2:mux41 port map(ein,fin,gin,hin,s1,f);u3:mux41 port map(iin,jin,kin,lin,s1,g);u4:mux41 port map(min,nin,oin,pin,s1,h);u5:mux41 port map(e,f,g,h,s2,y);end;【系統測試】(一)、模型機測試(程序計數器PC測試)

15、1、 功能仿真仿真時用到的輸入波形如圖7所示:圖7 仿真時用到的輸入波形圖仿真得到的波形圖如圖8所示:圖8 程序計數器PC仿真結果波形圖結果分析:從圖8中可以看出程序計數器PC的各個輸入端的在每一時刻得到的輸出都與表3程序計數器的功能表中期待的輸出一致,所以程序計數器PC的設計是正確的。2、 RTL級邏輯電路程序計數器PC的RTL級電路圖如圖9、圖10所示:圖9 程序計數器PC RTL級電路圖圖10 程序計數器PC 詳細電路(二)硬件測試(十六選一選擇器測試)1、功能仿真 十六選一選擇器仿真用到的輸入波形如圖11所示:圖11 十六選一選擇器仿真時的輸入波形仿真得到的結果波形如圖12所示:圖12

16、 仿真得到的結果波形圖結果分析:對照得到的結果波形圖圖12和十六選一選擇器的功能表表4可以看出,得到的結果和功能所期望的結果一樣,所以此設計是正確的。2、RTL級邏輯電路 十六選一選擇器的RTL級邏輯電路以及所用到的四選一選擇器的邏輯電路如下各圖所示:圖 13 十六選一選擇器的內部芯片圖圖 14 四選一選擇器的芯片圖圖15 四選一選擇器芯片控制端連接邏輯圖圖16 四選一選擇器芯片內部的邏輯圖【總結與體會】 此次課程設計遇到了好多問題,特別是軟件的安裝和使用問題,仿真軟件ModelSim安裝好后老是打不開,裝了好多次都不行,經過不斷地查找資料終于找到是因為license.dat文件設置的錯誤;還有就是Xilinx ISE軟件沒法調用仿真軟件ModelSim進行仿真,解決的辦法是因為新建文件時沒有選用用ModelSim軟件仿真選項;還有就是建好測試波形進行測試時,Process中沒有ModelSim Simulator選項,本以為是軟件的錯誤就有進行了安裝,可是還是這個樣子,后來不經意點了一下Sourc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論