計算機組成原理課程設計設計嵌入式CISC模型計算機_第1頁
計算機組成原理課程設計設計嵌入式CISC模型計算機_第2頁
計算機組成原理課程設計設計嵌入式CISC模型計算機_第3頁
計算機組成原理課程設計設計嵌入式CISC模型計算機_第4頁
計算機組成原理課程設計設計嵌入式CISC模型計算機_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理課程設計說明書題目:設計嵌入式CISC模型計算機院系:計算機工程與科學學院專業(yè):網(wǎng)絡工程學號:1000380112姓名:胡繼恒指導老師:陳志勇一 完成系統(tǒng)的總體設計 ALU狀態(tài)條件寄存器 FCIRROM或RAM FZ FS操作控制器和時序產(chǎn)生器ARDRACPC 具有時間標志的操作控制信號R2R0R1輸出設備輸入設備二 操作控制器的邏輯框圖三模型機的指令系統(tǒng)和所有指令的格式1) I/O指令輸入指令(IN1)格式:7 6 5 4 3 2 1 0操作碼 XX Rd輸出指令(OUT1)格式:7 6 5 4 3 2 1 0操作碼 Rs XX2) 轉(zhuǎn)移指令條件轉(zhuǎn)移指令(JS)和無條件轉(zhuǎn)移指令

2、(JMP)格式: 7 6 5 4 3 2 1 0 操作碼 X X X X 地址3) 比較指令和相加指令和相乘指令相加指令(ADD)和乘法(MUL)的格式:7 6 5 4 3 2 1 0操作碼 Rs Rd4) MOV指令格式 7 6 5 4 3 2 1 0 操作碼 X X Rd 立即數(shù) 5) 自減指令(DEC)7 6 5 4 3 2 1 0操作碼 XX Rd6) TEST指令7 6 5 4 3 2 1 0操作碼 XX Rd助記符號 指令格式 功能 IN1 Rd1000 XX Rd將數(shù)據(jù)存到Rd中 OUT1 Rs1111 Rs XX(Rs) LED ADD Rs,Rd1100 Rs Rd(Rs)+

3、(Rd) Rd JMP ADDR1110 XXXX ADDR ADDR PC DEC Rd1101 XX Rd (Rd)1 Rd MOV Rd,data1001 XX Rd Data Data Rd TEST Rd1010 XX Rd 80H-AC,鎖存SF JS ADDR1011 XXXX ADDR若為負,則ADDR PC IMUL Rs,Rd0111 Rs Rd(Rs)*(Rd) Rd其中對Rs和Rd的規(guī)定 Rs 或 Rd選定寄存器 0 0R0 0 1R1 1 0R2模型機規(guī)定數(shù)據(jù)的表示采用定點整數(shù)補碼表示,單字長8位,其格式如下: 76 5 4 3 2 1 0符號位 尾數(shù)四 時序產(chǎn)生電路

4、五 微程序流程圖 00 PC -AR PC+1 02RD MBUS - IR 08SW- BUSBUS-RdRs - LEDP(1) IN1 OUT1 08 0FMOV TEST JS ADD DEC JMP MULPC-ARPC+109 0A 0B 0C 0D 0E 07Rd- BUSBUS -ACRSBUSBUS-ACRd-BUSBUS-ACRs- BUSBUS - AC PC - ARPC+1PC - ARPC+103 04 20 06 12 13 15ROM-BUSBUS-PCAC-1-BUSBUS-RdROM -BUSBUS - RdRd-BUSBUS-DRRd-BUSBUS-DRA

5、C鎖存FSP(2)AC*DR-RdAC+DR-Rd 10 16 FS=1 FS=0ROM-BUSBUS-PC 20 30注:以 結(jié)尾的后繼微地址都是00(1) 根據(jù)指令格式和指令系統(tǒng)的設計完成所有機器指令的微程序流程圖,并確定每條微指令的微地址和后繼微地址;(2) 設計微指令格式和代碼表(3) 設計地址轉(zhuǎn)移邏輯電路(4) 設計微程序控制的其他邏輯電路,包括微地址寄存器、為命令寄存器、控制存取器 第二步,指令流程圖設計完成后,開始設計微指令的格式和微指令的代碼表按照要求,CISC模型機的系統(tǒng)使用采用雙水平型微指令,字長為25位,其中微命令字段為17位,p字段為2位,后繼微地址6位,其中格式如下

