桂電計算機組成原理課程設(shè)計_第1頁
桂電計算機組成原理課程設(shè)計_第2頁
桂電計算機組成原理課程設(shè)計_第3頁
桂電計算機組成原理課程設(shè)計_第4頁
桂電計算機組成原理課程設(shè)計_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理課程設(shè)計說明書題 目: 設(shè)計求平均值的CISC模型計算機 院 (系): 計算機科學與工程學院 專 業(yè): 計算機科學與技術(shù) 學生姓名: 吳建海 學 號: 1100310526 指導教師: 陳智勇 1、課程設(shè)計的題目和內(nèi)容:設(shè)計一臺嵌入式CISC模型計算機(采用定長CPU周期、聯(lián)合控制方式),并運行能完成一定功能的機器語言程序進行驗證。 要求連續(xù)輸入5個有符號整數(shù)(用8位二進制補碼表示,十六進制數(shù)輸入)求所有數(shù)的平均值并輸出顯示。說明:5個有符號數(shù)從外部輸入; 一定要使用符號位(比如說SF)課程設(shè)計完成的內(nèi)容 1.完成系統(tǒng)的總體設(shè)計,畫出模型機數(shù)據(jù)通路框圖; 2.設(shè)計微程序控制器(C

2、ISC模型計算機)的邏輯結(jié)構(gòu)框圖; 3.設(shè)計機器指令格式和指令系統(tǒng); 4.設(shè)計時序產(chǎn)生器電路; 5.設(shè)計所有機器指令的微程序流程圖; 6.設(shè)計操作控制器單元;在CISC模型計算機中,設(shè)計的內(nèi)容包括微指令格式(建議采用全水平型微指令)、微指令代碼表(根據(jù)微程序流程圖和微指令格式來設(shè)計)和微程序控制器硬件電路(包括地址轉(zhuǎn)移邏輯電路、微地址寄存器、微命令寄存器和控制存儲器等。具體電路根據(jù)微程序控制器的邏輯結(jié)構(gòu)框圖、微指令格式和微指令代碼來設(shè)計)。 7.設(shè)計模型機的所有單元電路,并用VHDL語言(也可使用GDF文件-圖形描述文件)對模型機中的各個部件進行編程,并使之成為一個統(tǒng)一的整體,即形成頂層電路或

3、頂層文件; 8.由給出的題目和設(shè)計的指令系統(tǒng)編寫相應(yīng)的匯編語言源程序; 9.根據(jù)設(shè)計的指令格式,將匯編語言源程序手工轉(zhuǎn)換成機器語言源程序,并將其設(shè)計到模型機中的ROM中去; 10.使用EDA軟件進行功能仿真,要保證其結(jié)果滿足題目的要求;(其中要利用EDA軟件提供的波形編輯器,選擇合適的輸入輸出信號及中間信號進行調(diào)試。)2、 系統(tǒng)的總體設(shè)計:整個系統(tǒng)數(shù)據(jù)通路如下所示:控制器的邏輯結(jié)構(gòu)框圖:指令寄存器IR操作碼微地址寄存器地址譯碼控制存儲器地址轉(zhuǎn)移邏輯狀態(tài)條件微命令寄存器P字段操作控制字段微命令信號本模型機中的指令系統(tǒng)中共有12條基本指令,下表列出了每條指令的格式、匯編符號和指令功能。1、 模型機

4、的指令系統(tǒng)和所有指令的指令格式本模型機中的指令系統(tǒng)中共有12條基本指令,下表列出了每條指令的格式、匯編符號和指令功能。指令助記符指令格式功能15-1211 109 87-0IN1 Rd0001××Rd××××××××輸入設(shè)備RdMOV Rd,im0010××Rdim立即數(shù)RdCMP Rs,Rd0011RsRd××××××××(Rs)-(Rd),鎖存標志位ADD Rs,Rd0100RsRd×

5、;×××××××(Rs)+(Rd)Rd,鎖存標志位INC Rd0101××Rd××××××××(Rd)+1Rd,鎖存標志位DEC Rd0110××Rd××××××××(Rd)-1Rd,鎖存標志位JNZ addr0111××××addr若不等,則addrPCJNC addr1000Rs

6、15;×addr若相等,則addrPCJMP addr1001××××addraddrPCOUT1 Rs1010Rs××××××××××(Rs)輸出設(shè)備SUB Rs,Rd1011RsRd××××××××(Rs)-(Rd)RdMOV1 Rs,Rd1100RsRd××××××××(Rs)Rd說

7、明:對Rs和Rd的規(guī)定:Rs或Rd選定的寄存器0 0R00 1R11 0R2 1 1R3 模型機規(guī)定數(shù)據(jù)的表示采用定點整數(shù)補碼表示,單字長為8位,其格式如下:76 5 4 3 2 1 0符號位尾數(shù)指令格式:(1)I/O指令(單字節(jié))IN輸入指令:7 6 5 43 21 0 操作碼× ×RdOUT輸出指令:7 6 5 43 21 0 操作碼Rs× ×(2)MOV指令(雙字節(jié))7 6 5 43 21 0 操作碼× ×Rddata(3) CMP指令(單字節(jié)) 7 6 5 43 21 0 操作碼RsRd“Rs”為源寄存器,存放的是源操作數(shù) “

