8位CPU的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
8位CPU的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
8位CPU的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
8位CPU的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
8位CPU的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 計(jì)算機(jī)組成原理 實(shí)驗(yàn)題目 8位CPU的系統(tǒng)設(shè)計(jì) 學(xué) 號(hào) 1115106046 姓 名 魏忠淋 班 級(jí) 11電子B 班 指導(dǎo)老師 凌朝東 華僑大學(xué)電子工程系8位CPU的系統(tǒng)設(shè)計(jì)1、 實(shí)驗(yàn)要求與任務(wù)完成從指令系統(tǒng)到CPU的設(shè)計(jì),編寫(xiě)測(cè)試程序,通過(guò)運(yùn)行測(cè)試程序?qū)PU設(shè)計(jì)進(jìn)行正確性評(píng)定。具體內(nèi)容包括:典型指令系統(tǒng)(包括運(yùn)算類、轉(zhuǎn)移類、訪存類)設(shè)計(jì);CPU結(jié)構(gòu)設(shè)計(jì);規(guī)則文件與調(diào)試程序設(shè)計(jì);CPU調(diào)試及測(cè)試程序運(yùn)行。 1.1設(shè)計(jì)指標(biāo)能實(shí)現(xiàn)加減法、左右移位、邏輯運(yùn)算、數(shù)據(jù)存取、有無(wú)條件跳轉(zhuǎn)、內(nèi)存訪問(wèn)等指令; 1.2設(shè)計(jì)要求 畫(huà)出電路原理圖、仿真波形圖;二、CPU的組成結(jié)構(gòu)3、 元器件的選擇 1。運(yùn)算部件

2、(ALU) ALU181的程序代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED。ALL;ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);COUT : OUT STD_LOGIC_VECTOR(3 DOWNTO

3、 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO,FZ: OUT STD_LOGIC );END ALU181;ARCHITECTURE behav OF ALU181 ISSIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN A9 = 0 A ; B9 <= 0' & B ; PROCESS(M,CN,A9,B9) BEGIN C

