微程序控制器_第1頁(yè)
微程序控制器_第2頁(yè)
微程序控制器_第3頁(yè)
微程序控制器_第4頁(yè)
微程序控制器_第5頁(yè)
已閱讀5頁(yè),還剩1頁(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、微程序控制器一、實(shí)驗(yàn)?zāi)康模毫私馕⒊绦蚩刂破鞑考脑?,能根?jù)總體的結(jié)構(gòu)和數(shù)據(jù)通路中的控制信號(hào) 設(shè)計(jì)微指令格式,進(jìn)而設(shè)計(jì)相應(yīng)的微指令命令控制器件完成相關(guān)的功能。二、實(shí)驗(yàn)內(nèi)容與步驟:設(shè)計(jì)微程序確定微程序流程圖,流程圖中的一條微指令,相當(dāng)于ASM流程圖中的一個(gè) 狀態(tài)。確定微指令格式(如下圖)微指令格式大體上分為控制字段和順序字段兩部分。其中,順序字段又分為 測(cè)試判別字段和下地址字段。微指令格式中的操作控制字段取決于執(zhí)行部件的子 系統(tǒng)需要多少微指令。測(cè)試判別字段取決于微程序流程圖中有多少處分支轉(zhuǎn)移。 下地址字段取決于微程序流程圖的規(guī)模。微命令 七七七耳微地址tHt-ttt tintt-tt,乂乂乂乂乂

2、乂乂乂乂 Ixxxxlxxxxx將微程序編譯成二進(jìn)麻根據(jù)確定的微指令格式,將微程序流程圖中的每一條指令編譯成二進(jìn)制代 碼,這項(xiàng)工作可由相關(guān)的軟件編程實(shí)現(xiàn)。微程序?qū)懭肟刂拼鎯?chǔ)器將二進(jìn)制代碼的微程序?qū)懭隕2PROM中。在我們的實(shí)驗(yàn)箱上可以有數(shù)據(jù)線 連通電腦,由軟件編好的程序下載到芯片中,替換掉原有的一組微指令集。設(shè)計(jì)硬件電路硬件電路包括微地址寄存器、微命令寄存器和地址轉(zhuǎn)移邏輯三部分。前兩部 分可選用適當(dāng)?shù)臉?biāo)準(zhǔn)寄存器芯片,如74LS273。地址轉(zhuǎn)移邏輯的輸入是測(cè)試判斷 標(biāo)志Pi、狀態(tài)條件和時(shí)間因素Tj (讀ROM時(shí)間),先寫出邏輯表達(dá)式,然后用 門電路芯片實(shí)現(xiàn)。下面是微程序控制器的結(jié)構(gòu)圖。讀數(shù)據(jù)。E

3、MWR:程序存儲(chǔ)器EM寫信號(hào)。EMRD:程序存儲(chǔ)器EM讀信號(hào)。PCOE:將程序計(jì)數(shù)器PC的值送到地址總線ABUS上。EMEN:將程序存儲(chǔ)器EM與數(shù)據(jù)總線DBUS接通,由EMWR和EMRD決定是將DBUS 數(shù)據(jù)寫到EM中,還是從EM讀出數(shù)據(jù)送到DBUS。IREN:將程序存儲(chǔ)器EM讀出的數(shù)據(jù)打入指令寄存器IR和微指令計(jì)數(shù)器uPC。EINT:中斷返回時(shí)清除中斷響應(yīng)和中斷請(qǐng)求標(biāo)志,便于下次中斷。ELP:PC打入允許,與指令寄存器的IR3、IR2位結(jié)合,控制程序跳轉(zhuǎn)。MAREN:將數(shù)據(jù)總線DBUS上數(shù)據(jù)打入地址寄存器MAR。MAROE:將地址寄存器MAR的值送到地址總線ABUS上。OUTEN:將數(shù)據(jù)總線

