計算機組成原理實驗之微程序控制器實驗


(實驗四 微程序控制器實驗)

課程 計算機組成原理實驗

實驗日期 2015 年 12 月  1 日      

 

一、實驗目的

1.掌握時序發生器的組成原理。

2.掌握微程序控制器的組成原理。

 

二、實驗內容

1.實驗電路

1)時序發生器電路

本實驗所用的時序電路見圖4.1。電路由一個500KHz晶振、2GAL22V10、一片74LS390組成,可產生兩級等間隔時序信號T1-T4W1-W3,其中一個W由一輪T1-T4組成,相當於一個微指令周期或硬連線控制器的一拍,而一輪W1-W3可以執行硬連線控制器的一條機器指令。另外,供數字邏輯實驗使用的時鍾由MF經一片74LS390分頻后產生。

 

4.1 時序信號發生器

 

(2)微程序控制器電路

 

4.2微程序控制器電路

微地址轉移邏輯表達式:

A5=D5=μA5;

A4=D4=C•P2+μA4;

A3=D3=IR7•P1+μA3;

A2=D2=IR6•P1+SWC•P0+μA2;

A1=D1=IR5•P1+SWB•P0+μA1;

A0=D0=IR4•P1+SWA•P0+μA0。

2.一些關鍵技術

(1) 微指令格式

 

圖4.3微指令格式

(2)指令功能與格式

41  指令功能與格式

名稱

助記符

功能

指令格式

IR7 IR6 IR5 IR4

IR3  IR2

IR1 IR0

加法

ADD Rd, Rs

Rd + Rs→Rd

0   0   0   0

Rs1 Rs0

Rd1 Rd0

減法

SUB Rd, Rs

Rd - Rs→Rd

0   0   0   1

Rs1 Rs0

Rd1 Rd0

邏輯與

AND Rd, Rs

Rd & Rs→Rd

0   0   1   0

Rs1 Rs0

Rd1 Rd0

存數

STA Rd, [Rs]

Rd→[Rs]

0   0   1   1

Rs1 Rs0

Rd1 Rd0

取數

LDA Rd, [Rs]

[Rs]→Rd

0   1   0   0

Rs1 Rs0

Rd1 Rd0

條件轉移

JC R3

若C=1, 則R3→PC

0   1   0   1

1    1

×   × 

停機

STP

暫停執行

0   1   1   0

×   ×

×   ×

輸出

OUT Rs

Rs→DBUS

0   1   1   1

Rs1 Rs0

×   ×

 

3)上述8條指令的微程序流程圖如圖4.4所示

       

圖4.4微程序流程圖

 

4)微程序代碼表

4-2  微程序代碼表

 

微指令 KT  RRF             WRF             RRM        WRM       PR

當前微地址 00   0C  1E  06  07  0B  1D  0D  0E  0A  02  03  09  04  05  08  0F

下一微地址    08   1E  06  07  1E  1D  0D  0E  1D  02  03  02  04  05  04  0F  10

P0        1    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .    .

P1        .    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .    1

P2        .    .   .    .    .   .    .    .    .    .   .    .    .   .    .   .   .

備用          .    .   .    .    .    .   .    .    .    .   .    .    .   .    .   .   .

TJ            .    1   .    .    1   1   .    1   1    .   1   .    1   .   1   .   .

LDIR         .    .   .    1    .   .    .    1    .    .   .   .    .   .    .   .   1

PC+1         .    .   .    .     .   .    .    .    .    .   .   .    .   .    .   .   .

LDPC#        .    1   .    .    .   1    .    .    .    .   .   .    .   .    .   1   

AR+1         .    .   .    .    .   .    .     .    .    .   .   1    .   .   1   .   .

LDAR#        .    1   .    .    .   1    .    .    .    1   .   .    1   .  .   .   .

LDDR1        .    .   .    .    .   .    .     .    .    .   .   .    .   .   .   .   .

LDDR2        .    .   .    .    .   .    .     .    .    .   .   .    .   .   .   .   .

LDRi          .    .   .    .    .   .    .     .    1   .   .   .    .   .    .   .   .

SW_BUS#      .    1   1   .   .    1   1    .    1    1   .   .    1   1   .   1   .

RS_BUS#      .    .   .    .    1   .    .    .    .    .    .   .    .    .   .   .   .

ALU_BUS#     .    .   .    .    .   .    .    .    .    .    .   .    .   .   .   .   .

RAM_BUS#     .    .   .   .    .   .    .    .    .    .    1   .    .   .   .   .   .

CER#          .    .   .   1    .   .    .    1    .    .    .   .    .   .   .   .   1

CEL#          .    .   1   .    .   .    1    .    .    .    1   .    .   1   .   .   .

