計算機組成原理課程設計(桂林電子科技大學)_第1頁
計算機組成原理課程設計(桂林電子科技大學)_第2頁
計算機組成原理課程設計(桂林電子科技大學)_第3頁
計算機組成原理課程設計(桂林電子科技大學)_第4頁
計算機組成原理課程設計(桂林電子科技大學)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 計算機組成原理課程設計說明書題 目: 設計一臺嵌入式CISC模型計算機 院 (系): 計算機科學與工程學院 專 業(yè): 網絡工程 學生姓名: 唐波 學 號: 指導教師: 陳智勇 一、課設題目:設計一臺嵌入式CISC模型計算機(采用定長CPU周期、聯合控制方式),并運行能完成一定功能的機器語言程序進行驗證,實現方法可從以下4類中任選一個: 連續(xù)輸入5個有符號整數(8位二進制補碼表示,用十六進制數輸入),求最小的負數的絕對值并輸出顯示。 說明:5個有符號數從外部輸入; 一定要使用符號標志位(比如說SF),并且要使用為負的時候轉移(比如JS)或不為負的時候轉移(比如JNS)指令。二CISC模型機系統(tǒng)

2、總體設計三操作控制器的邏輯框圖指令寄存器IR操作碼微地址寄存器地址譯碼控制存儲器地址轉移邏輯狀態(tài)條件微命令寄存器P字段操作控制字段微命令信號說明:在T4內形成微指令的微地址,并訪問控制存儲器,在T2的上邊沿到來時,將讀出的微指令打入微指令寄存器,即圖中的微命令寄存器和微地址寄存器。四模型機的指令系統(tǒng)和所有指令的指令格式由此可見,本模型機中的指令系統(tǒng)中共有8條基本指令,下表9列出了每條指令的格式、匯編符號和指令功能。指令助記符指令格式功能15-1211 109 87-0IN1 Rd0101Rd(Rd)+1Rd,鎖存標志位MOV Rd,im0001Rdim立即數RdCMP Rs,Rd0011RsR

3、dRs,Rd比較,INC Rd0010Rd輸入設備RdJNS addr0100addr若大于,則addrPCJMP addr0110addraddrPCOUT1 Rs1001Rs(Rs)輸出設備MOV1 Rs,Rd1000RsRd(Rs)RdNOT Rd0111RdData取反指令格式:(1)I/O指令(單字節(jié))I說明:對Rs和Rd的規(guī)定:Rs或Rd選定的寄存器0 0R00 1R11 0R2 1 1R3 五所有機器指令的微程序流程圖00PCABUS(I)RD ROMIBUSIRPC+100P(1)MOV1OUT1IN1MOVNOTJMPJNSCMPINC030209080107O60504Rs

4、X-XRs鎖存CF,ZFRsXRdY鎖存CF,ZFRdYY+1Rd鎖存CF,ZFIR(I)RdRsLEDRsXXRdIR(A)PCSWRd200000P(2)00000000000000 CF=1ZF=1CF=0ZF=010ROMBUSBUSPC0000設計操作控制器單元(即微程序控制器) (1)設計微指令格式和微指令代碼表CISC模型機系統(tǒng)使用的微指令采用全水平型微指令,字長為25位,其中微命令字段為17位,P字段為2位,后繼微地址為6位,其格式如下: 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 0LOA

5、D LDPC LDAR LDIR LDRi RD_B RS_B S2 S1 S0 ALU_B SW_B LED_B RD_D CS_D RAM_B CS_I ADDR_B P1 P2 后繼微地址由微指令格式和微程序流程圖編寫的微指令代碼表如下所示,在微指令的代碼表中微命令字段從左邊到右代表的微命令信號依次為:LOAD LDPC LDAR LDIR LDRi RD_B RS_B S2 S1 S0 ALU_B SW_B LED_B RD_D CS_D RAM_B CS_I ADDR_B微地址微命令字段P1P2后繼微地址0011010010001111110110011000101000111111