4、DBUS上數(shù)據(jù)送到輸出端口寄存器OUT里。STEN:將數(shù)據(jù)總線DBUS上數(shù)據(jù)存入堆棧寄存器ST中。RRD: 讀寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。RWR: 寫寄存器組R0-R3,寄存器R?的選擇由指令的最低兩位決定。CN:決定運(yùn)算器是否帶進(jìn)位移位,CN=1帶進(jìn)位,CN=0不帶進(jìn)位。FEN:將標(biāo)志位存入ALU內(nèi)部的標(biāo)志寄存器。WEN:將數(shù)據(jù)總線DBUS的值打入工作寄存器W中。AEN:將數(shù)據(jù)總線DBUS的值打入累加器A中。S2: S1: S0:S2、S1、S0三位組合決定ALU做何種運(yùn)算。如下表所示:S2 S1 S0功能000A+W加001A-W減010AIW或011A&W與

5、100A+W+C帶進(jìn)位加101A-W-C帶進(jìn)位減110AA取反111A輸出AX2: X1: X0: X2、X1、X0三位組合來(lái)譯碼選擇將數(shù)據(jù)送到DBUS上的寄存器。如下表所示:X2 X1 X0輸出寄存器000IN_OE外部輸入門001IA_OE中斷向量010ST_OE堆棧寄存器011PC_OEPC寄存器100D_OE直通門101R_OE右移門110L_OE左移門111沒有輸出實(shí)驗(yàn)程序設(shè)計(jì)及調(diào)試1、設(shè)計(jì)微程序的匯編程序如下:MOVR0,#10H立即數(shù)尋址,數(shù)據(jù)傳送MOVA,#20H立即數(shù)尋址,數(shù)據(jù)傳送ADDCA,R0寄存器尋址,帶進(jìn)位加SUBA,R0寄存器間接尋址,減運(yùn)算CPLA累加器尋址,求反

6、JMP0存儲(chǔ)器尋址,無(wú)條件跳轉(zhuǎn)2、微程序設(shè)計(jì)及其分析如下表所示:助記符狀態(tài)微地址微程序數(shù)據(jù)輸出數(shù)據(jù)打入地址 輸出運(yùn)算器移 位 控 制uPCPC_FATCH_T000CBFFFF指令寄存器IRPC輸出A輸出寫 入+1MOVR0,#10HT104C7FBFF存儲(chǔ)器值EM寄存器R?PC輸出A輸出+1+1T005CBFFFF指令寄存器IRPC輸出A輸出寫 入+1MOVA, #20HT108C7FFF7存儲(chǔ)器值EM寄存器APC輸出A輸出+1+1T009CBFFFF指令寄存器IRPC輸出A輸出寫 入+1ADDCA,R0T20CFFF7EF寄存器值R?寄存器WA輸出+1T10DFFFE94ALU直通寄存器A

7、,標(biāo)志位C,Z帶進(jìn)位加運(yùn)算+1T00ECBFFFF指令寄存器IRPC輸出A輸出寫 入+1SUBA,R0T310FF77FF寄存器值R?地址寄存器WARA輸出+1T211D7BFEF存儲(chǔ)器值EM寄存器WMAR輸出A輸出+1T112FFFE91ALU直通寄存器A,標(biāo)志位C,Z減運(yùn)算+1T013CBFFFF指令寄存器IRPC輸出A輸出寫入+1CPL AT114FFFE96ALU直通寄存器A,標(biāo)志位C,ZA取反+1T015CBFFFFF指令寄存器IRPC輸出A輸出寫入+1JMP MMTI18C6FFFF存儲(chǔ)器值EM寄存器PCPC輸出A輸出+1寫入T019CBFFFF指令寄存器IRPC輸出A輸出寫入+1

8、分析如下:每個(gè)程序的一開始的第一條微指令一定是取指令,此微指令的值為 0CBFFFFH,對(duì)應(yīng)的各控制位就是EMRD、PCOE IREN有效,其他所有位 都處于無(wú)效狀態(tài)。在程序第一次運(yùn)行或復(fù)位后,uPC和PC的值都為零,PCOE 有效將PC值送到ABUS,作為程序存儲(chǔ)器EM的地址,EMRD有效就是從程序 存儲(chǔ)器中讀出程序指令,IREN將讀出的指令送IR寄存器和uPC,此微指令的作 用就是:從程序存儲(chǔ)器EM的0地址讀出程序指令機(jī)器碼7CH,并存入uPC中 作為微程序存儲(chǔ)器uM的地址,從微程序存儲(chǔ)器uM的04H單元中讀出微控制 0C7FBFFH,同時(shí)PC加1為讀下一條指令做準(zhǔn)備。MOV R0,#85