LR/W#         .    .   0   .    .   .    0    .    .    .    1   .    .   0   .   .   .

Cn#           .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

M            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S0            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S1            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S2            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

S3            .    .   .    .    .   .    .    .    .    .     .   .    .   .   .   .   .

 

 

4-2  微程序代碼表()

 

微指令 ADD    SUB    AND    STA     LDA    JC      STP    OUT

當前微地址 10  18  11  19  12  1A  13  1B  14  1C  15  1F  16      17

下一微地址    18  0F  19  0F  1A  0F  1B  0F  1C  0F  0F  0F  0F     0F

P0        .   .    .    .   .    .    .   .    .    .    .   .    .       .

P1        .   .    .    .   .    .    .   .    .    .    .   .    .       .

P2        .   .    .    .   .    .    .   .    .    .    1   .    .       .

備用          .   .    .    .   .    .    .   .    .    .    .   .    .       .

TJ            .   .    .    .   .    .    .   .    .    .    .   .    1       1

LDIR         .    .   .    .   .    .     .   .    .    .    .   .    .       .

PC+1         .    1   .    1   .   1    .   1    .    1    1   .    1     1

LDPC#       .    .    .    .   .    .    .   .    .     .    .   1    .     .

AR+1        .    .    .    .   .    .    .   .    .     .    .   .    .      .

LDAR#           .    .    .   .    .    1   .    1    .    .   .    .      .

LDDR1       1   .    1    .   1    .   1   .    .    .    .   .    .       .

LDDR2       1   .    1    .   1    .    .   .    .    .    .   .    .       .

LDRi         .   1    .    1   .    1    .   .    .    1    .   .    .       .

SW_BUS#     .   .     .    .   .    .    .   .    .    .    .   .    .       .

RS_BUS#     .   .     .    .   .    .    1   .    1    .    .   1   .       1

ALU_BUS#   .   1     .    1   .    1   .   1    .    .    .   .    .       .

RAM_BUS#  .   .     .    .   .    .    .   .     .    1    .   .    .       .

CER#        .   .     .    .   .    .     .   .    .    .    .   .    .       .

CEL#        .   .     .    .   .    .    .   1     .    1    .   .    .       .

LR/W#          .     .    .   .    .    .   0     .    1    .   .    .       .

Cn#         .    .    .    1   .    .    .   .     .    .    .   .     .       .

M          .    0    .    0   .    1    .   0    .    .    .   .    .       .

S0          .    1    .    0   .    1    .   0    .    .    .   .    .       .

S1          .    0    .    1   .    1    .   0    .    .    .   .    .       .

S2          .    0    .    1   .    0    .   0    .    .    .   .    .       .

S3          .    1    .    0   .    1    .   0    .    .    .   .    .       .

 

 

注:后綴為#的信號都是低電平有效信號,為了在控存ROM中用“1”表示有效,這些信號在控制器中經過反相后送往數據通路。

 

3.實驗任務

1)按實驗要求,連接實驗台的電平開關K0K15、時鍾信號源和微程序控制器。連接完成后應仔細檢查一遍,然后才可以加上電源。

注意:本次實驗只做微程序控制器本身的實驗,故微程序控制器輸出的微命令信號與執行部件(數據通路)的連線不連接。

2)觀察時序信號

用雙蹤示波器觀測時序發生器的輸入、輸出信號:MF、T1-T4、W1-W3。比較相位關系,畫出其波形圖,並標注出測量所得的脈沖頻率(f)、周期(T)及脈寬(tp)。觀察時須將DB、DP開關置為0狀態。先按CLR#,然后按QD按鈕,則時序電路不停地在運行,直到按CLR# 按鈕為止。

3)熟悉微指令格式的定義,按此定義將圖4.4所示的全部微程序變換成二進制代碼,並列表登記。此表請在預習時完成。

4)控制台操作的功能由SWCSWBSWA三個二進制開關的狀態配合P0判斷來決定。用單拍(DP)方式執行控制台操作微程序,觀察判別字段和微地址指示燈的顯示,跟蹤微指令的執行情況,並與上表數據對照。

5)深刻理解0FH微指令的功能和P1測試的狀態條件(IR7IR4),用二進制開關設置IR7IR4的不同狀態,觀察ADDOUT八條機器指令對應微程序的微命令信號,特別是微地址轉移的實現,並與上面表格進行對照。

三、實驗環境

軟件: WIN XP、串口調試助手軟件

硬件:1.微機                                    1台

    2.TEC-5實驗系統                1台

    3.數字雙蹤示波器                        1台

    4.邏輯測試筆           1支 

    5.編程器                                  公用

 

四、實驗步驟和實驗結果

1.觀察時序信號波形