8、Rd”為目的寄存器,存放的是目的操作數(shù)所在的地址(4)算數(shù)運算指令(單字節(jié))ADD、SUB7 6 5 43 21 0 操作碼RsRd“Rs”為源寄存器,存放的是源操作數(shù) “Rd”為目的寄存器,存放的是目的操作數(shù)所在的地址(5)DEC(單字節(jié))自減1指令:7 6 5 43 21 0 操作碼× ×Rd(6)INC指令(單字節(jié))7 6 5 43 21 0 操作碼× ×Rd(7)JNZ、JMP、JNC條件轉(zhuǎn)移指令(雙字節(jié))7 6 5 43 2 1 0 操作碼× × × ×addrT1、T2、T3、T4與CLR、Q之間的關(guān)系

9、圖QCLRT1T2T3T4一個CPU周期現(xiàn)在,我們開始微程序控制器的設(shè)計,它包括以下幾部分工作:(1)根據(jù)指令格式和指令系統(tǒng)設(shè)計所有機器指令的微程序流程圖,并確定每條微指令的微地址和后繼微地址;(2)設(shè)計微指令格式和微指令代碼表;(3)設(shè)計地址轉(zhuǎn)移邏輯電路;(4)設(shè)計微程序控制器中的其它邏輯單元電路,包括微地址寄存器、微命令寄存器和控制存儲器;(5)設(shè)計微程序控制器的頂層電路。 首先做第一步,根據(jù)指令格式和指令系統(tǒng)設(shè)計所有機器指令的微程序流程圖.對于我設(shè)計的模型機,對應(yīng)的指令流程圖如下所示 第二步,指令流程圖設(shè)計完成后,開始設(shè)計微指令格式和微指令代碼表,按照要求,CISC模型機系統(tǒng)使用的微指令

10、采用全水平型微指令,字長為26位,其中微命令字段為17位,P字段為3位,后繼微地址為6位,其格式如下: 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0LOAD LDPC LDAR LDIR LDRi RD_B RS_B S2 S1 S0 ALU_B LDAC LDDR WR CS SW_B LED_B LDFR P1 P2 P3 后繼微地址按照這個格式,再根據(jù)我設(shè)計的指令流程圖,可以得到:PCAR PC+1由微指令格式和微程序流程圖編寫的微指令代碼表如下所示,在微指令的代碼表中微命令字段從左邊到右代表

11、的微命令信號依次為:LOAD、LDPC、LDAR、LDIR、LDRi、RD_B、RS_B、S3、S1、S0、ALU_B、LDAC、LDDR、WR、CS、SW_B、LED_B、LDFR。P字段在下頁附圖中第三步:設(shè)計好了微指令代碼表之后,我們可以開始設(shè)計地址轉(zhuǎn)移邏輯電路地址轉(zhuǎn)移邏輯電路是根據(jù)微程序流程圖3-2中的棱形框部分及多個分支微地址,利用微地址寄存器的異步置“1”端,實現(xiàn)微地址的多路轉(zhuǎn)移。由于微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與µA4µA0對應(yīng)的異步置“1”控制信號SE5SE1的邏輯表達式為:(µA5的異步置“1”端SE6實際未使用SE5=FS&

12、#183;P(2)·T4SE4=I7·P(1)·T4SE3=I6·P(1)·T4SE2=I5·P(1)·T4SE1=I4·P(1)·T4嵌入式CISC模型計算機的頂層電路圖匯編語言源程序和機器源程序: 地址(十六進制)匯編語言源程序 機器語言源程序00 MOV R1,05H 01 MOV R3,00H02L1: IN1 R003 ADD R0,R304 DEC R105 JNZ L106 MOV R0,F(xiàn)BH07 MOV R1,05H08 MOV R2,00H09 CMP R3,R20A JNC L30B

13、L2: CMP R3 R00C JNC L50D DEC R20E ADD R1,R30F JMP L210L3: CMP R3,R111 JNC L412 JMP L513L4: INC R214 SUB R3,R115 MOV1 R1,R316 MOV R1,05H17 JMP L318L5: OUT1 R219 JMP L5機器語言源程序的功能仿真波形圖及結(jié)果分析可以看出,此時R2中存放的03就是結(jié)果,數(shù)據(jù)輸出端OD輸出的就是R2內(nèi)的數(shù)據(jù)。故障現(xiàn)象和故障分析在做的過程中出現(xiàn)了很多問題。在仿真的時候,在觀察y輸入信號的時候發(fā)現(xiàn)在一個周期內(nèi)值改變了多次,一直檢查不出來,后來請教了同學,才發(fā)現(xiàn)

14、是DEC指令的機器代碼在ALU里面的和COMTROM的不一樣,導致執(zhí)行的不是這個指令,改正之后,終于解決了 心得體會剛開始去上老師的課時,聽得一頭霧水,因為發(fā)現(xiàn)好多地方自己同不懂。然后我就去看課本,同時問老師一些問題,當看到其他同學也問老師問題時,自己也跑過去湊熱鬧,因為這樣可以了解更多的知識。直到后來才發(fā)現(xiàn),原來除了設(shè)計自己的指令外,我們需要寫MCOMMAND,寫CONTROM來解析我們寫的指令,這或許可以算得上一個極簡單的CPU模型了吧。就是有了微程序控制器,計算機才認識我們自己設(shè)計的指令,才知道當讀取到什么指令時該執(zhí)行什么操作。聽得多了,看得多了,就漸漸的明白了一些課設(shè)的相關(guān)知識,然后畫

15、指令流程圖,設(shè)計指令,寫程序完成任務(wù),這些幾乎都是水到渠成的工作了,很多都可以依葫蘆畫瓢來完成。本次課設(shè),由于匯編學的很差,期匯編代碼是和班級同學的相同,但是自己重新設(shè)計了指令周期流程圖,經(jīng)過調(diào)試得出的結(jié)果其實只要把最基本的原理搞明白了,后續(xù)工作開展是非??斓?。但在沒明白原理前,千萬不要畏懼困難,慢慢的一點一點學習,特別是仿真軟件的學習和使用,需要花費相當?shù)臅r間。只要認真了,就有可能實現(xiàn)。軟件清單:本次直接使用的是校園網(wǎng)的軟件圖,只有CROM、ROM、改動較大。其他涉及到微指令字段的,把所有的字段位數(shù)改成26位即可LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL

