東北大學秦皇島分校標志寄存器設計_第1頁
東北大學秦皇島分校標志寄存器設計_第2頁
東北大學秦皇島分校標志寄存器設計_第3頁
東北大學秦皇島分校標志寄存器設計_第4頁
東北大學秦皇島分校標志寄存器設計_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、東北大學秦皇島分校計算機與通信工程學院計算機組成原理課程設計指令系統及標志寄存器設計專業名稱計算機科學與技術班級學號學生姓名指導教師設計時間2014.12.262015.1.8課程設計任務書專業:計算機科學與技術 學號: 學生姓名(簽名): 設計題目:1、設計實驗條件808實驗室硬件:PC機軟件:Xilinx ISE ModelSim 編程語言:VHDL2、設計任務及要求 11號指令的設計; 22號指令的設計; 36號指令的設計; 53號指令的設計; 標志寄存器F; 模為60,具有異步復位、同步置數功能的8421BCD碼計數器3、設計報告的內容3.1設計題目與設計任務(設計任務書)題目:1、1

2、6位模型機設計指令系統及標志寄存器設計表1 指令系統設計表指令編號指令助記符機器碼指令功能11ADDC A, EM001010XX將存儲器EM地址的值加入累加器A中帶進位22AND A, R?010101XX累加器A“與”間址存儲器的值36MOV R?, #II100011XX將立即數II送到寄存器R?中53RR A110100XX累加器A右移2、模型機硬件設計:標志寄存器F3、邏輯電路設計:模為60,具有異步復位、同步置數功能的8421BCD碼計數器3.2 前言(緒論)(設計的目的、意義等)1.融會貫通計算機組成原理課程的內容,通過知識的綜合運用,加深對計算機系統各個模塊的工作原理及相互聯系

3、的認識; 2.學習運用VHDL進行FPGA/CPLD設計的基本步驟和方法,熟悉EDA的設計、模擬調試工具的使用,體會FPGA/CPLD技術相對于傳統開發技術的優點; 3.培養科學研究的獨立工作能力,取得工程設計與組裝調試的實踐經驗。3.3 設計主體(各部分設計內容、分析、結論等)圖1芯片引腳: 圖1 整機邏輯結構框圖圖2 芯片引腳圖CPU邏輯結構框圖:圖3【設計指令系統】圖2 芯片引腳圖圖3 CPU邏輯框圖1、指令系統設計表2 指令類型、尋址方式表第11條指令: ADDC A, EM指令類型:算術運算指令尋址方式:存儲器直接尋址第22條指令: AND A, R?指令類型:邏輯運算指令尋址方式:

4、寄存器間接尋址第36條指令: MOV R?, #II指令類型:數據傳送指令尋址方式:立即數尋址第53條指令: RR A指令類型:移位操作指令尋址方式:寄存器直接尋址 2、微操作控制信號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: 將程序存儲器EM讀出的數據打

5、入指令寄存器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: 寫寄存器組

6、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做何種運算。3、 指令執行流程表3 指令分解與微操作對應控制信號表編號助記符功能機器碼周期總數CT節拍數微操作控制信號1_FATCH_取指令00

7、0000XXT2PCMARPCOE, MAREN010T1EMWEMEN, EMRD, WENT0WIRPC + 1PCIREN11ADDC A, EM將存儲器EM地址的值加入累加器A中001000XXT7PCMARPCOE, MARENT6EMMARPC+1PCEMEN EMRD MAREN111T5EMWEMEN EMRD WENT4ALU(A+W) DS2S1S0=000 FSTCT3DAAEN22AND A, R?累加器A“與”間址存儲器的值010101XX101T5R?MARRRD MARENT4EMDBUSWPC+1PCEMEN EMRD WENT3ALU (A,W)AS2S1S0

8、=011 FEN AEN 36MOV R?, #II將立即數II送到寄存器R?中100011XXT5PCMARPCOE, MAREN101T4EMDBUSWPC+1PCEMEN EMRD WENT3WR?RWR 53 RR A累加器A右移110100XX 100 T4RDBUSW RRD WEN T3ALU (A,W)A AEN FEN CN指令執行流程圖: ADDC A, EM AND A, R? MOV R?, #II RR APCMAR RDBUSW PCMAR R?MAREMMAR,PC+1PC EMDBUSWPC+1PCALU(A,W)AEMDBUSWPC+1PC EMW ALU(A