(1)接線表

時序電路

TJ

SKIP

固定電平

注意:接線表中的TJ是時序電路中的TJ,不是控制器中的TJ(該TJ由控制器產生,不能接輸入信號),切記勿接錯。

(2)時序信號的波形如下所示:

按順序依次是M,T1:

 

T2,T3:

 

 

T4,W1:

 

W2,W3:

 

 

2.控制台操作微指令編碼測試

接線表如下:

控制器

C

IR4

IR5

IR6

IR7

模擬開關

K0

K1

K2

K3

K4

 

時序電路

TJ

SKIP

固定電平

控制台微代碼在58C65的D0—D7輸出,D0是最低位,D7是最高位,CM0是最低字節,CM3是最高字節。D0—D7對應於58C65的引腳11、12、13、15、16、17、18、19。對於控存的輸出,有相應的32個指示燈指示。

(1)寫存儲器WRM工作模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 0、SWA = 1,實驗系統處於寫存儲器WRM工作模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址為00H,測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址為09H,測得的微碼是00H 08H 84H 04H。按一次QD按鈕,微地址為04H,測得的微碼是01H 08H 00H 05H。按一次QD按鈕,微地址為05H,測得的微碼是00H 00H 44H 04H。按一次QD按鈕,微地址為04H。由於微地址又返回04H,停止測試。

 

(2)讀存儲器RRM工作模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 1、SWA = 0,實驗系統處於讀存儲器RRM工作模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址為00H,測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址為0AH,測得的微碼是00H 08H 80H 02H。按一次QD按鈕,微地址為02H,測得的微碼是03H 40H 04H 03H。按一次QD按鈕,微地址為03H,測得的微碼是00H 00H 40H 02H。按一次QD按鈕,微地址為02H。由於微地址又返回02H,停止測試。

 

(3)寫寄存器WRF工作模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 0、SWB = 1、SWA = 1,實驗系統處於寫寄存器WRF工作模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址為00H, 測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址為0BH,測得的微碼是00H 08H A4H 1DH。按一次QD按鈕,微地址為1DH,測得的微碼是01H 08H 00H 0DH。按一次QD按鈕,微地址為0DH,測得的微碼是00H  80H  0CH 0EH。按一次QD按鈕,微地址為0EH,測得的微碼是00H 0CH 04H 1DH。按一次QD按鈕,微地址為1DH。由於微地址又返回1DH,停止測試。

 

(4)讀寄存器RRF工作模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC = 1、SWB = 0、SWA = 0,實驗系統處於讀寄存器工作模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址為00H, 測得的微碼是00H 00H 00H 48H。按一次QD按鈕,微地址為0CH,測得的微碼是00H 08H A4H 1EH。按一次QD按鈕,微地址為1EH,測得的微碼是01H 08H 00H 06H。按一次QD按鈕,微地址為06H,測得的微碼是00H 80H 08H 07H。按一次QD按鈕,微地址為07H,測得的微碼是00H 10H 04H 1EH。按一次QD按鈕,微地址為1EH。由於微地址又返回1EH,停止測試。

 

(5)實驗系統處於PR工作模式

置DP = 1,DB =0,使實驗系統處於單拍狀態。置SWC=0、SWB = 0、SWA = 0,實驗系統處於PR工作模式。按CLR#按鈕,使實驗系統處於初始狀態,微地址µA5-µA0為00H。按一次QD按鈕,微地址為08H,測得的微碼是00H 08H 20H 0FH。按一次QD按鈕,微地址為0FH,測得的微碼是00H 80H 08H 90H。由於以后的微碼與機器指令有關,停止測試。

 

  深刻理解0FH微指令的功能和P1測試的狀態條件(IR7-IR4),用二進制開關設置IR7-IR4的不同狀態,觀察ADD至OUT八條機器指令對應微程序的微命令信號,特別是微地址轉移的實現。

0FH微指令的功能是根據程序計數器PC從存儲器取指令,送往指令寄存器IR。0FH微指令的下一微指令地址是10H。不過,10H只是一個表面的下一微地址,由於該微指令中P1 = 1,因此實際的微指令地址的低4位要根據IR7—IR4確定,實際微地址為10H + IR7 IR6 IR5 IR4。

 