16、;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.ALL;ENTITY ROM IS PORT(DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS_I:IN STD_LOGIC);END ROM;ARCHITECTURE A OF ROM ISBEGIN DOUT<= "0000000000000000"END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE

17、 IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_SIGNED.all;ENTITY ALU ISPORT( X: IN STD_LOGIC_VECTOR(7 DOWNTO 0); Y: IN STD_LOGIC_VECTOR(7 DOWNTO 0); S2,S1,S0: IN STD_LOGIC; ALUOUT: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) ; CF,ZF: OUT STD_LOGIC );END ALU;ARCHITECTURE A OF ALU ISSIGNAL AA,BB,TEMP:STD_LOGIC_VEC

18、TOR(8 DOWNTO 0);SIGNAL TEMP1:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBEGIN IF(S2='0' AND S1='0' AND S0='0') THEN-ADD AA<='0'&X; BB<='0'&Y; TEMP<=AA+BB;ALUOUT<=TEMP(7 DOWNTO 0); CF<=TEMP(8); IF (TEMP="100000000" OR TEMP="

19、000000000") THEN ZF<='1' ELSE ZF<='0' END IF;ELSIF(S2='0' AND S1='0' AND S0='1') THEN -CMP(SUB) ALUOUT<=X-Y;IF(X<Y) THEN CF<='1' ZF<='0' ELSIF(X=Y) THEN CF<='0' ZF<='1' ELSE CF<='0' ZF<

20、='0' END IF; ELSIF(S2='0' AND S1='1' AND S0='0') THEN -INC AA<='0'&Y; TEMP<=AA+1; ALUOUT<=TEMP(7 DOWNTO 0); CF<=TEMP(8); IF (TEMP="100000000") THEN ZF<='1' ELSE ZF<='0' END IF; ELSIF(S2='0' AND S1='1&

21、#39; AND S0='1') THEN -DEC AA<='0'&Y; TEMP<=AA-1; ALUOUT<=TEMP(7 DOWNTO 0); CF<=TEMP(8); IF (TEMP="000000000") THEN ZF<='1' ELSE ZF<='0' END IF; ELSIF(S2='1' AND S1='0' AND S0='0') THEN -AND TEMP1<=X AND Y; AL

22、UOUT<=TEMP1; CF<='0' IF (TEMP1="00000000") THEN ZF<='1' ELSE ZF<='0' END IF; ELSIF(S2='1' AND S1='0' AND S0='1') THEN -OR TEMP1<=X OR Y; ALUOUT<=TEMP1; CF<='0' IF (TEMP1="00000000") THEN ZF<='1

23、9; ELSE ZF<='0' END IF; ELSIF(S2='1' AND S1='1' AND S0='0') THEN -Rd->BUS ALUOUT<=Y;ELSE ALUOUT<="00000000" ; CF<='0' ZF<='0' END IF; END PROCESS;END A;在這里附上CROM的圖以為設(shè)計了JNC指令,所以增加了P3測試LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONT

溫馨提示

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

評論

0/150

提交評論