9、H:本指令為兩個(gè)周期狀態(tài)。在T1狀態(tài)時(shí),微指令的值為 C7FBFF,對(duì)應(yīng)的各個(gè)控制位為:EMRD、PCOE、EMEN及RWR為低,處于有 效狀態(tài),其他控制位為無(wú)效狀態(tài)。由于上條微指令(取指操作)已將PC加1, 此時(shí)PCOE是將加1后的PC輸出到ABUS作為程序存儲(chǔ)器EM的地址,EMRD 就是從程序存儲(chǔ)器EM中讀出數(shù)據(jù),本指令中讀出的數(shù)據(jù)應(yīng)為10H,EMEN將讀 出的數(shù)據(jù)送到DBUS總線上,RWR是將DBUS總線上的值寫入寄存R0中。同 時(shí)uPC加1為執(zhí)行下條微指令做準(zhǔn)備,PC加1為讀取下一條指令做準(zhǔn)備。每條 指令的最后一條微指令一定是取指令操作,本指令的T0狀態(tài)周期即為取指令, 執(zhí)行上一條微指

10、令時(shí)uPC已經(jīng)加1,按照此uPC為地址從微程序存儲(chǔ)器uM讀出 的微指令的值為0CBFFFFH,參照第一步的說(shuō)明,此微指令從程序存儲(chǔ)器EM中 讀取指令。MOV A,#20H: 本指令為兩個(gè)周期狀態(tài)。在T1狀態(tài)時(shí),微指令的值為 C7FFF7,對(duì)應(yīng)的各個(gè)控制位為:EMRD、PCOE、EMEN及AEN為低,處于有 效狀態(tài),其他控制位為無(wú)效狀態(tài)。由于上條微指令(取指操作)已將PC加1, 此時(shí)PCOE是將加1后的PC輸出到ABUS作為程序存儲(chǔ)器EM的地址,EMRD 就是從程序存儲(chǔ)器EM中讀出數(shù)據(jù),本指令中讀出的數(shù)據(jù)應(yīng)為85H,EMEN將讀 出的數(shù)據(jù)送到DBUS總線上,AEN是將DBUS總線上的值存入累加器

11、A中, 同時(shí)uPC加1為執(zhí)行下條微指令做準(zhǔn)備,PC加1為讀取下一條指令做準(zhǔn)備。每 條指令的最后一條微指令一定是取指令操作,本指令的T0狀態(tài)周期即為取指令, 執(zhí)行上一條微指令時(shí)uPC已經(jīng)加1,按照此uPC為地址從微程序存儲(chǔ)器uM讀出 的微指令的值為0CBFFFFH,參照第一步的說(shuō)明,此微指令從程序存儲(chǔ)器EM中 讀取指令。ADDC A,R0: 本指令為三個(gè)周期狀態(tài)。在T2狀態(tài),由上次取指操作 取出的指令碼為21H,由IREN存入指令寄存器IR,最低兩位為00(二進(jìn)制),選 擇寄存器R0,指令碼由于IREN打入uPC時(shí),忽略掉指令的最低兩位,而將uPC 的最低兩位置成00,uPC的值為0CH,訪問(wèn)微

12、程序存儲(chǔ)器的0CH單元,讀出微 指令值為0FFF7EFH,有效位為RRD及WEN,就是將R0內(nèi)容送到工作寄存器 W,uPC加1取出下條微指令,在T1狀態(tài),讀出的微指令值為0FFFE94H,有 效位為FEN和AEN,F(xiàn)EN完成的操作是將標(biāo)志位存入標(biāo)志寄存器F(ALU內(nèi)部), X2X1X0選擇“人匚。直通”到數(shù)據(jù)總線DBUS,S2S1S0選擇的運(yùn)算操作為“帶 進(jìn)位的加法運(yùn)算”,AEN將DBUS上的數(shù)據(jù)存入累加器A。在T0狀態(tài),取出 將要執(zhí)行的指令。SUB A,R0:本指令有四個(gè)狀態(tài)周期。在T3狀態(tài),上次取出的指令碼 為35H,最低兩位用于尋址R0寄存器,uPC的最低兩位置0,來(lái)訪問(wèn)uM的10H 單