① 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 0,相當於ADD指令的操作碼。按一次QD按鈕,微地址變為10H,微代碼是(00H 03H 00H 18H)。按一次QD按鈕,微地址變為18H,微代碼是(90H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

② 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 0,K1(IR4)= 1,相當於SUB指令的操作碼。按一次QD按鈕,微地址變為11H,微代碼是(00H 03H 00H 19H)。按一次QD按鈕,微地址變為19H,微代碼是(04H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

③ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 0,相當於AND指令的操作碼。按一次QD按鈕,微地址變為12H,微代碼是(00H 03H 00H 1AH)。按一次QD按鈕,微地址變為1AH,微代碼是(B8H 24H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

④ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=0,K2(IR5)= 1,K1(IR4)= 1,相當於STA指令的操作碼。按一次QD按鈕,微地址變為13H,微代碼是(00H 11H 80H 1BH)。按一次QD按鈕,微地址變為1BH,微代碼是(01H 20H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

⑤ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 0,相當於LDA指令的操作碼。按一次QD按鈕,微地址變為14H,微代碼是(00H 10H 80H 1CH)。按一次QD按鈕,微地址變為1CH,微代碼是(00H 44H 10H 0FH)。按一次QD按鈕,微地址回到0FH。

⑥ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 0,K1(IR4)= 1,相當於JC指令的操作碼。按一次QD按鈕,微地址變為15H,微代碼是(00H 00H 11H 0FH)。令K0(C)=0。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。按一次QD按鈕,微地址變為15H。令K0(C)=1,按一次QD按鈕,微地址變為1FH,微代碼是(00H 10H 20H 0FH)。按一次QD按鈕,微地址回到0FH。

⑦ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 0,相當於STP指令的操作碼。按一次QD按鈕,微地址變為16H,微代碼是(00H 00H 14H 0FH)。按一次QD按鈕,微地址回到0FH。

⑧ 置DP = 1,DB =0,使實驗系統處於單拍狀態。選擇SWC = 0、SWB = 0、SWA = 0,按CLR#按鈕,使實驗系統處於初始狀態,微地址是00H。按一次QD按鈕,微地址變為08H,微代碼為00H 08H 20H 0FH。按一次QD按鈕,微地址變為0FH,微代碼為00H 80H 08H 90H。令K4(IR7) = 0,K3(IR6)=1,K2(IR5)= 1,K1(IR4)= 1,相當於OUT指令的操作碼。按一次QD按鈕,微地址變為17H,微代碼是(00H 10H 14H 0FH)。按一次QD按鈕,微地址回到0FH。

 

五、實驗結果與討論

(1)實驗任務(2)結果討論:

       實驗得出的波形圖如下所示:

 

結論:測量結果與理論值相符。

   (2)實驗任務中的(4)和(5)所測的控制存儲器代碼如下表:

微地址

CM3

CM2

CM1

CM0

00

00

00

00

48

01

00

00

00

00

02

03

40

04

03

03

00

00

40

02

04

01

08

00

05

05

00

00

44

04

06

00

80

08

07

07

00

10

04

1E

08

00

08

20

0F

09

00

08

84

04

0A

00

08

80

02

0B

00

08

A4

1D

0C

00

08

A4

1E

0D

00

80

0C

0E

0E

00

0C

04

1D

0F

00

80

08

90

10

00

03

00

18

11

00

03

00

19

12

00

03

00

1A

13

00

11

80

1B

14

00

10

80

1C

15

00

00

11

0F

16

00

00

14

0F

17

00

10

14

0F

18

90

24

10

0F

19

64

24

10

0F

1A

B8

24

10

0F

1B

01

20

10

0F

1C

03

44

10

0F

1D

01

08

00

0D

1E

01

08

00

06

1F

00

10

20

0F

 

結論:測量結果與理論值相符。

 

六、思考題

請問圖4.4微程序流程圖中的0BH微地址是如何產生的?

答:根據微指令產生后繼微地址的多路轉移方式的邏輯表達式:

  A5=D5=μA5;                      A4=D4=C•P2+μA4;

  A3=D3=IR7•P1+μA3;              A2=D2=IR6•P1+SWC•P0+μA2;

  A1=D1=IR5•P1+SWB•P0+μA1;   A0=D0=IR4•P1+SWA•P0+μA0。

  而由此時的流程圖可知,WRF(011)指令,SWC、SEB、SWA分別為0、1、1。

且P1=0,P0=1。

   故A5=0,A4=0,A3=1,A2=0,A1=1,A0=1。於是,產生001011地址,即0BH微地址。

 

七、總結

(一) 本次實驗按時按量完成。

(二) 通過本次實驗我掌握時序發生器的組成原理和微程序控制器的組成原理。

(三) 在觀察時序信號波形時,如果出現紅色的波形,則按MATH按鈕即可消除。如果出現紅色的橫條或豎條線,則通過顯示按鈕來調節。

(四) 向AR送地址時地址指示燈AR不隨SW7-SW0數據的變化而改變。主要原因是LDAR#接觸不良.同理向PC送地址時PC地址指示燈不隨SW7-SW0數據的變化而改變.主要原因是LDPC#接觸不良。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM