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

下載本文檔

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

文檔簡介

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

4、OCESS(M,CN,A9,B9) BEGIN CASE 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

5、or (NOT B9)+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN "0011" => IF M='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 I

6、F; WHEN "0101" => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF; WHEN "0110" => IF 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) -

7、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' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF; WHEN "1010" => IF M=&#

8、39;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 ; ELSE F9<= "000000001" END IF;

9、 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 ; E

10、LSE 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è)置微

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

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

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

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

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

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

17、行微地址為04的M微指令00E004,RAM_B為高電平,RAM的(02)單元的內(nèi)容通過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寫入ALU的數(shù)據(jù)緩沖期DR1,執(zhí)行結(jié)果:(R0

18、)=56HBUSDR1=56H.(13)執(zhí)行微地址為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存儲器地址03H,執(zhí)行第三條指令,存儲STA。(15)執(zhí)行微地址12的M微指令00C048,取指令,并經(jīng)過分支判斷P(1),讀出地址為03H單元的內(nèi)容20H,經(jīng)過BUS送到指令寄存器IR:RAM(03H)=20HBUSIR=20H。(16)執(zhí)行微地址為07的M微指令01ED87,通過間接尋址獲得另一個(gè)操作數(shù),地址寄存器AR指向

19、取數(shù)的間接地址:PCAR=04H,PC+1=05H,AR指向RAM的04單元。(17)執(zhí)行微地址為15的M微指令00E00D,RAM_B為高電平,RAM的(04)單元的內(nèi)容通過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存儲器地址05H,執(zhí)行第四條指令,輸出OUT。(20)執(zhí)行微地址13的M微指令00C048,取指令,并經(jīng)過分支判斷P(1),讀出地址為05H單元的內(nèi)容30H,經(jīng)過BUS送到指令寄存器IR:RAM(05H)=30HBUSIR=30H。(21)執(zhí)行微地址為16的M微指令01ED8E,通過間接尋址獲得另一個(gè)操作數(shù),地址寄存器AR指向取數(shù)的間接地址:PCAR=06H,PC+1=07H,AR指向RAM的06單元。(22)執(zhí)行微地址為17的M微指令00E00F,RAM_B為高電平,RAM的(06)單元的內(nèi)容通過BUS送AR,取數(shù)地址(AR)=0BH,RAM(06)=0BHBUSAR=0BH

溫馨提示

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

最新文檔

評論

0/150

提交評論