6、1000021000111010011111110003100001100111111111000410000010001101111101051000101000101111110006010000100011111110000710001111000111111100081000101101011111110009100000000011011111001001000010001111111000 (2)設計地址轉移邏輯電路地址轉移邏輯電路是根據微程序流程圖3-2中的棱形框部分及多個分支微地址,利用微地址寄存器的異步置“1”端,實現微地址的多路轉移。由于微地址寄存器中的觸發(fā)器異步置“1”端

7、低電平有效,與A4A0對應的異步置“1”控制信號SE5SE1的邏輯表達式為:(A5的異步置“1”端SE6實際未使用)SE5= FSP(2)T4SE4=I7P(1)T4SE3=I6P(1)T4SE2=I5P(1)T4SE1=I4P(1)T4六嵌入式CISC模型計算機的頂層電路圖CROM:AA;七匯編代碼:MOV R0,00H 功能:將0賦給R0MOV R1,FFH 將FF賦給R1MOV R2,05H 將05賦給R2L0:INC R0 計數加1 CMP R0,R2 R0與R2比較,是否輸入五個數JNS L3 是跳轉L2輸出 IN1 R3 輸入一個數到R3CMP R3,R1 R3和R1比較,鎖存CF

8、,ZFJNS L2 跳轉L2輸出JMP L1 跳轉L1L1:MOV1 R1,R3 (R3)(R1)JMP L0 跳轉L0L2: NOT R1 R1取反INC R1 R1加1OUT1 R1 輸出R1 八機器語言源程序地址(十六進制)匯編語言源程序 機器語言源程序 代碼00 MOV R0,00H 0001 0000 0000 0000 100001 MOV R1,FFH 0001 0001 1111 1111 11FF02 MOV R2,05H 0001 0010 0000 0101 102503 L0:INC R0 0010 0000 0000 0000 2000 04 CMP R0,R2 00

9、11 1000 0000 0000 3800 05 JNS L3 0100 0000 0000 1100400C 06 IN1 R3 0101 0011 0000 0000 5300 07 CMP R3,R1 0011 1101 0000 0000 3D00 08 JNS L2 0100 0000 0000 1010400A09 JMP L1 0110 0000 0000 0011 60030A L1:MOV1 R1,R3 1000 1101 0000 0000 8D000B JMP L0 0110 0000 0000 0011 60030C L2: NOT R1 0111 0001 0000

10、 0000 71000D INC R1 0010 0001 0000 0000 21000E OUT1 R1 1001 0100 0000 0000 9400九機器語言源程序的功能仿真波形圖及結果分析1.MOV R0,00H 2.MOV R1,FFH 3.MOV R2,05H 4.CMP R2,R0 5.IN1 R3(F4存到R3)6MOV1 R3,R1(F4存入R1) 7.IN1 R3(02存到R3) 802是大于F4的正數,不跳到L1存R1,直接跳回L0。9.IN1 R3(F1存到R3)。10F1是小于于F4的負數,跳到L1,MOV1 R3,R1(F1存入R1)11FNOT R1, INC

11、 R1(F1取反加1存入R1)。 12。OUT1 R1(輸出R1,最終結果是0F)十故障現象和故障分析故障一:在進行仿真的時候,當輸入一個正數存進R3之后,執(zhí)行CMP R3,R1之后,沒有執(zhí)行JNS L0,而是錯將正數也存入R1。查看之后發(fā)現是ALU里“CMP”運算代碼有問題。故障二:計數(R0)一直加,到5時不會跳轉輸出,檢查機器指令發(fā)現JNS L2的地址寫成了06故障三:,輸出結果時,取反都變成FB,檢查很久之后發(fā)現原本應該對AC里的數取反的,結果弄成了DR的.故障N:匯編程序出錯、連線錯誤、微指令錯誤、修改器件沒有重新編譯等。十一.心得體會剛開始去上老師的課時,聽得一頭霧水,因為發(fā)現好多

