版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第六講8位CPU分析與設(shè)計6.1CPU組成結(jié)構(gòu)6.2RichardCPU分析6.3CPU設(shè)計方法6.4指令系統(tǒng)設(shè)計6.5CPU設(shè)計思路6.6CPU功能模塊設(shè)計6.1CPU組成結(jié)構(gòu)按照馮?諾依曼計算機(jī)的劃分方式,運算部件和與運算有關(guān)的寄存器屬于運算器,而與程序執(zhí)行有關(guān)的寄存器、微命令產(chǎn)生部件及時序系統(tǒng)等則屬于控制器部分。CPU主要由控制部件和運算部件兩部分構(gòu)成。CPU的主要功能單元通過內(nèi)部總線建立CPU內(nèi)部的信號傳送通路,實現(xiàn)信息交換。
6.1.1控制部件控制器主要由以下幾部分組成:
指令部件
時序部件
微操作序列形成部件
中斷控制邏輯等輔助電路6.1.1控制部件控制器分為硬布線控制器和微程序控制器兩種基本類型。硬布線控制器將控制部件看做產(chǎn)生專門固定時序控制信號的邏輯電路,以使用最少的元件和取得最高操作速度作為設(shè)計目標(biāo)。缺點:設(shè)計不規(guī)整,并且不易修改或擴(kuò)展。微程序控制器將機(jī)器指令的操作(從取指令到執(zhí)行)分解為若干更基本的微操作序列,并將有關(guān)的控制信息(微命令)以微碼形式編成微指令輸入控制存儲器中。優(yōu)點:設(shè)計規(guī)則,方便修改及功能擴(kuò)展。6.1.2運算部件運算部件是計算機(jī)中對數(shù)據(jù)進(jìn)行加工處理的主要場所,其最重要的功能是執(zhí)行算術(shù)和邏輯運算。運算器的性能直接決定計算機(jī)的處理能力,而運算器的設(shè)計與數(shù)據(jù)在計算機(jī)內(nèi)的表示、存儲方式、完成運算所用的算法及實現(xiàn)算法所用的邏輯電路都有密切關(guān)聯(lián)。6.1.2運算部件運算部件主要由輸入邏輯、算術(shù)/邏輯運算單元及輸出邏輯等三部分組成。輸入邏輯對輸入到算術(shù)/邏輯運算單元的操作數(shù)進(jìn)行選擇算術(shù)/邏輯運算單元運算部件的核心,完成具體的算術(shù)、邏輯運算操作。輸出邏輯將算術(shù)/邏輯運算單元的運算結(jié)果經(jīng)直傳、左移、右移或者字節(jié)交換后送入相應(yīng)的寄存器。6.1.3寄存器組在復(fù)雜指令集計算機(jī)系統(tǒng)中一般有5種類型的寄存器:指令寄存器程序計數(shù)器存儲器數(shù)據(jù)緩沖寄存器(MemoryBufferRegister,MBR)存儲器地址寄存器(MemoryAddressRegister,MAR)程序狀態(tài)字寄存器(ProgramStatusWord,PSW)1.CPU包括哪些部件控制器運算器寄存器數(shù)據(jù)通路ABCD提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕CPU設(shè)計實例CPU設(shè)計實例2.這個CPU需要多長時間完成設(shè)計6個月12個月18個月20個月以上ABCD提交投票最多可選1項CPU設(shè)計實例BMOW(BigMessofWires)6.2RichardCPU分析美國華盛頓大學(xué)WilliamD.Richard采用VHDL語言設(shè)計的16位CPU,僅有200行代碼。IREG:指令寄存器(InstructionRegister)PC:程序計數(shù)器(ProgramCounter)IAR:間接地址寄存器(IndirectAddressRegister)ALU:算術(shù)邏輯單元
(ArithmeticLogicUnit)ACC:累加器(Accumulator)6.2RichardCPU分析6.2.1指令集設(shè)計分析代碼指令說明運算方法0000halt暫停(haltexecution)0001negate反相(negation)ACC:=-ACC1xxxload立即載入
(immediateload)ifsignbitofxxxis0then
ACC:=0xxxelseACC:=fxxx2xxxdload直接載入(directload)ACC:=M[0xxx]3xxxiload間接載入(indirectload)ACC:=M[M[0xxx]]4xxxdstore直接存儲
(directstore)M[0xxx]:=ACC5xxxistore間接存儲
(indirectstore)M[M[0xxx]]:=ACC6xxxbr分枝(branch)PC:=0xxx7xxxbrZero零分枝(branchifzero)ifACC=0thenPC:=0xxx8xxxbrPos正分枝(branchifpositive)ifACC>0thenPC:=0xxx9xxxbrNeg負(fù)分枝(branchifnegative)ifACC<0thenPC:=0xxxaxxxadd加法ACC:=ACC+M[0xxx]
6.2.2指令編碼分析halt與negate沒有運算參數(shù),編碼為0000H和0001H。指令編碼 IR(15..12):運算碼 IR(11..0):運算元四種指令類型載入指令(load,dload,iload)存儲指令(dstore,istore)分支指令(br,brZero,brZero,brPos,brNeg)
運算指令,加法運算(add)陳鍾誠
-2024/12/266.2.3設(shè)計思路采用Mealy狀態(tài)機(jī)設(shè)計方式輸出由當(dāng)前狀態(tài)state與輸入信號t0-t7決定。CPU基本狀態(tài)
標(biāo)準(zhǔn)狀態(tài):reset,fetch,halt指令狀態(tài):negate,mload,dload,iload,dstore,istore,brahch,brZero,brPos,brNeg,add等。17陳鍾誠
-2024/12/26typestate_typeis( reset_state,fetch,halt,negate,mload,dload,iload, dstore,istore,branch,brZero,brPos,brNeg,add);signalstate:state_type;typetick_typeis(t0,t1,t2,t3,t4,t5,t6,t7);signaltick:tick_type;6.2.4指令周期分析istore--M[M[0xxx]]:=ACC①IR(11..0)([0xxx])地址總線②數(shù)據(jù)總線(M[0xxx])
IAR③清除地址線④IAR
地址總線⑤ACC
數(shù)據(jù)總線⑥使能存儲器寫操作⑦等待完成寫操作⑧清除地址總線、數(shù)據(jù)總線三態(tài)6.2.5時鐘節(jié)拍產(chǎn)生指令執(zhí)行最多包含8個CPU周期,每一個CPU周期為一個節(jié)拍:t0t1…t7。6.2.6指令譯碼器設(shè)計陳鍾誠
-2024/12/26 proceduredecodeisbegin --Instructiondecoding. caseiReg(15downto12)is whenx"0"=> ifiReg(11downto0)=x"000"then state<=halt; elsifiReg(11downto0)=x"001"then state<=negate; endif; whenx"1"=> state<=mload; whenx"2"=> state<=dload; whenx"3"=> state<=iload; whenx"4"=> state<=dstore; whenx"5"=> state<=istore; whenx"6"=> state<=branch; whenx"7"=> state<=brZero; whenx"8"=> state<=brPos; whenx"9"=> state<=brNeg; whenx"a"=> state<=add; whenothers=>state<=halt; endcase; endproceduredecode;6.2.7微控制器設(shè)計微控制器將每條指令分解為若干條微操作。為了提高執(zhí)行效率,在時鐘上升和下降邊沿都有執(zhí)行動作。(1)Fetch指令分析(2)Dload指令分析(3)仿真波形6.2.8RAM設(shè)計為了簡化設(shè)計,在RAM中存放測試程序代碼。3.RichardCPU采用的設(shè)計方式是Mealy狀態(tài)機(jī)Moore狀態(tài)機(jī)哈佛結(jié)構(gòu)自頂向下設(shè)計ABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.3CPU設(shè)計方法①CPU基本結(jié)構(gòu)②指令集設(shè)計(功能設(shè)計)③指令編碼設(shè)計④整體設(shè)計思路⑤確定指令周期⑥CPU功能模塊設(shè)計⑦CPU模塊聯(lián)合調(diào)試測試8位CPU結(jié)構(gòu)哈佛結(jié)構(gòu)RAM:128ByteROM:4KB6.4指令集設(shè)計四種類型指令傳送類型指令邏輯運算指令算術(shù)運算指令調(diào)用及轉(zhuǎn)移指令6.4指令集設(shè)計四種類型指令,27條指令傳送類型指令(7條指令)邏輯運算指令(5條指令)算術(shù)運算指令(7條指令)調(diào)用及跳轉(zhuǎn)指令(8條指令)指令尋址方式立即尋址直接尋址寄存器直接尋址操作碼操作數(shù)指令的操作種類所用操作數(shù)數(shù)據(jù)類型操作數(shù)地址地址附加信息尋址方式6.4.1指令組成6.4.2指令編碼操作碼優(yōu)化編碼的方法有三種:定長編碼、哈夫曼編碼和擴(kuò)展編碼。定長編碼:是指所有指令的操作碼長度都是相等的。如果有n個需要編碼的操作碼,定長操作碼的位數(shù)最少需要log2n位。哈夫曼編碼:哈夫曼方法構(gòu)造哈夫曼樹進(jìn)行編碼。
擴(kuò)展編碼:繼承了哈夫曼思想,限制了操作碼長度為有限個數(shù)。6.4.3指令集設(shè)計端口操作6.4.3指令集設(shè)計6.4.3指令集設(shè)計6.4.3指令集設(shè)計6.4.5指令編碼設(shè)計傳送類指令0016.4.5指令編碼設(shè)計邏輯運算指令0106.4.5指令編碼設(shè)計算術(shù)運算指令0116.4.5指令編碼設(shè)計跳轉(zhuǎn)及調(diào)用指令1004.本課程所設(shè)計的CPU包含多少條指令20252736ABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.5CPU設(shè)計思路模塊化設(shè)計方法(分析模塊功能、模塊間信號傳遞)時鐘控制信號微程序控制方式6.5.1指令周期確定調(diào)用指令實現(xiàn)過程CALLAddr[11..0];
指令編碼為10011000,即98H取指操作
IR使能,指令通過總線傳送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器使能,IR送入指令,生成下一條微程序地址。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]調(diào)用指令實現(xiàn)過程CALLAddr12;
指令編碼為10011000,即98H取操作數(shù)操作
IR使能,指令通過總線傳送到IR,PC+1。M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器生成下一條微程序地址。將IR接收到的地址賦給PC高4位。LDIR2;M_uROMCMROM_CSIR-->PC[11..8];addr[7:0]->CM[47:0]112調(diào)用指令實現(xiàn)過程CALLAddr12;
指令編碼為10011000,即98H取操作數(shù)操作
IR使能,指令通過總線傳送到IR,PC+1。M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器生成下一條微程序地址。將IR接收到的地址賦給PC低8位。LDIR3;M_uROMCMROM_CSIR-->PC[7..0];addr[7:0]->CM[47:0]334調(diào)用指令實現(xiàn)過程微操作控制信號功能說明SP-->AR/SP_EN/RAM_ENSP使能,將SP指針地址送到地址寄存器,使能RAMPC[11..8]-->BUSSP+1-->SP/PCH;M_SP_UPPC高8位送到SPSP指針加1SP-->ARPC[7..0]-->BUS/SP_EN/RAM_EN/PCL;SP使能,將SP地址送到地址寄存器,使能RAM。PC高8位送到SPSP+1-->SPPC-->addr12M_SP_UP;/LD_PCSP指針加1PC指向新的地址指令執(zhí)行
67586.5.2指令周期確定定長指令周期(8個CPU周期)6.6CPU功能模塊設(shè)計2443時鐘模塊156791086.6.1時鐘節(jié)拍設(shè)計8個時鐘節(jié)拍?4個時鐘節(jié)拍一個節(jié)拍包含2個時鐘周期時鐘上升沿或下降沿觸發(fā)時鐘模塊仿真結(jié)果時鐘模塊仿真結(jié)果時鐘模塊仿真結(jié)果時鐘模塊仿真結(jié)果5.所設(shè)計的指令集的指令周期是多少時鐘周期481216ABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕指令中的數(shù)據(jù)通路PC程序計數(shù)器只讀存儲器ROM指令寄存器ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作6.6.2PC程序計數(shù)器設(shè)計PC功能分析加1功能更新地址功能PC數(shù)值送到數(shù)據(jù)總線跳轉(zhuǎn)指令:JMP,JZ,JC調(diào)用函數(shù)指令:CALL計數(shù)器、鎖存器(1)PC端口信號分析(2)PC功能實現(xiàn)分析全局異步復(fù)位功能
ADDR<=“000000000000”;數(shù)據(jù)總線高阻態(tài);加1功能
clk_PC上升沿有效;M_PC高電平有效,PC+1ADDR;
clk_PC=nclk2;(2)PC功能實現(xiàn)分析地址更新功能clk_PC上升沿有效,nLD_PC低電平有效新的PCADDRPC數(shù)值送到數(shù)據(jù)總線
clk_PC上升沿有效,nPCH和nPCL低電平有效,注意分兩次輸出到總線上,先高8位后低8位。
6.什么指令會使PC值傳送到數(shù)據(jù)總線ADDJMPJNZCALLABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.6.3程序存儲器ROM設(shè)計clk_ROM=clk2&nclk16.6.4指令存儲器IR設(shè)計IR功能分析傳送指令編碼到微控制器生成PC的新地址生成RAM的讀寫地址IR不作譯碼操作,僅暫存數(shù)據(jù)。(1)IR端口定義clk_IR=nclk2(2)IR功能實現(xiàn)分析傳送指令編碼到微控制器
clk_IR上升沿有效,LD_IR1高電平有效
dataIR。寄存器地址操作Data[0]RSData[1]RD(2)IR功能實現(xiàn)分析生成PC的新地址
clk_IR上升沿有效,LD_IR2高電平有效,data[3..0]PC[11..8];
clk_IR上升沿有效,LD_IR3高電平有效,data[7..0]PC[7..0]。生成RAM的讀寫地址
clk_IR上升沿有效,LD_IR3高電平有效data[7..0]PC[7..0];
nARen低電平有效,PC[6..0]AR[6..0]。7.生成PC新地址為何需要分兩個時鐘周期完成PC地址為12位,數(shù)據(jù)總線為8位PC地址為16位,數(shù)據(jù)總線為8位PC地址為12位,數(shù)據(jù)總線為6位PC地址為10位,數(shù)據(jù)總線為8位ABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕功能模塊設(shè)計順序寄存器ALURAMSPIO端口微控制器8.本課程設(shè)計的CPU的存儲器的容量是4KBROM256BRAM128BRAM2KBROMABCD提交16KBROME多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.6.5寄存器RN設(shè)計RN功能分析數(shù)據(jù)鎖存功能讀寫功能clk_RN=nclk2D觸發(fā)器RN功能實現(xiàn)分析(1)復(fù)位功能:所有寄存器初始化為0。(2)讀寄存器功能:clk_RN上升沿有效,Ri_CS片選信號高電平有效,nRi_EN低電平有效,讀信號RDRi高電平有效,將源寄存器選擇信號RS對應(yīng)的寄存器存放的數(shù)據(jù)讀出到數(shù)據(jù)總線。(3)寫寄存器功能:當(dāng)clk_RN上升沿有效,Ri_CS片選信號高電平有效,寫信號WRRi高電平有效,將數(shù)據(jù)總線上的數(shù)據(jù)寫入到目的寄存器選擇信號RD對應(yīng)的寄存器。6.6.6ALU模塊設(shè)計ALU功能與結(jié)構(gòu)ALU設(shè)計方法8位ALU設(shè)計6.6.6.1ALU功能與結(jié)構(gòu)算術(shù)邏輯單元(ALU)執(zhí)行各種算術(shù)和邏輯運算算術(shù)運算操作加、減、乘、除邏輯運算操作與、或、非、異或計算機(jī)CPUALU6.6.6.1ALU功能與結(jié)構(gòu)ALU(算術(shù)運算、邏輯運算)輸入輸出6.6.6.1ALU功能與結(jié)構(gòu)ALU輸入操作數(shù)以及來自控制單元的控制命令A(yù)LU輸出運算結(jié)果,以及狀態(tài)信息ADDR0,R1;ALU(算術(shù)運算、邏輯運算)輸入輸出6.6.6.2ALU設(shè)計方法設(shè)計要求確定ALU功能確定指令操作ALU設(shè)計實現(xiàn)124指令執(zhí)行分析5ALU結(jié)構(gòu)選擇39.ALU輸出包括哪些內(nèi)容?運算結(jié)果寄存器數(shù)據(jù)狀態(tài)信息控制信號ABCD提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕(1)確定ALU功能
算術(shù)運算:加減運算不帶進(jìn)位加法運算不帶進(jìn)位減法運算帶進(jìn)位加法運算帶進(jìn)位減法運算邏輯運算基本邏輯運算混合邏輯運算(2)確定指令操作ALU功能必須支持指令集中所有的算術(shù)運算和邏輯運算類型指令。系統(tǒng)可擴(kuò)展性。ADDCR0,R1;ALU功能指令集算術(shù)邏輯運算指令A(yù)LU功能算術(shù)邏輯運算指令(2)確定指令操作算術(shù)運算指令
(2)確定指令操作邏輯運算指令(3)ALU結(jié)構(gòu)選擇
根據(jù)運算器內(nèi)部總線與構(gòu)成運算器的基本部件的連接情況運算器分為3種基本結(jié)構(gòu):單總線結(jié)構(gòu)雙總線結(jié)構(gòu)三總線結(jié)構(gòu)單總線結(jié)構(gòu)所有部件都接到同一總線上,數(shù)據(jù)可以在任何兩個寄存器之間,或者在任一個寄存器和ALU之間傳送。在同一時間內(nèi),只能有一個操作數(shù)放在總線上進(jìn)行傳輸。單總線結(jié)構(gòu)需要分兩次才能將兩個操作數(shù)輸入到ALU,并且需要A、B兩個緩沖寄存器。優(yōu)點:控制電路比較簡單。缺點:操作速度較慢。雙總線結(jié)構(gòu)兩個操作數(shù)同時加到ALU進(jìn)行運算,只需一次操作控制,可得到運算結(jié)果。ALU的輸出不能直接加到總線上去。必須在ALU輸出端設(shè)置緩沖寄存器。兩條總線都被輸入數(shù)據(jù)占據(jù)雙總線結(jié)構(gòu)操作的控制要分兩步完成:(1)在ALU的兩個輸入端輸入操作數(shù),形成結(jié)果并送入緩沖寄存器;(2)暫存器將結(jié)果送入目的寄存器。暫存器暫存器三總線結(jié)構(gòu)ALU兩個輸入端分別連接兩條總線,ALU的輸出與第三條總線相連。附加直接傳送功能,當(dāng)一個操作數(shù)不需要修改,可通過總線開關(guān)將數(shù)據(jù)從輸入總線直接傳送到輸出總線。特點是操作時間快。缺點是結(jié)構(gòu)復(fù)雜。(4)指令執(zhí)行分析ADDR0,R1;兩個控制信號不能同時有效。暫存器A控制信號暫存器B控制信號AB(3)指令執(zhí)行分析ADDR0,R1;在時鐘上升沿有效,暫存器A控制信號有效,R0
總線暫存器A
。暫存器A控制信號有效AB(4)指令執(zhí)行分析ADDR0,R1;在下一個時鐘上升沿有效的時候,暫存器B控制信號有效,R1
總線暫存器B。暫存器B控制信號有效AB兩個控制信號在不同的時鐘節(jié)拍內(nèi)有效,實現(xiàn)暫存器的控制選擇。(4)指令執(zhí)行分析ADDR0,R1;暫存器A控制信號暫存器B控制信號運算類型選擇信號操作選擇信號進(jìn)位輸入信號AB10.ALU單總線結(jié)構(gòu)的特點是所有部件連接到同一條總線在同一時間內(nèi),只能有一個操作數(shù)放在總線上進(jìn)行傳輸。需要A、B兩個緩沖寄存器ALU的輸出不能直接加到總線上去。ABCD提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕(5)ALU設(shè)計實現(xiàn)基于器件電路的ALU設(shè)計基于硬件描述語言的ALU設(shè)計FPGA驗證6.6.6.38位ALU設(shè)計基于器件的8位ALU設(shè)計基于VHDL的8位ALU設(shè)計(1)基于器件的8位ALU設(shè)計8位D觸發(fā)器742734位算術(shù)邏輯運算部件74181(1)基于器件的8位ALU設(shè)計暫存器設(shè)計算術(shù)邏輯運算部件設(shè)計暫存器電路實現(xiàn)鎖存器選擇信號清零信號CLRN接高電平R0,R1的數(shù)據(jù)送入到暫存器A和B。
ADD R0,R1;算術(shù)邏輯運算部件設(shè)計根據(jù)設(shè)計的指令集,包括加法、減法、與或非等算術(shù)邏輯運算。如何利用現(xiàn)有的多位的算術(shù)邏輯器件構(gòu)建ALU中的算術(shù)邏輯運算部件。4位算術(shù)邏輯運算器件74181M運算類型選擇輸入S3—S0操作選擇輸入Cn進(jìn)位輸入A3—A0數(shù)據(jù)A輸入B3—B0數(shù)據(jù)B輸入4位算術(shù)邏輯運算器件74181Cn+4進(jìn)位輸出FA=BA=B比較輸出G進(jìn)位產(chǎn)生輸出P進(jìn)位傳送輸出F3—F0運算結(jié)果輸出74181運算功能“加”指算術(shù)加;符號“+”指“邏輯加”;減法采用補(bǔ)碼進(jìn)行。算術(shù)邏輯部件電路實現(xiàn)暫存器A暫存器BCN為進(jìn)位輸入CN4為低4位向高4位的進(jìn)位ADD R0,R1;加法運算實現(xiàn)過程ADDR0,R1;
指令編碼為01100100,即64H取指操作
IR使能,指令通過總線傳送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器使能,IR送入指令,生成控制信號。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]加法運算實現(xiàn)過程微操作控制信號功能說明R0-->BUSRDRi,/Ri_EN寄存器讀使能,讀信號有效,R0數(shù)據(jù)送到數(shù)據(jù)總線BUS-->AM_A暫存器A使能,數(shù)據(jù)從總線輸入到暫存器AR1-->BUSRDRi,/Ri_EN寄存器讀使能,讀信號有效,R1數(shù)據(jù)送到數(shù)據(jù)總線BUS-->BM_B暫存器B使能,數(shù)據(jù)從總線輸入到暫存器B取操作數(shù)
暫存器電路鎖存器選擇信號加法運算實現(xiàn)過程微操作控制信號功能說明A-->ALU,B-->ALUM=0;Cn=1;
S3…S0=1001暫存器數(shù)據(jù)送到ALU,選擇不帶進(jìn)位算術(shù)加法運算ALU-->BUS/ALU_EN=0ALU輸出使能,ALU運算結(jié)果輸出到數(shù)據(jù)總線BUS-->R0M_Rn;WRRi寄存器使能,寫信號有效,數(shù)據(jù)通過總線寫入R0寄存器執(zhí)行指令
算術(shù)邏輯部件電路實現(xiàn)暫存器A暫存器B程序狀態(tài)標(biāo)志設(shè)計算術(shù)邏輯運算影響程序狀態(tài)AC(PSW.0)輔助進(jìn)位標(biāo)志位,用于BCD碼的十進(jìn)制調(diào)整運算。CY(PSW.1)進(jìn)位標(biāo)志位在執(zhí)行算術(shù)指令時,指示運算是否產(chǎn)生進(jìn)位。ZN(PSW.2)零標(biāo)志位用來判斷最近一次的運算結(jié)果是否為零。OV(PSW.3)溢出標(biāo)志位在執(zhí)行算術(shù)指令時,指示運算是否產(chǎn)生溢出。程序狀態(tài)標(biāo)志設(shè)計用戶可以訪問和控制程序狀態(tài)具有置位、清零、數(shù)據(jù)存儲功能集成置位、清零功能的D觸發(fā)器程序狀態(tài)電路實現(xiàn)AC輔助進(jìn)位標(biāo)志CY進(jìn)位標(biāo)志ZN零標(biāo)志位OV溢出標(biāo)志11.本課程設(shè)計的CPU程序狀態(tài)信息包括進(jìn)位零標(biāo)志位溢出奇偶標(biāo)志位ABCD提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕移位寄存器設(shè)計邏輯左移邏輯右移循環(huán)邏輯左移循環(huán)邏輯右移移位寄存器電路實現(xiàn)F[1..0]操作選擇[00]直接傳送[01]循環(huán)右移[10]循環(huán)左移[11]邏輯左移當(dāng)ALU_EN信號使能時,通過74244三態(tài)緩沖器,將結(jié)果輸出到數(shù)據(jù)總線上。四選一選擇電路RLR0;循環(huán)左移循環(huán)左移運算實現(xiàn)過程RLR0;
指令編碼為01111000,即78H取指操作
微操作控制信號功能說明PC-->ADDR[11..0]M_ROM;/ROM_ENROM片選信號有效,PC指向程序入口地址BUS-->IR;PC+1-->PCLDIR1;M_PCIR使能,微指令通過總線傳送到IR,PC+1。循環(huán)左移運算實現(xiàn)過程微操作控制信號功能說明R0-->BUSRDRi,/Ri_EN寄存器讀使能,讀信號有效,R0數(shù)據(jù)送到數(shù)據(jù)總線BUS-->AM_A暫存器A使能,數(shù)據(jù)從總線輸入到暫存器A取操作數(shù)
循環(huán)左移運算實現(xiàn)過程微操作控制信號功能說明A-->ALU,M=0;Cn=1;
S3…S0=0000暫存器數(shù)據(jù)送到ALU,直接輸出到移位寄存器ALU-->BUS
F1F0=10;/ALU_EN=0循環(huán)左移運算,ALU輸出使能,ALU運算結(jié)果輸出到總線BUS-->R0M_Rn;WRRi寄存器使能,寫信號有效,數(shù)據(jù)通過總線寫入寄存器R0執(zhí)行指令
ALU模塊(2)基于VHDL語言的ALU設(shè)計clk_ALU=nclk212.本課程所設(shè)計的ALU功能包括算術(shù)邏輯運算乘法運算移位運算程序狀態(tài)字ABCD提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.6.7數(shù)據(jù)存儲器RAM設(shè)計MOVRi,direct;MOVdirect,Ri;RAM功能分析數(shù)據(jù)存儲功能數(shù)據(jù)讀寫操作(1)RAM端口定義高電平寫操作有效,低電平讀有效clk_RAM=W2MOVR0,[16H](2)RAM功能實現(xiàn)讀數(shù)據(jù)操作 clk_RAM上升沿有效,RAM_CS高電平,wr_nRD低電平,nRAM_EN低電平,[AR]
data
。寫數(shù)據(jù)操作 clk_RAM上升沿有效,RAM_CS高電平,wr_nRD高電平有效,data[AR]。6.6.8堆棧指針SP設(shè)計MOVSP,#data;PUSHRi;POPRi;SP功能分析數(shù)據(jù)存儲功能加1功能(出棧)減1功能(壓棧)(1)SP端口定義clk_SP=nclk1&nclk2&W2(2)SP功能實現(xiàn)分析數(shù)據(jù)存儲功能
clk_SP上升沿有效,SP_CS高電平,dataSP。加1功能(出棧)clk_SP上升沿有效,SP_CS高電平,SP_UP高電平,nSP_EN低電平有效,SP+1SP,SPAR。減1功能(壓棧)clk_SP上升沿有效,SP_CS高電平,SP_DN高電平,nSP_EN低電平有效,SP-1SP,SPAR。13.本課程所設(shè)計的堆棧最大容量是多少1024B512B256B128BABCD提交單選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.6.9IO端口設(shè)計MOVP0,Ri;MOVRi,P0;IO端口功能分析輸入鎖存輸出鎖存(1)IO端口定義clk_P0=nclk2(2)IO功能實現(xiàn)分析輸入鎖存clk_PO上升沿有效,P0_CS高電平,nP0_IEN低電平,P0_IN
data。輸出鎖存clk_PO上升沿有效,P0_CS高電平,nP0_OEN低電平,data
P0_OUT。6.6.10微程序控制器設(shè)計微程序控制器基本原理微程序控制器基本結(jié)構(gòu)微程序控制器設(shè)計方法基于VHDL的微程序控制器設(shè)計6.6.10.1微程序控制器基本原理將指令分解為基本的微命令序列,把操作控制信號編制成微指令,存放到控制存儲器(CM)。運行時,從控存中取出微指令,產(chǎn)生指令運行所需的操作控制信號。微操作、微命令、微指令、微程序機(jī)器指令A(yù)DDR0,R1MOVR0,R1微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)機(jī)器指令A(yù)DDR0,R1MOVR0,R1微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)機(jī)器指令A(yù)DDR0,R1MOVR0,R1微指令(取指令/取操作數(shù)/執(zhí)行)微操作、微命令、微指令、微程序T1:微操作1(微命令1,2…i)T2:微操作2(微命令1,2…j)T3:微操作3(微命令1,2…k)………Tm:微操作n(微命令1,2…x)機(jī)器指令A(yù)DDR0,R1MOVR0,R1微指令(取指令/取操作數(shù)/執(zhí)行)一段微程序微操作、微命令、微指令、微程序應(yīng)用程序
a=b微操作
PC->ADDR(11:0)
機(jī)器指令(微程序)MOVR0,R1
微命令(控制信號)M_ROM,ROM_EN微指令
取指令6.6.10.2微程序控制器基本結(jié)構(gòu)微地址形成電路
IR微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR6.6.10.2微程序控制器基本結(jié)構(gòu)控制存儲器CM--存放微程序微指令寄存器μIR--存放現(xiàn)行微指令微地址形成電路--提供下一條微地址微地址寄存器μAR--存放現(xiàn)在微地址加法指令的微程序分析ADDR0,R1;取指令
IR使能,指令通過總線傳送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器使能,IR送入指令,生成控制信號。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0]加法指令的微程序分析微操作控制信號功能說明R0-->BUSRDRi,/Ri_EN寄存器讀使能,讀信號有效,R0數(shù)據(jù)送到數(shù)據(jù)總線BUS-->AM_A暫存器A使能,數(shù)據(jù)從總線輸入到暫存器AR1-->BUSRDRi,/Ri_EN寄存器讀使能,讀信號有效,R1數(shù)據(jù)送到數(shù)據(jù)總線BUS-->BM_B暫存器B使能,數(shù)據(jù)從總線輸入到暫存器B取操作數(shù)
加法指令的微程序分析微操作控制信號功能說明A-->ALU,B-->ALUM=0;Cn=1;
S3…S0=1001暫存器數(shù)據(jù)送到ALU,選擇不帶進(jìn)位算術(shù)加法運算ALU-->BUS/ALU_EN=0ALU輸出使能,ALU運算結(jié)果輸出到數(shù)據(jù)總線BUS-->R0M_Rn;WRRi寄存器使能,寫信號有效,數(shù)據(jù)通過總線寫入R0寄存器執(zhí)行指令
14.微程序控制器基本結(jié)構(gòu)包括控制存儲器CM微指令寄存器μIR微地址形成電路微地址寄存器ABCD提交程序計數(shù)器E多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕(1)控制存儲器CM控制存儲器與主存儲器的區(qū)別控制存儲器主存儲器位置CPU內(nèi)CPU外器件ROMRAM和ROM內(nèi)容微程序、微指令程序、指令和數(shù)據(jù)(2)微指令寄存器μIR微命令(微操作)控制字段:提供當(dāng)前操作所需的微命令。微地址(順序控制)字段:微命令字段微地址字段指明后續(xù)微地址的形成方式。提供微地址的給定部分。(3)微地址形成電路微程序入口地址:由機(jī)器指令操作碼形成。后續(xù)微地址:由微地址字段、現(xiàn)行微地址等形成。工作過程微地址形成電路
IR微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR取指微指令(1)取機(jī)器指令CM取指微指令μIR控制存儲器取指微指令微命令字段微地址字段譯碼器微命令序列
IR微命令字段譯碼器控制存儲器微命令主存機(jī)器指令微命令字段微地址字段IR譯碼器微命令序列(2)轉(zhuǎn)微程序入口IR操作碼微地址形成電路入口μAR微命令字段CM首條微指令微地址形成電路
IR微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR取指微指令控制存儲器取指微指令微命令字段微地址字段譯碼器微命令序列
IR控制存儲器微命令字段微地址字段譯碼器微命令序列微地址形成電路
IR微地址寄存器微地址形成電路控制存儲器微地址寄存器微命令字段微地址字段(3)執(zhí)行首條微指令控制存儲器譯碼器μIRμIR譯碼器微命令字段微地址字段微命令序列微命令操作部件微地址形成電路
IR微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR(4)取后續(xù)微指令微地址字段現(xiàn)行微地址微地址形成電路微命令字段微地址字段微地址寄存器微地址形成電路微命令字段微地址字段微地址寄存器微地址寄存器后續(xù)微地址μAR微地址形成電路控制存儲器CM后續(xù)微指令μIR微地址寄存器微命令字段微地址字段(5)執(zhí)行后續(xù)微指令同(3)微地址形成電路
IR微地址寄存器
μAR控制存儲器CM譯碼器微命令序列微命令字段微地址字段μIR微命令字段微地址字段微地址寄存器微地址形成電路微命令字段微地址字段微地址寄存器微地址寄存器微地址形成電路微地址寄存器微命令字段微地址字段(6)返回微程序執(zhí)行完,返回CM(存放取指微指令的固定單元)。15.微地址形成電路的微地址來自指令的操作碼后續(xù)微地址程序計數(shù)器ABC提交多選題1分此題未設(shè)置答案,請點擊右側(cè)設(shè)置按鈕6.6.10.3微程序控制器設(shè)計方法根據(jù)指令系統(tǒng),列出微操作序列微指令編碼控制微程序流確定指令格式微程序?qū)懭肟刂拼鎯ζ鞴δ苣K設(shè)計(1)指令的微操作分析IR使能,指令通過總線傳送到IR,PC+1。LDIR1;M_PCBUS-->IR;PC=PC+1;ROM片選信號有效,ROM讀使能,PC指向程序入口地址M_ROM;/ROM_ENPC-->ADDR[11..0]功能說明控制信號微操作微控制器使能,IR送入指令,生成控制信號。M_uROMIR-->Microcontrol;addr[7:0]->CM[47:0](2)微指令編碼直接控制法字段直接編譯法字段間接編譯法假設(shè)控存容量為4K,則需12位來表示下一個微指令地址??刂拼鎯ζ鞯娜萘坑蓪崿F(xiàn)指令系統(tǒng)所需要的微程序長度決定。12…2324…35下址字段控制字段直接控制編碼不譯碼法:微指令的控制字段中,每一位代表一個微命令。是否發(fā)出某個微命令,只要將控制字段中相應(yīng)位置成“1”或“0”,就可以打開或關(guān)閉某個控制門。優(yōu)點:控制簡單、速度快、并行好。缺點:微指令字長度長,需要大容量存儲空間?;コ馀c相容互斥的微操作:是指不能同時或不能在同一個節(jié)拍內(nèi)并行執(zhí)行的微操作。相容的微操作:是指能夠同時或在同一個節(jié)拍內(nèi)并行執(zhí)行的微操作。把互斥的微操作組合在同一字段中,采用編碼方式存取。把相容的微操作組合在不同字段中,各段單獨譯碼。把互斥的微命令編成一組,用二進(jìn)制編碼表示,成為微指令字的一個字段。在微指令寄存器的輸出端,為該字段增加一個譯碼器。優(yōu)點:縮短了微指令長度。字段直接編譯法字段1字段2字段3字段4
譯碼器1譯碼器2譯碼器3譯碼器4……..……..微操作微操作微操作微操作
IR下一地址分段間接編譯法在字段直接編譯法的基礎(chǔ)上,進(jìn)一步縮短微指令字長的一種編譯法。一個字段的某些微命令,要兼由另一些字段中的某些微命令來解釋。缺點:可能會削弱微指令的并行控制能力。譯碼器1譯碼器2譯碼器3譯碼器4……..……..微操作微操作微操作
IR后繼地址譯碼12微操作(3)控制微程序流當(dāng)前正在執(zhí)行的微指令,稱為現(xiàn)行微指令,現(xiàn)行微指令所在的控存單元的地址稱為現(xiàn)行微地址?,F(xiàn)行微指令執(zhí)行完畢后,下一條要執(zhí)行的微指令稱為后繼微指令,后繼微指令所在的控存單元地址稱為后繼微地址。(3)控制微程序流微程序流的控制:是指當(dāng)前微指令執(zhí)行完畢后,怎樣控制產(chǎn)生后繼微指令的微地址。由指令操作碼譯碼器產(chǎn)生由微指令的下址字段指出以增量方式產(chǎn)生后繼地址順序執(zhí)行微程序。
后繼微地址由現(xiàn)行微地址加上一個增量(通常為1)操作碼地址碼譯碼器微程序計數(shù)器(μPC)控制存儲器控制字段轉(zhuǎn)移條件后繼地址+1μPC+1微程序入口以增量方式產(chǎn)生后繼地址轉(zhuǎn)移的控制操作碼地址碼譯碼器控制地址寄存器(μPC)控制存儲器控制字段轉(zhuǎn)移條件后繼地址微程序入口邏輯控制轉(zhuǎn)移地址以增量方式產(chǎn)生后繼地址“計數(shù)器”方式下址部分很短,只有兩位,它選擇三個輸入源中的一個作為μPC的輸入①(μPC)+1→μPC②轉(zhuǎn)移微地址③操作碼譯碼器的輸出。譯碼器下址控制字段控制存儲器μPC譯碼器地址碼操作碼+1微程序入口IRμIR轉(zhuǎn)移邏輯轉(zhuǎn)移微地址非順序執(zhí)行的下址初始地址:控制存儲器的0號或1號單元開機(jī)時,微地址形成部件復(fù)位;開機(jī)后,執(zhí)行后續(xù)指令時,由現(xiàn)行微程序的最后一條微指令給出。轉(zhuǎn)移地址:由微指令給出。微中斷地址:入口地址是固定的,由硬件直接賦值給微地址形成部件(微中斷信號由程序的中斷引起)。(4)微指令格式垂直型微指令一條微指令定義并執(zhí)行一種基本操作優(yōu)點:微指令短、簡單、規(guī)整、便于編寫微程序缺點:微程序長,執(zhí)行速度慢,工作效率低水平型微指令一條微指令定義并執(zhí)行幾種并行的基本操作優(yōu)點:微程序短、執(zhí)行速度快缺點:微指令長,編寫微程序較麻煩水平微指令與垂直微指令比較水平微指令垂直微指令能力效率靈活性高強(qiáng)低弱速度執(zhí)行時間快短慢長字長長短掌握難度難容易(5)微指令設(shè)計思路采用直接控制編碼,增量方式產(chǎn)生后繼地址,水平型微指令。所有模塊控制信號控制信號匯總PC模塊(4條)LD_PC:instd_logic;--裝載新地址M_PC:instd_logic;--PC加1控制信號nPCH,nPCL::instd_logic;--PC輸出總線控制信號ROM模塊(2條)M_ROM:instd_logic;--ROM片選信號ROM_EN:instd_logic;--ROM使能信號控制信號匯總IR模塊(4條)LD_IR1,LD_IR2,LD_IR3:instd_logic;--IR指令存儲控制信號nARen:instd_logic;--IR中RAM地址控制信號RN模塊(4條)Ri_CS :instd_logic;--RN選擇信號Ri_EN:instd_logic;--RN寄存器使能RDRi,WRRi:instd_logic;--RN讀寫信號控制信號匯總ALU模塊(13條)M_A,M_B :instd_logic; --暫存器控制信號M_F :instd_logic; --程序狀態(tài)字控制信號nALU_EN :instd_logic; --ALU運算結(jié)果輸出使能nPSW_EN :instd_logic; --PSW輸出使能C0 :instd_logic; --進(jìn)位輸入 S:instd_logic_vector(4downto0);--運算類型和操作選擇F_in:instd_logic_vector(1downto0);--移位功能選擇RAM模塊(3條)RAM_CS:instd_logic;--RAM片選信號nRAM_EN:instd_logic;--RAM輸出使能信號wr_nRD:instd_logic;--讀寫信號
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 花卉節(jié)慶活動合同
- 教學(xué)用品訂購合同
- 琴行鋼琴出租協(xié)議
- 代購合同的履行期限
- 黃沙子供貨合同
- 違紀(jì)保證書范本成長與反思
- 寄售合同的主要條款
- 貨物購買協(xié)議格式
- 民間簡易借款合同范例
- 電廠招標(biāo)文件樣本獲取
- 新能源船舶發(fā)展現(xiàn)狀與趨勢探討
- 湖南長沙市湘一芙蓉二中學(xué)2023-2024學(xué)年數(shù)學(xué)七年級第一學(xué)期期末檢測試題含解析
- 高速鐵路牽引供電系統(tǒng)概論全套教學(xué)課件
- 科技館科普服務(wù)工作總結(jié)報告
- 大學(xué)生職業(yè)生涯規(guī)劃與就業(yè)指導(dǎo)(高等職業(yè))全套教學(xué)課件
- 國開電大法學(xué)本科《國際私法》期末考試總題庫(2024版)
- 不積跬步無以至千里課件
- 成人肺炎臨床診療指南
- 我的成長與收獲年度總結(jié)
- 《敘利亞戰(zhàn)局分析》課件
- 細(xì)菌分類表完整版20180720
評論
0/150
提交評論