13、元的微指令,讀出值為0FF77FFH,將R1的值存入MAR,有效位為RRD和 MAREN。在T2狀態(tài),微指令為0D7BFEFH,表示用MAR作為地址從EM中讀 出數(shù)據(jù)送到DBUS再存到 W中,有效位為EMRD、EMEN、MAROE及 WEN。 在T1狀態(tài)微指令為0FFFE91H,表示ALU做“減運(yùn)算”,其結(jié)果直通到DBUS, 再存入A中,同時(shí)保存標(biāo)志位。T0狀態(tài)為取指令操作。CPL A:本指令為兩個(gè)狀態(tài)周期。在T1狀態(tài),微指令為0FFFE96H,有 效控制位為AEN和FEN,S2S1S0=110表示ALU做“取反”運(yùn)算,X2X1X0=100(二 進(jìn)制)表示,運(yùn)算器結(jié)果直通到DBUS,再存入A中

14、,并保存標(biāo)志位。T0狀態(tài) 為取指令操作。取出將要執(zhí)行的一條指令。JMP 00:本指令為兩個(gè)狀態(tài)周期。在T1狀態(tài),由上條取指令操作讀出的 指令碼為18H,存入IR寄存器后,IR3、IR2的值為11(二進(jìn)制),此為無(wú)條件跳 轉(zhuǎn)控制,指令碼存入uPC后,從uM讀出的微指令為0C6FFFFH,表示以PC為 地址從EM中讀出數(shù)據(jù)并送到數(shù)據(jù)總線DBUS上,因?yàn)镋LP有效,與IR3、IR2 組合產(chǎn)生PC的打入信號(hào),將DBUS上的數(shù)據(jù)存入PC中,有效控制位為EMRD、 PCOE、EMEN及ELP。T0狀態(tài)為取指令操作。取出將要執(zhí)行的一條指令。三、實(shí)驗(yàn)不足與改進(jìn):首先,本實(shí)驗(yàn)我用實(shí)驗(yàn)箱自帶的微指令集進(jìn)行調(diào)試與驗(yàn)

15、證,并成功了。但沒 能實(shí)現(xiàn)自編的微程序指令集。后來(lái)想利用所學(xué)的知識(shí)編了一個(gè)滿足要求的程序,并把它輸入源程序窗口, 然后就進(jìn)行匯編,結(jié)果下下來(lái)的軟件是英文版的,也沒有指導(dǎo)資料,無(wú)從下手, 程序也就無(wú)法實(shí)現(xiàn),另外受到期末備考的影響,時(shí)間精力有限。很遺憾最終還是 沒能在實(shí)際中運(yùn)行成功,僅停留在“理論”上。我堅(jiān)信如果在時(shí)間充裕、且有幾 個(gè)感興趣的同學(xué)組隊(duì)再進(jìn)行研究一番的話肯定會(huì)成功的!四、實(shí)驗(yàn)心得與體會(huì):初次接觸這樣的實(shí)驗(yàn),剛開始時(shí)覺得很茫然,不知道從何處著手,于是就把 計(jì)算機(jī)原理上有關(guān)設(shè)計(jì)方面的知識(shí)都細(xì)看了一遍。經(jīng)過(guò)老師的指點(diǎn)和同學(xué)的探討 后,我就從實(shí)驗(yàn)說(shuō)明書上和網(wǎng)上尋找與設(shè)計(jì)有關(guān)的東西來(lái)看并加以掌握。先從實(shí) 驗(yàn)箱和Max+Plus軟件了解實(shí)驗(yàn)儀器、軟件各方面的參數(shù)指標(biāo)、功能與作用,接 著進(jìn)一步來(lái)熟悉它的所有部件及24位控制位的作用,同時(shí)對(duì)模型機(jī)的基本尋址 方式及指令集進(jìn)行熟悉和掌握。然后就是對(duì)實(shí)驗(yàn)例子進(jìn)行仔細(xì)的分析和理解,熟 悉各類型指令的功能。通過(guò)這次課程設(shè)計(jì),我明白了很多東西都是要靠自己一點(diǎn)點(diǎn)的努力得來(lái)的, 而且在設(shè)計(jì)的過(guò)程中除了自己認(rèn)真鉆究

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論