12、地方自己同不懂。然后我就去看課本,同時問老師一些問題,當看到其他同學也問老師問題時,自己也跑過去湊熱鬧,因為這樣可以了解更多的知識。直到后來才發(fā)現,原來除了設計自己的指令外,我們需要寫MCOMMAND,寫CONTROM來解析我們寫的指令,這或許可以算得上一個極簡單的CPU模型了吧。就是有了微程序控制器,計算機才認識我們自己設計的指令,才知道當讀取到什么指令時該執(zhí)行什么操作。聽得多了,看得多了,就漸漸的明白了一些課設的相關知識,然后畫指令流程圖,設計指令,寫程序完成任務,這些幾乎都是水到渠成的工作了,很多都可以依葫蘆畫瓢來完成。本次課設,由于匯編學的很差,期匯編代碼是和班級同學的相同,但是自己重

13、新設計了指令周期流程圖,經過調試得出的結果其實只要把最基本的原理搞明白了,后續(xù)工作開展是非??斓摹5跊]明白原理前,千萬不要畏懼困難,慢慢的一點一點學習,特別是仿真軟件的學習和使用,需要花費相當的時間。只要認真了,就有可能實現。十二.軟件清單AA里的MMM:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( SE:IN STD_LOGIC; CLK:IN STD_LOGIC; D:IN STD_LOGIC; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC );END MMM;ARCHITECTURE A

14、 OF MMM ISBEGIN PROCESS(CLR,SE,CLK) BEGIN IF(CLR=0) THEN UA=0; ELSIF(SE=0)THEN UA=1; ELSIF(CLKEVENT AND CLK=1) THEN UA=D; END IF; END PROCESS;END A;CROM的:ADDRLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR IS PORT( I15,I14,I13,I12:IN STD_LOGIC; ZF,CF,T4,P1,P2:IN STD_LOGIC; SE5,SE4,SE3,SE2,SE1,S

15、E0:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGIN SE5=1; -預留給JB或JAE指令使用 SE4=NOT(NOT ZF AND CF)AND P2 AND T4); SE3=NOT(I15 AND P1 AND T4); SE2=NOT(I14 AND P1 AND T4); SE1=NOT(I13 AND P1 AND T4); SE0=NOT(I12 AND P1 AND T4);END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F1 IS PORT( UA5,U

16、A4,UA3,UA2,UA1,UA0: IN STD_LOGIC; D:OUT STD_LOGIC_VECTOR(5 DOWNTO 0);END F1;ARCHITECTURE A OF F1 ISBEGIN D(5)=UA5; D(4)=UA4; D(3)=UA3; D(2)=UA2; D(1)=UA1; D(0)=UA0;END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F2 IS PORT( D:IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA5,UA4,UA3,UA2,UA1,UA0: OUT STD_LO

17、GIC );END F2;ARCHITECTURE A OF F2 ISBEGIN UA5=D(5); UA4=D(4); UA3=D(3); UA2=D(2); UA1=D(1); UA0 DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT DATAOUT=0000; END CASE; UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); O(19 DOWNTO 0)=DATAOUT(25 DOWNTO 6); END PROCESS;END A;L

18、IBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY F3 IS PORT( D:IN STD_LOGIC_VECTOR(3 DOWNTO 0); UA3,UA2,UA1,UA0: OUT STD_LOGIC );END F3;ARCHITECTURE A OF F3 ISBEGIN UA3=D(3); UA2=D(2); UA1=D(1); UA0=D(0);END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNS

19、IGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4:IN STD_LOGIC; D:IN STD_LOGIC_VECTOR(19 DOWNTO 0); LOAD,LDPC,LDAR,LDIR,LDRI,LDPSW,RS_B,S2,S1,S0:OUT STD_LOGIC; ALU_B,SW_B,LED_B,RD_D,CS_D,RAM_B,CS_I,ADDR_B,P1,P2:OUT STD_LOGIC );END MCOMMAND;ARCHITECTURE A OF MCOMMAND ISSIGNAL DATAOUT:STD_LOGIC_VECTOR(19 DOW

20、NTO 0);BEGIN PROCESS(T2) BEGIN IF(T2EVENT AND T2=1) THEN DATAOUT(19 DOWNTO 0)=D(19 DOWNTO 0); END IF; LOAD=DATAOUT(19); LDPC=DATAOUT(18) AND T4; LDAR=DATAOUT(17) AND T3; LDIR=DATAOUT(16) AND T3; LDRI=DATAOUT(15) AND T4; LDPSW=DATAOUT(14) AND T4; RS_B=DATAOUT(13); S2=DATAOUT(12); S1=DATAOUT(11); S0=D