6、按照這個格式,再根據(jù)我的設計指令圖,可以得到: 由微指令格式和微指令的程序流程圖編寫的微指令代碼表如下所示,在微指令的代碼表中微命令字段從左邊到右邊代表微指令的信號依次是:LOAD、LDPC、LDAR、LDIR、LDRI、RD_B、RS_BALU_B、LDAC、WR、CS、SW_B、LED_B、LDFR微地址P1P2后繼微地址0000001110011001001111000000010000010100101100100101101000100000001110001110010010110000000000001001000011011001111100000000000110100000

7、100101111100001000000011110000100011011110000101010010001000111001001101000000000001001111001100100111100000001100101010000010011011110000001000010111110011001001111001100000001100100001000110111100000011000110110000010011011110000100100011101110011001001111000010011001111100001000100011000000000001

8、00001000111000001111000000000010010100011110000111100000000001001101000110010010110000000000101011000001001011111000010110010110100011111000111100000000010000001000110010010110000000001100001000011001001111000000000六 頂層電路圖生成微地址寄存器aa生成CROM控制器單元CISC模型機頂層電路圖六 匯編語言源程序 MOV R1,0;寄存器R1用來存放最后的結(jié)果 MOV R2,4;記錄

9、5個數(shù) INPUT:IN1 R0; 00 DEC R2; TEST R0 JS L1 TEST R2 JS L2 JMP INPUT L1:MUL R0,R0; ADD R0,R1; TEST R2 JS L2 IMP INPUT L2:OUT1 R1 END七 機器語言源程序助記符 地址(十六進制) 機器代碼 MOV R1,0 00H 10010001 01H 00000000 MOV R2,4 02H 10010010 03H 00000100 INPUT:IN1 R0; 04H 10000000 DEC R2; 05H 11010010 TEST R0 06H 10100000 JS L

10、1 07H 10110000 08H 00001110 TEST R2 09H 10100010 JS L2 0AH 10110000 0BH 00010101 JMP INPUT 0CH 11100000 0DH 00000100L1:IMUL R0,R0; 0EH 01110000 ADD R0,R1; 0FH 11000001 TEST R2 10H 10100010 JS L2 11H 10110000 12H 00010101 JMP INPUT 13H 11100000 14H 00000100 L2:OUT1 R1 15H 11110100 END八 機器語言功能仿真圖及波形分析

11、執(zhí)行MOV R1,0 MOV R2,4IN1 R0; DEC R2; TEST R0JS L1 為負執(zhí)行IMUL然后ADD R0,R1然后判斷R2為負則跳出輸出,否則跳到繼續(xù)輸出九 故障現(xiàn)象和故障分析 頂層電路無法正常運行,結(jié)果發(fā)現(xiàn)是線的粗細影響頂層電路的連接,導致無法查出錯誤。十 心得體會 通過將近兩周的學習,每天沒日沒夜的思索,終于通過自己的努力,做出這個課程設計,雖然諸多地方按照書上來做,覺得很機械,從老師那基本沒學到什么東西,自己不斷看書,不斷發(fā)掘,突然明白了許多東西,開始做時甚是迷茫加恐怖,但慢慢發(fā)現(xiàn)迎難而上,發(fā)現(xiàn)沒有解決不了的問題真的學到了很多。十一軟件清單1)ALU單元:LIBR

12、ARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU ISPORT(A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);S1,S0:IN STD_LOGIC;BCDOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);SF:OUT STD_LOGIC);END ALU;ARCHITECTURE A OF ALU ISSIGNAL

