計算機組成原理課程設計基于eda和fpga技術的8位模型計算機的設計與實現_第1頁
計算機組成原理課程設計基于eda和fpga技術的8位模型計算機的設計與實現_第2頁
計算機組成原理課程設計基于eda和fpga技術的8位模型計算機的設計與實現_第3頁
計算機組成原理課程設計基于eda和fpga技術的8位模型計算機的設計與實現_第4頁
計算機組成原理課程設計基于eda和fpga技術的8位模型計算機的設計與實現_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄前言 2第一章課程設計內容 21.1實驗要求 21.2實驗目的 2第二章實驗原理及方案 22.1實驗原理 22.2實驗方案 22.2.1指令系統(tǒng)………..……52.2.2模型計算機硬件 62.2.3微指令設計 62.2.3.1微代碼定義 62.2.3.2微代碼具體設計 72.2.4控制臺解釋微程序 82.2.5運行指令流程圖 2第三章具體設計過程 93.1各個主要基本部件設計 23.1.1算術邏輯部件(ALU) 23.1.2程序計數器(PC) 23.1.3寄存器 23.1.4存儲器 23.2模型機頂層框圖設計 2第四章程序測試和指令調試 24.1波形仿真 24.2實驗調試 2第五章設計總結與體會 2參考文獻 2前言計算機誕生以來,計算機還是主要由運算器、控制器組成CPU,用二進制數字表示計算機的操作指令和數據,將其存放在存儲器中,通過CPU自動地從存儲器提取指令和數據,并按照指定的順序完成各項任務。這也改變了又來人們的生活。同事隨著大規(guī)模集成電路技術的開發(fā),計算機組織設計與實現技術也在不斷發(fā)展?,F在,不僅軟件可編程,硬件電路也可以編程所以,在這個時候,我們更要注重一臺電子計算機的整體模型,而不是一味的強調怎樣去追求這個時代的計算機發(fā)展速度。這已經成為我們?yōu)楦掠嬎銠C硬件的必備知識。讓學生通過動腦和動手解決計算機設計中的實際問題,本次課題設計便是為此應運而生的。在這次課程設計當中,我們需要結合計算機組成原理的基本理論,利用EDA技術和FPGA技術設計實現一個8位模型計算機。因此,我們需要掌握ALU,微程序控制器,時序產生電路,數據通路,存儲器,指令系統(tǒng)單元電路的設計方法,并且在此基礎上,進一步將單元電路組成系統(tǒng),構造一臺基本模型計算機。本報告便是通過對各關鍵部位進行單元和集成仿真測試后,下載到目標芯片里,最終形成一個功能較為完善的8位模型計算機系統(tǒng)。課程設計內容1.1實驗要求在QuartusⅡ6.0上完成8位模型機的設計。具體的要求如下:(1)在定義五條機器指令,并編寫響應的微程序作為模型計算機的控制器;(2)使用電路框圖設計模型計算機電路,并下載編程芯片為定制的簡單模型CPU.(3)在實驗系統(tǒng)上連接輸入按鍵和輸出液晶顯示屏為輸出的模型計算機系統(tǒng)。1.2實驗目的(1)深入理解基本模型計算機的功能和組成知識;(2)深入學習計算機各類典型指令的執(zhí)行流程;(3)學習微程序控制器的設計過程和相關技術,掌握LPM_ROM的配置方法;(4)掌握微程序的設計方法,學會編寫二進制微指令代碼表;(5)在掌握部件單元電路實驗的基礎上,進一步將單元電路組成系統(tǒng),構造一臺基本模型計算機;(6)通過這次的課程設計讓學生通過動腦和動手解決計算機設計中的實際問題。綜合運用所學計算機組成原理知識,在掌握部件單元電路實驗的基礎上,進一步將其組成系統(tǒng)構造一臺基本的模型計算機,掌握整機概念,并設計機器指令系統(tǒng),編寫程序,在所設計的模型計算機上調試運行。第二章實驗原理及方案2.1實驗原理本實驗將能在微過程控制下自動產生各部件單元控制信號,實現特定的功能。實驗中,計算機數據通路的控制將由微過程控制器來完成,CPU從內存中取出一條機器指令到指令執(zhí)行結束的一個指令周期,全部由微指令組成的序列來完成,即一條機器指令對應一個微程序。。圖2.1.1模型機的數據通路2.2實驗方案2.2.1指令系統(tǒng)本實驗采用五條機器指令。指令編碼如下表:表一指令編碼助記符操作碼addr地址碼功能描述IN00H“INPUT”→R0,鍵盤輸入數據ADDaddr10HXXHR0+[addr]→R0STAaddr20HXXHR0→[addr]OUTaddr30HXXHBUS→“OUTPUT”,顯示輸出數據JMPaddr40HXXHaddr→PC指令分單字節(jié)和雙字節(jié),單字節(jié)指令只有IN一條,其余都是雙字節(jié)指令。指令各式如表二和表三。表二單字節(jié)指令格式76543210操作碼源寄存器目的寄存器表三雙字節(jié)指令格式7654321076543210操作碼操作數(內存地址碼)源和目的寄存器可以是三個工作寄存器之一,寄存器標號R0為00,R1為01,R2為10。為了在試驗臺上用鍵盤輸入程序和數據到內存,以及通過液晶屏顯示輸出,設計了3個控制臺操作命令,通過按鍵SWB和SWA組合實現(括號中是SWB,SWA的鍵值):存儲器讀KRD(00)操作,存儲器KWE(01)操作,啟動程序執(zhí)行RP(11)操作。2.2.2模型計算機硬件在本此設計的模型機硬件主要有以下部分組成:運算器:采用8位運算器ALU181,實現算術邏輯運算。該電路的兩個操作數輸入端設置兩個寄存器DR0和DR1。程序計數器PC:用來指示執(zhí)行指令的地址,以便從內存取得指令。地址寄存器AR:存放并輸出訪問內存單元的地址。指令寄存器IR:鎖存取得的指令,供控制電路解碼分析執(zhí)行。此外,還提供了3個工作寄存器R0,R1和R2。存放可編程程序和數據的存儲器RAM也在芯片上實現(像單片機一樣)。各個功能模塊通過總線連接??刂破鞑捎梦⒊绦蛟O計。整個模型機各功能部件的工作及通路連接的微操作代碼如表3.11和表3.12所示。采用字寬24位的ROM存放微程序,3個3-8譯碼器組成24位輸出譯碼電路。微指令設計2.2.3.1微代碼定義由于在本次設計的模型機中只設計五條指令,以及它們所實現的任務,可以將每條微指令用24位的微代碼來表示,如表四所示表四 24位微代碼定義242322212019181716151413121110987654321S3S2S1S0MCnWEA9A8A字段B字段C字段uA5uA4uA3uA2uA1uA0操作控制信號譯碼器下址字段如表四所示的24位微代碼信號的功能解釋如下:S3-S0,ALU的操作選擇信號,控制執(zhí)行16種算術邏輯操作之一種;M,ALU操作方式選擇,等于O為算術操作,等于1時執(zhí)行邏輯操作;CN,進位標志,等于0時,最低位有進位輸入,等于1表示無進位;WE,控制RAM的讀寫信號,0值為讀,1值為寫;A9,A8,經譯碼產生鍵盤SW_B,存儲器RAM,輸出顯示LED通路選擇信號;A字段,經譯碼產生各部件從總線輸入選通信號,參考表五;表五微指令譯碼字段說明A字段B字段C字段151413選擇121110選擇987選擇000000000001LDRi001RS_B001P(1)010LDR1010RD_B010P(2)011LDR2011RJ_B011P(3)100LDIR100SFT_B100P(4)101LOAD101ALU_B101LDAR110LDAR110PC_B110LDPCB字段,經譯碼產生各部件到總線輸出選通信號,參考表五;C字段,經譯碼產生測試轉移P1~P4,裝入程序計數器LDPC,參考表五;μA5~μA0,微程序地址信號2.2.3.2微代碼具體設計綜上所述,實現模型機指令的解釋與執(zhí)行的微程序代碼。這些微代碼寫入ROM中。注意,表六中的微地址是8進制表示。表六 微代碼微地址微指令S3S2S1S0MCNWEA9A8ABCμA5~μA0000181100000000110000001000100000101ED820000000111101101100000100200C0480000000011000000010010000300E0040000000011100000000001000400B0050000000010110000000001010501A20600000001101000100000011006919A011001000110011010000000010700E00D000000001110000000001101100010010000000000010000000000011101ED830000000111101101100000111201ED870000000111101101100001111301ED8E0000000111101101100011101401ED96000000011110110110010110150382010000000110000010000000011600E00F0000000011100000000011111700A0150000000010100000000101012001ED920000000111101101100100102101ED940000000111101101100101002201A010000000011010000000010000230180010000000110000000000000012406201100000110001000000001000125010A010000000100001010000000012600D1810000000011010001100000012.2.4控制臺解釋微程序為了在實驗臺上用鍵盤輸入程序和數據到內存,以及通過液晶屏顯示輸出,設計了3個控制臺操作命令,通過安檢SWA和SWB組合實現,同時根據微代碼的設計可以將控制臺設計為如下的解釋微程序??刂婆_鍵盤譯碼微程序流程如圖。圖2.2.4.1控制臺鍵盤譯碼微程序流程2.2.5運行指令流程圖根據每條機器指令執(zhí)行的微操作順序,微程序流程圖如下圖:第三章具體設計過程3.1各個主要基本部件設計在設計模型機的主要的順序是從底層開始設計,逐步向上設計,最后實現頂層的電路圖的設計。3.1.1算術邏輯部件(ALU)ALU是計算機的核心部件之一,它能執(zhí)行加法和減法等算術運算,也能執(zhí)行“與”、“或”等邏輯運算。ALU的基本功能根據74LS181的功能用VHDL編輯而成的。本次設計中的運算器功能部件可以對8為數據進行算術/邏輯運算,采用硬件描述語言VHDL設計。該元件,共有兩個數據輸入端A[7…0]、B[7…0],S[3…0]控制執(zhí)行16種算術/邏輯運算中的一種,M端控制操作方式的選擇(算術運算和邏輯運算),CN表示進位標志(進位和無進位)。具體設計如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYALU181ISPORT(S:INSTD_LOGIC_VECTOR(3DOWNTO0);A:INSTD_LOGIC_VECTOR(7DOWNTO0);B:INSTD_LOGIC_VECTOR(7DOWNTO0);F:OUTSTD_LOGIC_VECTOR(7DOWNTO0);COUT:OUTSTD_LOGIC_VECTOR(3DOWNTO0);M:INSTD_LOGIC;CN:INSTD_LOGIC;CO:OUTSTD_LOGIC;FZ:OUTSTD_LOGIC);ENDALU181;ARCHITECTUREbehavOFALU181ISSIGNALA9:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALB9:STD_LOGIC_VECTOR(8DOWNTO0);SIGNALF9:STD_LOGIC_VECTOR(8DOWNTO0);BEGINA9<='0'&A;B9<='0'&B;PROCESS(M,CN,A9,B9,S)BEGINCASESIS WHEN"0000"=>IFM='0'THENF9<=A9+CN;ELSEF9<=NOTA9;ENDIF;WHEN"0001"=>IFM='0'THENF9<=(A9ORB9)+CN;ELSEF9<=NOT(A9ORB9);ENDIF;WHEN"0010"=>IFM='0'THENF9<=(A9OR(NOTB9))+CN;ELSEF9<=(NOTA9)ANDB9;ENDIF;WHEN"0011"=>IFM='0'THENF9<="000000000"-CN;ELSEF9<="000000000";ENDIF;WHEN"0100"=>IFM='0'THENF9<=A9+(A9ANDNOTB9)+CN;ELSEF9<=NOT(A9ANDB9);ENDIF;WHEN"0101"=>IFM='0'THENF9<=(A9ORB9)+(A9ANDNOTB9)+CN;ELSEF9<=NOTB9;ENDIF;WHEN"0110"=>IFM='0'THENF9<=A9-B9-CN;ELSEF9<=A9XORB9;ENDIF;WHEN"0111"=>IFM='0'THENF9<=(A9AND(NOTB9))-CN;ELSEF9<=A9AND(NOTB9);ENDIF;WHEN"1000"=>IFM='0'THENF9<=A9+(A9ANDB9)+CN;ELSEF9<=(NOTA9)ORB9;ENDIF;WHEN"1001"=>IFM='0'THENF9<=A9+B9+CN;ELSEF9<=NOT(A9XORB9);ENDIF;WHEN"1010"=>IFM='0'THENF9<=(A9OR(NOTB9))+(A9ANDB9)+CN;ELSEF9<=B9;ENDIF;WHEN"1011"=>IFM='0'THENF9<=(A9ANDB9)-CN;ELSEF9<=A9ANDB9;ENDIF;WHEN"1100"=>IFM='0'THENF9<=A9+A9+CN;ELSEF9<="000000001";ENDIF;WHEN"1101"=>IFM='0'THENF9<=(A9ORB9)+A9+CN;ELSEF9<=A9OR(NOTB9);ENDIF;WHEN"1110"=>IFM='0'THENF9<=(A9OR(NOTB9))+A9+CN;ELSEF9<=A9ORB9;ENDIF;WHEN"1111"=>IFM='0'THENF9<=A9-CN;ELSEF9<=A9;ENDIF;WHENOTHERS=>F9<="000000000"; ENDCASE;IF(A9=B9)THENFZ<='0';ELSEFZ<='1';ENDIF;ENDPROCESS;F<=F9(7DOWNTO0);CO<=F9(8);COUT<="0000"WHENF9(8)='0'ELSE"0001";ENDbehav;3.1.2程序計數器(PC)程序計數器采用LPM庫中的元件lpm_counter來完成的,計數器的數據寬度為8位。程序計數器(PC)是為能夠進行主機系統(tǒng)設計實驗,控制程序的自動運行而設計的部件。改程序計數器可以提供8為的程序地址,具有自增1和接收轉移地址的功能。具體設計如下:圖3.1.2.1程序計數器元件圖圖3.1.2.2程序計數器功能部件詳細設計圖3.1.3寄存器在該模型機中用到的寄存器主要有數據緩沖寄存器、地址寄存器、工作寄存器和指令寄存器。數據緩沖寄存器是用來存放CPU主存讀取的一個指令字或一個數據字,它是采用鎖存器結構來實現的。他們都是可以直接從LPM庫中調用的。圖3.1.3.1數據緩沖寄存器邏輯結構圖3.1.3.2指令寄存器邏輯結構圖3.1.3.3工作寄存器元件圖圖3.1.3.4工作寄存器邏輯結構3.1.4存儲器用于存儲微程序的LPM_ROM用初始化存儲器編輯窗口LPM_ROM配置文件.mif的,其中rom5.mif的數據是微指令碼,如圖3.1.4.1.圖3.1.4.2存儲器3.2模型機頂層框圖設計通過各個小的部件的設計,最后將各個部件如數據通路一樣的將部件連接起來,完成如圖的頂層框圖。圖3.2.18位CPU的頂層電路圖圖3.2.18位CPU的頂層電路圖第四章程序測試和指令調試4.1波形仿真電路的設計與仿真在QuartusⅡ的環(huán)境下完成的,硬件測試平臺為杭州康芯電子“SOPC/EDA組成原理實驗開發(fā)系統(tǒng)”上完成的。其中編寫的rom5.mif保存在預實驗電路cpu5.bdf工程所在的文件夾中,與實驗電路cpu5.bdf一同編譯后得到下載文件cpu5.sof,設計波形激勵文件進行波形的仿真,結果如圖4.1.1.圖4.1.1波形仿真圖4.2實驗調試下載編程和試驗臺聯機測試下載編程芯片方法在前面實驗已經介紹,下面主要講述測試。在GW48實驗系統(tǒng)上選用電路模式NO.0。實驗臺資源應用說明如下:液晶屏LCD顯示程序運行監(jiān)測信息如圖3.39,功能說明如表七。數碼管LED,數碼管2,1顯示手工輸入數據的值。表七LCD液晶顯示功能說明名稱作用名稱作用名稱作用ININPUT輸入單元OUTOUTPUT輸出單元ALU算術邏輯單元R0寄存器R0R1寄存器R1R2寄存器R2DR1暫存器DR1DR2暫存器DR2BUS內部數據總線PC程序計數器AR地址寄存器RAM程序/數據存儲器IR指令積存器μA微程序地址MC微指令代碼鍵盤,按鍵8,7,4,3分別表示模型機復位RST,模擬節(jié)拍SETP,控制臺控制信號SWB,SWA。是乒乓開關,按一次為高電平,對應的發(fā)光管點亮,再按一次即變?yōu)榈推?,對應發(fā)光管滅,再按又變高。按鍵2,1為數據錄入鍵,16進制輸入,每按一次加一,顯示在數碼管上。1)手動輸入實驗程序實驗程序用來檢查模型機的指令執(zhí)行情況,包含了指令系統(tǒng)全部5條指令,用機器指令代碼編程,參考實驗程序如表八:表八機器指令試驗程序存儲器地址內容助記符說明00H00HIN“INPUT”→R0,鍵盤輸入數據01H10HADD[0AH][R0]+[0AH]→R002H0AH03H20HSTA[0BH][R0]→[0BH]04H0BH05H30HOUT[OBH][0BH]“OUTPUT”,顯示輸出數據06H0BH[09H]→PC,以[08H]內容為轉移地址07H40HJMP[08H]08H00H09H00H0AH34HDB34H被加數0BHXXH求和結果輸入程序的方法如下:=1\*GB3① 通過按鍵4,3,置SWB,SWA為01,并按復位按鍵8.令模型機工作在控制臺寫存儲器狀態(tài),執(zhí)行KWE微程序;② 通過按鍵2,1輸入實驗程序代碼數據,按鍵數據顯示在數碼管2,1上。然后再按單步STEP按鍵7兩次,產生低高低電平變化的正脈沖,可以通過液晶屏顯示的內容跟蹤控制臺寫KWE微程序的執(zhí)行過程。當3次正脈沖(每次按鍵7兩次)后,液晶屏顯示RAM等于鍵2,1輸入的值,這時,可以繼續(xù)通過鍵2,1輸入第2個數據,直至機器指令實驗程序代碼全部輸入完畢。③ 仿照=1\*GB3①②操作,只是設置SWB,SWA為00,然后按復位按鍵8。通過手動鍵7跟蹤控制臺讀存儲器操作(KRD)微程序的執(zhí)行。并核對輸入模型機RAM中的數據是否正確。注意,此操作不是必須的。可以在計算機上編譯好代碼文件,并隨同模型CPU設計文件一同編譯進SOF下載文件中,直接下載進入FPGA。方法可以按如下步驟完成:=1\*GB3① 在QuartusⅡ環(huán)境下,打開工程文件CPU5A,修改CPU5A.bdf中LPM_RAM_DQ的參數,將初始化文件LPM_FILE設置為“”;打開ram_1.mif(在示例中已有此文件),根據實驗程序,在ram_1.mif中輸入全部機器指令代碼(示例中已經輸入)。=2\*GB3② 將工程文件重新編譯后,下載到實驗臺中,即完成LPM_RAM的配置。2) 通過液晶屏監(jiān)視,單步跟蹤試驗程序機器指令的解釋執(zhí)行=1\*GB3① 置SWB,SWA為11,并按復位按鍵8,啟動程序運行(RP)微程序(參看圖4.3)。每按鍵7兩次產生一個STEP單步脈沖,跟蹤機器指令和微指令程序的執(zhí)行。執(zhí)行軌跡如表九。3) 使用QuartusⅡ的In-SystemMemoryContentEditor了解CPU運行情況。使用在系統(tǒng)讀寫工具對模型CPU中的存放微程序的ROM和存放程序與數據的RAM進行觀察。=1\*GB3①實驗系統(tǒng)控制選擇同上。=2\*GB3②利用QuartusⅡ的In-SystemMemoryContentEditor,將載于FPGA中CPU內RAM/ROM的數據讀出。方法是從菜單選擇Tool|In-SystemMemoryContentEditor,即可進入在系統(tǒng)存儲器讀寫。=3\*GB3③對于In-SystemMemoryContentEditor,將讀數據選擇在循環(huán)讀數據功能上。按鍵8,使其低電平,允許程序運行,鍵2、1輸入運算數據56H,連續(xù)按鍵7,即STEP,完成整個程序運行后,可以發(fā)現RAM位置“34”數據旁出現“8A”即45H+67H之和,并已經寫到RAM中的0BH單元中。表九機器指令試驗程序執(zhí)行情況STEP下址μA微指令MCPCIR說明10001811000OO復位之后,第1條微指令是判斷控制臺命令SMB,SWA223018101SMB,SWA=11,轉RP自動執(zhí)行程序30100800140201ED8201第1個指令周期開始51000C04800取RAM中的第1條試驗程序指令,指令是IN60100100102接收鍵盤輸入數據

溫馨提示

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

評論

0/150

提交評論