21、ATAOUT(10); ALU_B=DATAOUT(9); SW_B=DATAOUT(8); LED_B=DATAOUT(7); RD_D=NOT(NOT DATAOUT(6) AND (T2 OR T3); CS_D=NOT(NOT DATAOUT(5) AND T3); RAM_B=DATAOUT(4); CS_I=DATAOUT(3); ADDR_B=DATAOUT(2); P1=DATAOUT(1); P2=DATAOUT(0); END PROCESS;END A; Top頂層圖的:MUX3功能表輸入 輸出SW-B CS ID7.0 N17.0 N27.0 EW7.00 X X X

22、X IN7.01 0 X X X N27.01 1 X X X N17.0LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX3 ISPORT(ID:IN STD_LOGIC_VECTOR(7 DOWNTO 0);SW_B,CS:IN STD_LOGIC;N1,N2:IN STD_LOGIC_VECTOR(7 DOWNTO 0);EW:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END MUX3;ARCHITECTURE A OF MUX3 ISBEGIN PROCESS(SW_B,CS) BEGIN IF(SW_B=0)

23、 THEN EW=ID; ELSIF(CS=0)THEN EW=N2; ELSEEW=N1;END IF; END PROCESS;END A;ROM功能CS=1,不選擇CS=0,讀LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.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_

24、LOGIC);END ROM;ARCHITECTURE A OF ROM ISBEGINDOUT=00000 WHEN ADDR= AND CS_I=0 ELSE 11111 WHEN ADDR= AND CS_I=0 ELSE 00101 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 01100 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND

25、 CS_I=0 ELSE 01010 WHEN ADDR= AND CS_I=0 ELSE 00011 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00011 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00000 WHEN ADDR= AND CS_I=0 ELSE 00000;END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE

26、 IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT( CLK,CLR: IN STD_LOGIC; T2,T3,T4: OUT STD_LOGIC );END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0):=00;BEGIN PROCESS(CLK,CLR) BEGIN IF(CLR=0) THEN T2=0; T3=0; T4=0; X=00; ELSIF(CLKEVENT AND C

27、LK=1) THEN X=X+1; T2=(NOT X(1)AND X(0); T3=X(1) AND(NOT X(0); T4=X(1) AND X(0); END IF; END PROCESS;END A;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT( D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK: IN STD_LOGIC; Q: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END LS273; ARCHITECTURE A OF LS273 ISBE

28、GIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN Q=D; END IF; END PROCESS;END A;ALU功能表S2 S1 S0 功能0 0 0 ADD,鎖存CF,ZF0 1 1 CMP(比較指令)0 1 0 INC(加1指令)1 1 0 NOT(取反指令)1 0 1 MOV1 (Rs) (Rd)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.all;ENTITY ALU ISPORT

29、( 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_VECTOR(8 DOWNTO 0);SIGNAL TEMP1:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN PROCESSBE

30、GIN 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= OR TEMP=) THEN ZF=1; ELSE ZF=0; END IF;ELSIF(S2=0 AND S1=0 AND S0=1) THEN -CMP(SUB) AA=0&X; BB=0&Y; TEMP=AA-BB;ALUOUT=TEMP(7 DOWNTO 0);TEMP1=TEMP(7 DOWNTO 0); CF=TEMP1(7); IF (TEMP1=) TH

31、EN ZF=1; ELSE ZF=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=) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=0 AND S1=1 AND S0=1) THEN -DEC AA=0&Y; TEMP=AA-1; ALUOUT=TEMP(7 DOWNTO 0); CF=TEMP(8); IF (TEMP=) THEN ZF=1; ELSE ZF=0; END IF; ELSIF(S2=1 AND S1=0 AND S0=0)

溫馨提示

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

最新文檔

評論

0/150

提交評論