13、AA,BB,TEMP:STD_LOGIC_VECTOR(8 DOWNTO 0);BEGINPROCESS(S1,S0)BEGINIF(S1=0 AND S0=0)THEN -執(zhí)行加法運算AA=0&A;BB=0&B;TEMP=AA+BB;BCDOUT=TEMP(7 DOWNTO 0);ELSIF(S1=0 AND S0=1)THEN -判斷符號位IF(A(7)=0) THENSF=0;ELSIF(A(7)=1) THENSF=1;END IF;ELSIF(S1=1 AND S0=0)THEN -執(zhí)行減一運算TEMP=A-1;BCDOUT=TEMP(7 DOWNTO 0);ELSIF(S1=1AN

14、D S0=1)THENTEMP(6 DOWNTO 0)=A(6 DOWNTO 0)*B(6 DOWNTO 0);TEMP(7)=A(7) XOR B(7);BCDOUT=TEMP(7 DOWNTO 0);SF=TEMP(7);END IF;END PROCESS;END A;2)狀態(tài)字單元:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS74 ISPORT(LDFR:IN STD_LOGIC;CY,ZI,SF:IN STD_LOGIC;FC,FZ,FS:OUT STD_LOGIC);END LS74;ARCHITECTURE A OF LS7

15、4 ISBEGINPROCESS(LDFR)BEGINIF(LDFREVENT AND LDFR=1)THEN FS=SF; END IF;END PROCESS;END A;3)暫存器、通用寄存器、地址寄存器LS273:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LS273 ISPORT( D:IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK:IN STD_LOGIC; O:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END LS273;ARCHITECTURE A OF LS273 ISB

16、EGIN PROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1) THEN O=D; END IF; END PROCESS;END A;4)1:2分配器FEN2:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FEN2 ISPORT( X:IN STD_LOGIC_VECTOR(7 DOWNTO 0); WR,LED_B:IN STD_LOGIC; W1,W2:OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END FEN2;ARCHITECTURE A OF FEN2 ISBEGIN PROC

17、ESS(LED_B,WR) BEGIN IF(LED_B=0 AND WR=0) THEN W2=X; ELSE W1=X; END IF; END PROCESS;END A;5)3選1數(shù)據(jù)選擇器MUX3:LIBRARY 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 MU

18、X3;ARCHITECTURE A OF MUX3 ISBEGIN PROCESS(SW_B,CS) BEGIN IF(SW_B=0) THEN EW=ID; ELSIF(CS=0)THEN EW=N2; ELSEEW=N1;END IF; END PROCESS;END A;6)4選1數(shù)據(jù)選擇器MUX4:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MUX4 ISPORT(C,D,E,F: IN STD_LOGIC;X1,X2,X3,X4: IN STD_LOGIC_VECTOR(7 DOWNTO 0);W: out STD_LOGIC_VE

19、CTOR(7 DOWNTO 0);END MUX4;ARCHITECTURE A OF MUX5 ISSIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN SEL=F&E&D&C; PROCESS(SEL) BEGIN IF(SEL=1110) THEN -R0_out W=X1; ELSIF(SEL=1101) THEN -R1_out W=X2; ELSIF(SEL=1011) THEN -R2-out W=X3; ELSIF(SEL=0111) THEN -R3_out W=X4; ELSE null; END IF; END PROCESS;EN

20、D A;7)程序計數(shù)器PC:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PC ISPORT( load,LDPC,CLR: IN STD_LOGIC; D: IN STD_LOGIC_VECTOR(7 DOWNTO 0); O: OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );END PC;ARCHITECTURE A OF PC ISSIGNAL QOUT: STD_LOGIC_VECTOR(7 D

21、OWNTO 0);BEGIN PROCESS(LDPC,CLR,load) BEGIN IF(CLR=0) THEN QOUT=00000000; ELSIF(LDPCEVENT AND LDPC=1) THEN IF(load=0) THEN QOUTPC ELSE QOUT=QOUT+1; -PC+1 END IF; END IF; END PROCESS; O=QOUT;END A;8)ROM芯片ROM16:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UN

22、SIGNED.ALL;ENTITY ROM16 IS PORT(DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0);CS:IN STD_LOGIC);END ROM16;ARCHITECTURE A OF ROM16 ISBEGINDOUT=10010001 WHEN ADDR=00000000 AND CS=0 ELSE 10010010 WHEN ADDR=00000001 AND CS=0 ELSE 10000000 WHEN ADDR=00000010 AND CS=0 ELSE 1101