4、ASE S IS WHEN ”0000" = IF M=0 THEN F9=A9 + CN ; ELSE F9<=NOT A9; END IF; WHEN "0001” => IF M='0 THEN F9<=(A9 or B9) + CN ; ELSE F9=NOT(A9 OR B9); END IF; WHEN ”0010” = IF M=0' THEN F9<=(A9 or (NOT B9)+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN "0011” = IF M=&#

5、39;0' THEN F9<= "000000000" CN ; ELSE F9<="000000000”; END IF; WHEN ”0100" = IF M=0' THEN F9=A9+(A9 AND NOT B9)+ CN ; ELSE F9=NOT (A9 AND B9); END IF; WHEN ”0101” = IF M='0 THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9=NOT B9; END IF; WHEN ”0110" = IF

6、 M=0 THEN F9<=(A9 - B9) CN ; ELSE F9<=A9 XOR B9; END IF; WHEN ”0111" => IF M='0' THEN F9<=(A9 or (NOT B9) CN ; ELSE F9=A9 and (NOT B9); END IF; WHEN "1000" => IF M=0 THEN F9<=A9 + (A9 AND B9)+CN ; ELSE F9=(NOT A9)and B9; END IF; WHEN "1001” => IF M=0&

7、#39; THEN F9=A9 + B9 + CN ; ELSE F9=NOT(A9 XOR B9); END IF; WHEN "1010" = IF M='0 THEN F9=(A9 or(NOT B9))+(A9 AND B9)+CN ; ELSE F9=B9; END IF; WHEN ”1011” = IF M=0' THEN F9<=(A9 AND B9)- CN ; ELSE F9=A9 AND B9; END IF; WHEN "1100" = IF M=0' THEN F9=(A9 + A9) + CN ;

8、 ELSE F9<= ”000000001”; END IF; WHEN ”1101" => IF M=0' THEN F9<=(A9 or B9) + A9 + CN ; ELSE F9<=A9 OR (NOT B9); END IF; WHEN "1110" = IF M='0' THEN F9=(A9 or (NOT B9)) +A9) + CN ; ELSE F9=A9 OR B9; END IF; WHEN "1111” = IF M='0 THEN F9<=A9 - CN ; EL

9、SE F9=A9 ; END IF; WHEN OTHERS = F9<= "000000000” ; END CASE; IF(A9=B9) THEN FZ<='0';END IF;END PROCESS; F<= F9(7 DOWNTO 0) ; CO = F9(8) ; COUT="0000" WHEN F9(8)='0' ELSE ”0001"END behav; ALU的原理圖: 2。微控制器實(shí)現(xiàn)信息傳送要靠微命令的控制,因此在CPU 中設(shè)置微命令產(chǎn)生部件,根據(jù)控制信息產(chǎn)生微命令序列,對(duì)指令功能

10、所要求的數(shù)據(jù)傳送進(jìn)行控制,同時(shí)在數(shù)據(jù)傳送至運(yùn)算部件時(shí)控制完成運(yùn)算處理。微命令產(chǎn)生部件可由若干組合邏輯電路組成,也可以由專門的存儲(chǔ)邏輯組成。產(chǎn)生微命令的方式可分為組合邏輯控制方式和微程序控制方式兩種。在本章所介紹的8 位模型CPU 設(shè)計(jì)中,采用微程序控制方式通過(guò)微程序控制器和微指令存儲(chǔ)器產(chǎn)生微命令,因此此CPU 屬于復(fù)雜指令CISC CPU。 微控制器的原理圖: 3。寄存器組計(jì)算機(jī)工作時(shí),CPU 需要處理大量的控制信息和數(shù)據(jù)信息。例如對(duì)指令信息進(jìn)行譯碼,以便產(chǎn)生相應(yīng)控制命令對(duì)操作數(shù)進(jìn)行算術(shù)或邏輯運(yùn)算加工,并且根據(jù)運(yùn)算結(jié)果決定后續(xù)操作等。因此,在CPU 中需要設(shè)置若干寄存器,暫時(shí)存放這些信息。在模

11、型CPU中,寄存器組由R0、R1、R2所組成。 寄存器組的原理圖:3。地址寄存器CPU 訪問(wèn)存儲(chǔ)器,首先要找到需要訪問(wèn)的存儲(chǔ)單元,因此設(shè)置地址寄存器(AR)來(lái)存放被訪單元的地址.當(dāng)需要讀取指令時(shí),CPU 先將PC 的內(nèi)容送入AR,再由AR將指令地址送往存儲(chǔ)器。當(dāng)需要讀取或存放數(shù)據(jù)時(shí),也要先將該數(shù)據(jù)的有效地址送入AR,再對(duì)存儲(chǔ)器進(jìn)行讀寫(xiě)操作. 地址寄存器的原理圖: 4。指令寄存器指令寄存器(IR)用來(lái)存放當(dāng)前正在執(zhí)行的指令,它的輸出包括操作碼信息、地址信息等,是產(chǎn)生微命令的主要邏輯依據(jù)。 指令寄存器的原理圖: 5.程序計(jì)數(shù)器程序計(jì)數(shù)器(PC)也稱指令指針,用來(lái)指示指令在存儲(chǔ)器中的存放位置。當(dāng)程序

12、順序執(zhí)行時(shí),每次從主存取出一條指令,PC 內(nèi)容就增量計(jì)數(shù),指向下一條指令的地址。增量值取決于現(xiàn)行指令所占的存儲(chǔ)單元數(shù).如果現(xiàn)行指令只占一個(gè)存儲(chǔ)單元,則PC 內(nèi)容加1;若現(xiàn)行指令占了兩個(gè)存儲(chǔ)單元,那么PC 內(nèi)容就要加2。當(dāng)程序需要轉(zhuǎn)移時(shí),將轉(zhuǎn)移地址送入PC,使PC 指向新的指令地址.因此,當(dāng)現(xiàn)行指令執(zhí)行完,PC 中存放的總是后續(xù)指令的地址;將該地址送往主存的地址寄存器AR,便可從存儲(chǔ)器讀取下一條指令。 程序計(jì)數(shù)器的原理圖:4、 系統(tǒng)總電路圖及原理 系統(tǒng)原理:該CPU 主要由算術(shù)邏輯單元ALU,數(shù)據(jù)暫存寄存器DR1、DR2,數(shù)據(jù)寄存器R0R2,程序計(jì)數(shù)器PC,地址寄存器AR,程序/數(shù)據(jù)存儲(chǔ)器MEM

13、ORAY,指令寄存器IR,微控制器uC,輸入單元INPUT 和輸出單元OUTPUT 所組成。圖中虛線框內(nèi)部分包括運(yùn)算器、控制器、程序存儲(chǔ)器、數(shù)據(jù)存儲(chǔ)器和微程序存儲(chǔ)器等,實(shí)測(cè)時(shí),它們都可以在單片F(xiàn)PGA 中實(shí)現(xiàn)。虛線框外部分主要是輸入/輸出裝置,包括鍵盤(pán)、數(shù)碼管、LCD 顯示器等,用于向CPU 輸入數(shù)據(jù),或CPU 向外輸出數(shù)據(jù),以及觀察CPU 內(nèi)部工作情況及運(yùn)算結(jié)果.5、 波形仿真 仿真波形圖: 分析:(1)M輸出微指令01800,控制臺(tái)執(zhí)行P(4),進(jìn)行“讀、寫(xiě)、運(yùn)行"功能判斷。檢測(cè)到SWA、SWB=11后,進(jìn)入程序運(yùn)行RP(11)方式。(2)執(zhí)行微地址為23的微指令,M輸出微指令為

14、018001,后續(xù)微地址uA為01。然后進(jìn)入程序運(yùn)行的流程.(3)執(zhí)行微地址為01的M微指令008001,執(zhí)行的操作為PCAR=00H,PC+1=01H,AR指向RAM存儲(chǔ)器地址00H,后續(xù)地址uA為02。(4)執(zhí)行微地址為02的M微指令01ED82,執(zhí)行取指令操作,取出第一條指令的操作碼,經(jīng)過(guò)分支判斷P(1),這是一條輸入指令I(lǐng)N.(5)執(zhí)行微地址為10的M微指令00C048,將RAM中的指令00通過(guò)內(nèi)部總線BUS,送指令寄存器IR:RAM(00H)=00BUSIR=00H。(6)執(zhí)行微地址為01的M微指令001001,SW_B為高電平,允許SW的數(shù)據(jù)送往數(shù)據(jù)總線BUS,由此接收數(shù)據(jù)56H.

15、所以R0=56H。(7)執(zhí)行微地址為02的M微指令01ED82,執(zhí)行取指令操作:PCAR=01H,PC+1=02H,AR指向RAM存儲(chǔ)器地址01H,后續(xù)微地址uA為02。(8)執(zhí)行微地址09的M微指令00C048,取指令,并經(jīng)過(guò)分支判斷P(1),讀出地址為01H單元的內(nèi)容10H,經(jīng)過(guò)BUS送到指令寄存器IR:RAM(01H)=10HBUSIR=10H。(9)執(zhí)行微地址為03的M微指令01ED83,進(jìn)入加法運(yùn)算微程序.通過(guò)間接尋址獲得另一個(gè)操作數(shù),地址寄存器AR指向取數(shù)的間接地址:PCAR=02H,PC+1=03H,AR指向RAM的02單元.(10)執(zhí)行微地址為04的M微指令00E004,RAM

16、_B為高電平,RAM的(02)單元的內(nèi)容通過(guò)BUS送AR,取數(shù)地址(AR)=0AH,RAM(02)=0AHBUSAR=0AH。(11)執(zhí)行微地址為05的M微指令00B005,RAM_B為高電平,RAM的(0AH)單元的內(nèi)容34H送到BUS,此時(shí)LDDR2為高電平,BUS上的數(shù)據(jù)就送給了DR2,執(zhí)行結(jié)果:RAM(0AH)=34HBUSDR2=34H。(12)執(zhí)行微地址為06的M微指令01A206,將R0的數(shù)據(jù)送DR1.R0_B=1,允許R0的內(nèi)容56H送往BUS,此時(shí)LDDR1為高電平,BUS上的數(shù)據(jù)56H寫(xiě)入ALU的數(shù)據(jù)緩沖期DR1,執(zhí)行結(jié)果:(R0)=56HBUSDR1=56H。(13)執(zhí)行

17、微地址為01的M微指令919A01,完成加法運(yùn)算:(DR1)+(DR2)R0,56H+34H=8AHR0=8AH。(14)執(zhí)行微地址為02的M微指令01ED82,執(zhí)行取指令操作:PCAR=03H,PC+1=04H,AR指向RAM存儲(chǔ)器地址03H,執(zhí)行第三條指令,存儲(chǔ)STA。(15)執(zhí)行微地址12的M微指令00C048,取指令,并經(jīng)過(guò)分支判斷P(1),讀出地址為03H單元的內(nèi)容20H,經(jīng)過(guò)BUS送到指令寄存器IR:RAM(03H)=20HBUSIR=20H。(16)執(zhí)行微地址為07的M微指令01ED87,通過(guò)間接尋址獲得另一個(gè)操作數(shù),地址寄存器AR指向取數(shù)的間接地址:PCAR=04H,PC+1=

18、05H,AR指向RAM的04單元。(17)執(zhí)行微地址為15的M微指令00E00D,RAM_B為高電平,RAM的(04)單元的內(nèi)容通過(guò)BUS送AR,取數(shù)地址(AR)=0BH,RAM(04)=0BHBUSAR=0BH。(18)執(zhí)行01微地址為01的M微指令038201,RAM_B為高電平,R0的內(nèi)容存入RAM(0BH)單元,BUS上的數(shù)據(jù)就送給了DR2,執(zhí)行結(jié)果:RAM(0BH)=8AHBUSRAM(0BH)=8AH。(19)執(zhí)行微地址為02的M微指令01ED82,執(zhí)行取指令操作:PCAR=05H,PC+1=06H,AR指向RAM存儲(chǔ)器地址05H,執(zhí)行第四條指令,輸出OUT。(20)執(zhí)行微地址13的M微指令00C048,取指令,并經(jīng)過(guò)分支判斷P(1),讀出地址為05H單元的內(nèi)容30H,經(jīng)過(guò)BUS送到指令寄存器IR:RAM(05H)=30HBUSIR=30H。(21)執(zhí)行微地址為16的M微指令01ED8E,通過(guò)間接尋址獲得另一個(gè)操作數(shù),地址寄存器AR指向取數(shù)的間接地址:PCAR=06H,PC+1=07H,AR指向RAM的06單元。(22)執(zhí)行微地址為17的M微指令00E00F,RAM_B為高電平,RAM的(06)單元的內(nèi)容通過(guò)BUS送AR,取數(shù)地址(AR)=0BH,RAM(06)=0BHBUSAR=0BH。(23)執(zhí)行微地址為25的M微指令00A015,RAM_B為高

溫馨提示

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

評(píng)論

0/150

提交評(píng)論