9、+W)AALU(A+W)D WR? DA圖4 指令執行流程圖【模型及實現(標志寄存器F)】(1) 邏輯電路的圖形符號表示、功能圖4 標志寄存器邏輯電路圖形符號圖(2)初始化的波形圖:圖5 初始化的波形圖(3) RTL級邏輯電路: 圖6 RTL級邏輯電路圖(4)功能仿真:圖7 仿真圖 (5)實驗代碼: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

10、 instantiating- any Xilinx primitives in this code.-library UNISIM;-use UNISIM.VComponents.all;entity abc is Port(OFC:in STD_LOGIC; SF:in STD_LOGIC;ZF:in STD_LOGIC;PF:in STD_LOGIC;CF:IN STD_LOGIC;CLK:IN STD_LOGIC;COFC:OUT STD_LOGIC;CSF:OUT STD_LOGIC;CZF:OUT STD_LOGIC;CPF:OUT STD_LOGIC;CCF:OUT STD_LO

11、GIC);end abc;architecture Behavioral of abc isbeginPROCESS(CLK)ISBEGINIF(CLK'EVENT AND CLK='1')THEN IF(OFC='1')THEN COFC<='1' ELSE COFC<='0' END IF; IF(SF='1')THEN CSF<='1' ELSE CSF<='0' END IF; IF(ZF='1')THEN CZF<=&#

12、39;1' ELSE CZF<='0' END IF; IF(PF='1')THEN CPF<='1' ELSE CPF<='0' END IF; IF(CF='1')THEN CCF<='1' ELSE CCF<='0' END IF; END IF;END PROCESS;end Behavioral;【模型及實現(模為60,具有異步復位、同步置數功能的8421BCD碼計數器)】(1) 邏輯電路的圖形符號表示、功能圖8 計數器邏輯電路圖(2)

13、初始化的波形圖:圖9 初始化波形圖( 3 ) RTL級邏輯電路:圖10 RTL 級邏輯電路圖(4)功能仿真:圖11 功能仿真圖 (5)實驗代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntm60 IS PORT(ci:IN STD_LOGIC; nreset:IN STD_LOGIC; load:IN STD_LOGIC; d:IN STD_LOGIC_vector(7 downto 0); clk:IN STD_LOGIC; co:OUT STD_LOGIC; qh:BU

14、FFER STD_LOGIC_VECTOR(3 DOWNTO 0); ql:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END cntm60;ARCHITECTURE behave OF cntm60 ISBEGIN co<='1' WHEN(qh="0101" AND ql="1001" AND ci='1')else'0' process(clk,nreset) BEGIN IF(nreset='0')THEN qh<="0000&quo

15、t; ql<="0000" ELSIF(clk'EVENT AND clk='1')THEN IF(load='1')THEN qh<=d(7 downto 4); ql<=d(3 downto 0); ELSIF(ci='1')then IF(ql=9)then ql<="0000" IF(qh=5)then qh<="0000" else qh<=qh+1 end if;elseql<=ql+1; end if; end if; en

16、d if; end process; end behave;3.4 結束語(設計的收獲、體會等)這次課程設計,讓我再次回顧了指令和標志寄存器的作用和功能。設計最初,我們不知道如何設計實現標志寄存器的功能。在設計的過程中也發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。這次課程設計中用到了Xilinx ISE和ModelSim兩個軟件,還用到了一種新的編程語言VHDL,在課設之前我是沒有接觸過的,所以一切都是從頭學起,通過和同學交流以及查閱一些資料,大致上掌握了運用VHDL進行FPGA/CPLD設計的基本步驟和方法,熟悉了EDA的設計、模擬調試工具的使用,在使用過程中體會

17、到了FPGA/CPLD技術相對于傳統開發技術的優點,總體上是積累了很多實踐經驗。在整個設計過程中,關于內容一,相關指令的執行流程的設計,相對來說比較容易,按著老師課上講的內容也比較容易設計出來指令流程以及需要的控制信號,但是在做內容二,標志寄存器,它涉及到ALU的各種運算、中斷系統及其他一些不常見的功能,由于涉及面比較廣,我們在有限的時間內沒法完成,最終只能實現標志寄存器簡單的儲存與輸出。不過最后在努力下還是完成了,其實在整個過程中,最大的難題還是需要用到的兩個軟件還有VHDL語言,由于時間短而且之前也沒有接觸過,所以在開始時,還是花了很多時間熟悉這兩個軟件,而對于VHDL這種硬件編程語言,它不同于以前學習的軟件編程語言,通過課設也只是了解了皮毛,要想真正的掌握還需要課下更多的學習。3.5 參考資料1 李云松,宋銳Xilin

溫馨提示

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

評論

0/150

提交評論