23、0010 WHEN ADDR=00000011 AND CS=0 ELSE 10100000 WHEN ADDR=00000100 AND CS=0 ELSE 10110000 WHEN ADDR=00000101 AND CS=0 ELSE 10100010 WHEN ADDR=00000110 AND CS=0 ELSE 10110000 WHEN ADDR=00000111 AND CS=0 ELSE 11100000 WHEN ADDR=00001000 AND CS=0 ELSE 01110000 WHEN ADDR=00001001 AND CS=0 ELSE 11000010 W

24、HEN ADDR=00001010 AND CS=0 ELSE 10100010 WHEN ADDR=00001011 AND CS=0 ELSE 10110000 WHEN ADDR=00001100 AND CS=0 ELSE 11100000 WHEN ADDR=00001101 AND CS=0 ELSE 11110100 WHEN ADDR=00001110 AND CS=0 ELSE 00000000;END A;9)時序產(chǎn)生單元:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IE

25、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNTER ISPORT( Q,CLR: IN STD_LOGIC; T1, T2,T3,T4: OUT STD_LOGIC );END COUNTER;ARCHITECTURE A OF COUNTER ISSIGNAL X: STD_LOGIC_VECTOR(1 DOWNTO 0);BEGIN PROCESS(Q,CLR) BEGIN IF(CLR=0) THEN T1=0; T2=0; T3=0; T4=0; X=00; ELSIF(QEVENT AND Q=1) THEN X=X+1; T2=(NOT X(1) AN

26、D X(0); T3=X(1) AND (NOT X(0); T4=X(1) AND X(0); END IF; END PROCESS; END A;10) 由于微地址寄存器中的觸發(fā)器異步置“1”端低電平有效,與uA4ua0對應的異步置“1”控制信號SE5SE1(uA5的異步置“1”端SE6實際未使用)SE5=(FS).P(2).T4SE4=I6.P(1).T4SE3= I6.P(1).T4SE2= I5.P(1).T4SE1= I4.P(1).T4LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY ADDR IS PORT( I7,I6,I5,I

27、4:IN STD_LOGIC; FS,T4,P1,P2:IN STD_LOGIC; SE6,SE5,SE4,SE3,SE2,SE1:OUT STD_LOGIC);END ADDR;ARCHITECTURE A OF ADDR ISBEGIN SE6=1; SE5=NOT(NOT FS) AND P2 AND T4); SE4=NOT(I7 AND P1 AND T4); SE3=NOT(I6 AND P1 AND T4); SE2=NOT(I5 AND P1 AND T4); SE1=NOT(I4 AND P1 AND T4);END A;11)微地址寄存器:LIBRARY IEEE;USE

28、IEEE.STD_LOGIC_1164.ALL;ENTITY MMM IS PORT( SE:IN STD_LOGIC; T2:IN STD_LOGIC; D:IN STD_LOGIC; CLR:IN STD_LOGIC; UA:OUT STD_LOGIC );END MMM;ARCHITECTURE A OF MMM ISBEGIN PROCESS(CLR,SE,T2) BEGIN IF(CLR=0) THEN UA=0; ELSIF(SE=0)THEN UA=1; ELSIF(T2EVENT AND T2=1) THEN UA=D; END IF; END PROCESS;END A;12

29、)控制存儲器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROM ISPORT(ADDR: IN STD_LOGIC_VECTOR(5 DOWNTO 0); UA:OUT STD_LOGIC_VECTOR(5 DOWNTO 0); D:OUT STD_LOGIC_VECTOR(18 DOWNTO 0) );END CONTROM;ARCHITECTURE A OF CONTROM ISSIGNAL DATAOUT:

30、 STD_LOGIC_VECTOR(24 DOWNTO 0);BEGIN PROCESS(ADDR) BEGIN CASE ADDR IS END CASE; UA(5 DOWNTO 0)=DATAOUT(5 DOWNTO 0); D(18 DOWNTO 0)=DATAOUT(24 DOWNTO 6); END PROCESS;END A;13)微命令寄存器:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY MCOMMAND ISPORT( T2,T3,T4,I3,I2,I1,I0:IN STD_

溫馨提示

  • 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

提交評論