2023年12月30日發(fā)(作者:植物媽媽有辦法)

實驗一 運算器組成實驗
一、實驗?zāi)康?
1.熟悉雙端口通用寄存器堆(組)的讀寫操作。
2.熟悉簡單運算器的數(shù)據(jù)傳送通路。
3.驗證運算器74LS181的算術(shù)邏輯功能。
4.按給定數(shù)據(jù),完成指定的算術(shù)、邏輯運算。
二、實驗原理
上圖是本實驗所用的運算器數(shù)據(jù)通路圖。參與運算的數(shù)據(jù)首先通過實驗臺操作板上的八個二進(jìn)制數(shù)據(jù)開關(guān)SW7-SW0來設(shè)置,然后輸入到雙端口通用寄存器堆RF中。
RF由一個ispLSI1016實現(xiàn),功能上相當(dāng)于四個8位通用寄存器,用于保存參與運算的數(shù)據(jù),運算后的結(jié)果也要送到RF中保存。雙端口寄存器堆模塊的控制信號中,RS1、RS0用于選擇從B端口(右端口)讀出的通用寄存器,RD1、RD0用于選取從A端口(左端口)讀出的通用寄存器。而WR1、WR0用于選擇寫入的通用寄存器。LDRi是寫入控制信號,當(dāng)LDRi=1時,數(shù)據(jù)總線DBUS上的數(shù)據(jù)在T3寫入由WR1、WR0指定的通用寄存器。RF的A、B端口分別與操作數(shù)暫存器DR1、DR2相連:另外,RF的B端口通過一個三態(tài)門連接到數(shù)據(jù)總線DBUS上,因而RF中的數(shù)據(jù)可以直接通過B端口送到DBUS上。
DR1和DR2各由1片74LS273構(gòu)成,用于暫存參與運算的數(shù)據(jù)。DR1接ALU的A輸入端口,DR2接ALU的B端口。ALU由兩片74LS181構(gòu)成,ALU的輸出通過一個三態(tài)門(74LS244)發(fā)送到數(shù)據(jù)總線DBUS上。
圖中尾巴上帶粗短線標(biāo)記的信號都是控制信號,其中S3,S2,Sl,S0,M,Cn#,LDDR2,LDDRl, ALU-BUS#,SW-BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0等是電位信號,用電平開關(guān)K0—Kl5來模擬。T2、T3是脈沖信號,印制板上已連接到實驗臺的時序電路上。#為低電平有效。K0—K15是一組用于模擬各控制電平信號的開關(guān),開關(guān)向上時為1,開關(guān)向下時為0,每個開關(guān)無固定用途,可根據(jù)實驗具體情況選用。
實驗中進(jìn)行單拍操作,每次只產(chǎn)生一組Tl,T2,T3,T4脈沖,需將實驗臺上的DP,DB開關(guān)進(jìn)行正確設(shè)置。將DP開關(guān)置l,將DB開關(guān)置0,每按一次QD按鈕,則順序產(chǎn)生Tl、T2、T3、T4各一個單脈沖。
三、實驗任務(wù)
1.按圖要求,將運算器模塊與實驗臺操作板上的線路進(jìn)行連接。
置DP=1,DB=0,編程開關(guān)撥到正常位置.
數(shù)據(jù)通路
電平開關(guān)
WR0
K0
WR1
K1
RS0
K2
RS1
K3
SW_BUS# RS_BUS#
K4 K5
LDRi
K6
2.用開關(guān)SW7-SW0向通用寄存器堆RF內(nèi)的R0-R3寄存器置數(shù)34H、21H、52H、65H。然后讀出R0-R3的內(nèi)容,在數(shù)據(jù)總線DBUS上顯示出來。
3.令DR1=55H、DR2=0AAH、Cn#=1,驗證ALU的正邏輯算術(shù)、邏輯運算功能。
四、實驗要求
1.做好實驗預(yù)習(xí)。掌握運算器的數(shù)據(jù)傳送通路和ALU的功能特性,并熟悉本實驗中所用的控制臺開關(guān)的作用和使用方法。
2.認(rèn)真細(xì)致完成實驗,填寫實驗一表1、實驗一表2。
3.寫出實驗報告,分析實驗結(jié)果并簡述心得體會。
實驗二 雙端口存儲器原理實驗
一 、實驗?zāi)康?
1.了解雙端口靜態(tài)隨機存儲器IDT7132的工作特性及使用方法。
2.了解半導(dǎo)體存儲器怎樣存儲和讀出數(shù)據(jù)。
3.了解雙端口存儲器怎樣并行讀寫,并分析沖突產(chǎn)生的情況。
二、實驗原理
圖示雙端口存儲器的實驗電路圖。這里使用了一片IDT7132(2048×8位),兩個端口的地址輸入A8—Al0引腳接地,因此實際使用存儲容量為256字節(jié)。左端口的數(shù)據(jù)部分連接數(shù)據(jù)總線DBUS7-DBUS0,右端口的數(shù)據(jù)部分連接指令總線INS7-INS0。
存儲器IDT7132有6個控制引腳:CEL#、LR/W#、OEL#、CER#、RR/W#、OER#。CEL#、LR/W#、OEL#控制左端口讀、寫操作;CER#、RR/W#、OER#控制右端口讀、寫操作。CEL#為左端口選擇引腳,低電平有效。當(dāng)CER#=1時,禁止左端口讀、寫操作;當(dāng)CER#=0時,允許左端口讀、寫操作。當(dāng)LR/W#為高時,左端口進(jìn)行
讀操作;當(dāng)LR/W#為低時,左端口進(jìn)行寫操作。當(dāng)OER#為低時,將左端口讀出的數(shù)據(jù)放到數(shù)據(jù)總線DBUS上;當(dāng)OER#為高時,禁止左端口讀出的數(shù)據(jù)放到數(shù)據(jù)總線DBUS上。CER#、RR/W#、OER#控制右端口讀、寫操作的方式與CEL#、LR/W#、OER#控制左端口讀、寫操作的方式類似,當(dāng)CEL#=0且LR/W#=l時,左端口進(jìn)行讀操作,同時將讀出的數(shù)據(jù)放到數(shù)據(jù)總線DBUS上(以后將OEL#稱為RAM_BUS#)。
有兩點需要說明:(1)右端口讀出的數(shù)據(jù)(更確切的說法是指令)放到指令總線IBUS上而不是數(shù)據(jù)總線DBUS上。(2)所有數(shù)據(jù)/指令的寫入都使用左端口,右端口作為指令端口處理成一個只讀端口(實驗臺上OER#已固定接地,RR/W#固定接高電平)。
存儲器左端口的地址寄存器AR和右端口的地址寄存器PC都使用2片74LS163,具有地址遞增的功能。同時,PC在以后的實驗當(dāng)中也起到程序計數(shù)器的作用。左右端口的數(shù)據(jù)和左右端口的地址都有特定的顯示燈顯示,存儲器得知和寫入數(shù)據(jù)都由實驗臺操作板上的二進(jìn)制開關(guān)分時給出。
當(dāng)LDAR#=0時,AR在T2時從DBUS接收來自SW7-SW0的地址;當(dāng)AR+1=1時,在T2存儲器地址加1。LDAR#和AR+1不能同時有效。在下一個時鐘周期,令CEL#=0、LR/W#=0,則在T2的上升沿開始進(jìn)行寫操作,將SW7-SW0設(shè)置的數(shù)據(jù)經(jīng)DBUS寫入存儲器。
三、實驗任務(wù)
1.按電路圖要求,將有關(guān)控制信號和二進(jìn)制開關(guān)對應(yīng)接好,反復(fù)檢查后接通電源。
編程開關(guān)撥到正常位置;置DP=1,DB=0;AR+1和PC+1兩個信號接地。
數(shù)據(jù)通路 LDAR#
電平開關(guān) K0
LDPC#
K1
CEL#
K2
LR/W# RAM_BUS# CER#
K3 K4 K5
SW_BUS#
K6
2.將二進(jìn)制數(shù)碼開關(guān)SW7-SW0(SW0為最低位)設(shè)置為00H,將其他作為存儲器地址置入AR;然后將二進(jìn)制開關(guān)的00H作為數(shù)據(jù)寫入RAM中,用這個方法向存儲器的10H、20H、30H、40H單元依次寫入10H、20H、30H、40H。
3.使用存儲器的左端口,依次將第2步存入的5個數(shù)據(jù)讀出,觀察各單元中存入的數(shù)據(jù)是否正確。記錄數(shù)據(jù)。注意:禁止兩個或兩個以上的數(shù)據(jù)源同時向數(shù)據(jù)總線上發(fā)送數(shù)據(jù)!在本實驗中,當(dāng)存儲器進(jìn)行讀出操作時,務(wù)必將SW_BUS#的三態(tài)門關(guān)閉。而當(dāng)向AR送入數(shù)據(jù)時,雙端口存儲器也不能被選中。
4.通過存儲器的右端口,將第2步存入的5個數(shù)據(jù)讀出,觀察結(jié)果是否與第3步結(jié)果相同。記錄數(shù)據(jù)。
5.雙端口存儲器的并行讀寫和訪問沖突
將CEL#、CER#同時置為0,使存儲器的左右端口同時被選中。當(dāng)AR和PC的地址不相同時,由于都是讀操作,也不會沖突。如果左右端口地址相同,且一個進(jìn)行讀操作,一個進(jìn)行寫操作,就會發(fā)生沖突。檢測沖突的方法:觀察兩個端口的"忙"信號輸出指示燈BUSYL#和BUSYR#。BUSYL#/BUSYR#燈亮(為0)時,不一定發(fā)生沖突,但發(fā)生沖突時,BUSYL#/BUSYR#必定亮。
四、實驗要求
l.做好實驗預(yù)習(xí),掌握IDT7132雙端口存儲器的功能特性和使用方法。
2.完成實驗任務(wù)2、3、4,分別填寫實驗二表1、實驗二表2、實驗二表3。
3.試驗雙端口存儲器的并行讀寫和訪問沖突,并分析原理。
4.寫出實驗報告,分析實驗結(jié)果并簡述心得體會。
實驗三 數(shù)據(jù)通路組成實驗(選作)
一、實驗?zāi)康?
1.進(jìn)一步熟悉計算機的數(shù)據(jù)通路
2.將雙端口通用寄存器堆和雙端口存儲器模塊連接,構(gòu)成新的數(shù)據(jù)通路
3.掌握數(shù)字邏輯電路中的一般規(guī)律,以及排除故障的一般原則和方法
4.鍛煉分析問題和解決問題的能力,在出線故障的情況下,獨立分析故障現(xiàn)象,并排除故障
二、實驗原理
圖示出了數(shù)據(jù)通路實驗電路圖,它是將雙端口存儲器實驗?zāi)K和一個雙端口通用寄存器堆模塊(RF)連接在一起形成的。雙端口存儲器的指令端口不參與本次實驗。通用寄存器堆連接運算器模塊,本實驗涉及其中的操作數(shù)寄存器DR1。
由于雙端口存儲器RAM是三態(tài)輸出,因而可以將它直接連接到數(shù)據(jù)總線DBUS上。此外,DBUS上還連接著雙端口通用寄存器堆。這樣,寫入存儲器的數(shù)據(jù)可由通用寄存器提供,而從存儲器RAM讀出的數(shù)據(jù)也可送到通用寄存器堆保存。
三、實驗任務(wù)
1.將實驗電路與控制臺的有關(guān)信號進(jìn)行連接。
數(shù)據(jù)通路 RS0 RS1 RD0 RD1 WR0 WR1 LDRi LDDR1
模擬開關(guān) K0 K1 K2 K3 K4 K5 K6 K7
數(shù)據(jù)通路 RS_BUS# SW_BUS# ALU_BUS# RAM_BUS# LR/W# CEL# LDAR#
模擬開關(guān) K8 K9 K10 K11 K12 K13 K14
數(shù)據(jù)通路 AR+1 CER# Cn# M S0 S1 S2 S3
模擬開關(guān) 地 VCC VCC 地 地 地 地 地
2.用8位數(shù)據(jù)開關(guān)SW7-SW0向RF中的四個通用寄存器分別置入以下數(shù)據(jù):R0=OFH,R1=0F0H,R2=55H,R3=0AAH。
3.用8位數(shù)據(jù)開關(guān)向AR送入地址0FH,然后將R0中的數(shù)據(jù)0FH寫入雙端口存儲器中。用同樣的方法,依次將R1、R2、R3中的數(shù)據(jù)分別置入RAM的0F0H、55H、0AAH單元。
4.分別將RAM的0AAH單元數(shù)據(jù)寫入R0,55H單元數(shù)據(jù)寫入R1,0F0H單元數(shù)據(jù)寫入R2,0FH單元數(shù)據(jù)寫入R3。然后將R0-R3中的數(shù)據(jù)讀出,驗證數(shù)據(jù)的正確性,并記錄數(shù)據(jù)。
5.校驗結(jié)果。
四、實驗要求
1.做好實驗預(yù)習(xí)和準(zhǔn)備工作,掌握實驗電路的數(shù)據(jù)通路特點和通用寄存器堆的功能特性。
2.完成實驗任務(wù),填寫實驗三表1、2、3。
3.寫出實驗報告,分析實驗結(jié)果并簡述心得體會。
實驗四 常規(guī)型微程序控制器組成實驗
一、實驗?zāi)康?
1.掌握時序發(fā)生器的組成原理
2.掌握微程序控制器的組成原理
二、實驗原理
1.時序發(fā)生器
TEC-5計算機組成原理實驗系統(tǒng)的時序電路如圖所示。電路采用500K晶振、2片GAL22VlO、一片74LS390(分頻器),可產(chǎn)生兩級等間隔時序信號Tl—T4和Wl—W3,其中一個W由一輪Tl—T4循環(huán)組成,它相當(dāng)于一個微指令周期或硬聯(lián)線控制器的一拍,而一輪Wl—W3循環(huán)可供硬聯(lián)線控制器執(zhí)行一條機器指令。
本次實驗不涉及硬聯(lián)線控制器,因此時序產(chǎn)生器中的相關(guān)內(nèi)容也可根據(jù)需要放到硬聯(lián)線控制器實驗中進(jìn)行。
微程序控制器只使用時序信號TI—T4,產(chǎn)生T信號的功能集成在左邊GAL22VlO芯片中,另外它還產(chǎn)生節(jié)拍信號W1、W2、W3的控制時鐘CLK1。
硬聯(lián)線控制器只使用時序信號Wl—W3,產(chǎn)生W信號的功能集成在右邊GAL22VlO芯片中。
左邊GAL22VlO芯片的輸入信號MF是實驗臺上晶體振蕩器的輸出,頻率為500KHz。Tl至T4的脈沖寬度為2μS。CLR#為復(fù)位信號,低有效。實驗臺處于任何狀態(tài)下令CLR#=0,都會使時序發(fā)生器和微程序控制器復(fù)位(回到初始狀態(tài)),復(fù)位后時序發(fā)生器停在T4、W3狀態(tài),微程序地址為000000B。建議每次實驗儀加電后,先用CLR#復(fù)位一次。控制臺上有一個CLR#按鈕,實驗臺印制板上已連好控制臺CLR#到時序電路的連線。
TJ(停機)是控制器的輸出信號之一。連續(xù)運行時,如果控制信號TJ=l,會使機器停機,停止發(fā)送時序脈沖Tl—T4、Wl—W3,時序停在T4。注意區(qū)分在實驗臺上時序信號發(fā)生器的輸入信號TJ和控制存儲器產(chǎn)生的TJ信號。QD(啟動)是來自啟動按鈕QD的脈沖信號,在GAL22VlO芯片中,對QD用MF進(jìn)行了同步,產(chǎn)生QDl和QD2。ACT表示QD1上升沿,表達(dá)式是QD1&!QD2,脈沖寬度為2μS。QDR是運行標(biāo)志,QD信號使其為l,CLR#信號將其置O。DP(單拍)是來自控制臺的DP開關(guān)信號,當(dāng)DP=l時,機器處于單拍運行狀態(tài),按一次啟動按鈕QD,只發(fā)送一條微指令周期的時序信號就停機。利用單拍方式,每次只執(zhí)行一條微指令,因而可以觀察微指令代碼和當(dāng)前微指令的執(zhí)行結(jié)果。
DB、SKIP、CLK1信號以及Wl—W3時序信號都是針對硬聯(lián)線控制器的。Wl—W3是節(jié)拍信號,硬聯(lián)線控制器執(zhí)行一條機器指令需要一組Wl—W3信號。DB(單步)信號就是每次發(fā)送一組W信號后停機,執(zhí)行某些機器指令不需要完整的一組W信號,SKIP信號就是用來跳過本指令剩余的W節(jié)拍信號的。
2.數(shù)據(jù)通路
微程序控制器是根據(jù)數(shù)據(jù)通路和指令系統(tǒng)來設(shè)計的。這里采用的數(shù)據(jù)通路綜合前面各實驗?zāi)K。
3.微指令格式
根據(jù)給定的8條機器指令功能和數(shù)據(jù)通路總體圖的控制信號,采用的微指令格式如上圖。微指令字長31位,其中順序控制部分9位;判別字段3位,后繼微地址6位。操作控制字段22位,各位進(jìn)行直接控制。
對應(yīng)微指令格式,微程序控制器的組成如下圖:
控制器采用4片E2PROM(HN58C65)組成,HN58C65是8K*8位的,地址輸入端有13位(A12-A0),實驗中只用到A5-A0,所以A12-A6接地,實際的使用空間為64字節(jié)。
微地址寄存器μAR共6位,用一片8D觸發(fā)器74LS174組成,帶有異步清零端。
兩級與,或門構(gòu)成微地址轉(zhuǎn)移邏輯,用于產(chǎn)生下一微指令地址。
在每一個T1的上升沿,新的微指令地址打入微地址寄存器中,控制存儲器隨即輸出該條微指令的控制信號。微地址轉(zhuǎn)移邏輯生成下一微地址,等到下一個T1上升沿,將其打入微地址寄存器中。
微地址轉(zhuǎn)移邏輯的多個輸入信號中,SWC、SWB、SWA是控制臺指令的定義開關(guān),他們用來決定控制臺指令微程序的分支。C是進(jìn)位信號,IR7-IR4是機器指令的操作碼字段,根據(jù)他們的值來控制微程序轉(zhuǎn)向某個特定的分支。
4.機器指令與微程序
為簡單明了,本實驗儀使用8條機器指令,均為單字長(8位)指令。指令功能及格式如下表所示。指令的高4位(IR7-IR4)是操作碼,提供給微程序控制器,低4位提供給數(shù)據(jù)通路。
上述8條指令的微程序流程設(shè)計如圖所示。每條微指令可按前述的微指令格式轉(zhuǎn)換成二進(jìn)制代碼,然后寫入控存中。
控制臺指令和機器指令微指令代碼表如下:
為了向RAM和寄存儲器堆中裝入程序和數(shù)據(jù),檢查寫入是否正確,并能啟動程序執(zhí)行,還設(shè)計了以下五個控制臺操作微程序:(DP=0,DB=0)
啟動程序(PR):按下復(fù)位按鈕CLR#后,置SWC=O,SWB=O,SWA=0,用數(shù)據(jù)開關(guān)SW7—SWO設(shè)置內(nèi)存中程序的首地址,按QD按鈕后,啟動程序運行。
寫存儲器(WRM):按下復(fù)位按鈕CLR#后,微地址寄存器狀態(tài)為全零。此時置SWC=O,SWB=0,SWA=1。①在SW7-SW0中置好存儲器地址,按QD啟動按鈕將此地址打入AR。②在SW7-SW0中置好數(shù)據(jù),按QD啟動按鈕將此數(shù)據(jù)寫入AR指定的存儲器單元,這時AR+1。重復(fù)②,直到按復(fù)位鍵CLR#為止。這樣就實現(xiàn)了對RAM的連續(xù)進(jìn)行手動寫入。
讀存儲器 (RRM):按下復(fù)位按鈕CLR#后,置SWC=O,SWB=1,SWA=0。①在SW7-SW0中置好存儲器地址,按QD啟動按鈕將此地址打入AR,RAM中此地址單元的內(nèi)容讀至DBUS顯示。②按QD按鈕,這時AR+1,RAM中新地址單元的內(nèi)容讀至DBUS顯示。重復(fù)②,直到按復(fù)位鍵CLR#為止。這樣就實現(xiàn)了對RAM的連續(xù)讀出顯示。
寄存器寫操作(WRF):按下復(fù)位按鈕CLR樣后,置SWC=O,SWB=l,SWA=l。①在SW7-SW0中置好存儲器地址,按QD啟動按鈕將此地址打入AR寄存器和PC計數(shù)器。②在SW1、SW0置好寄存器選擇信號WR1、WR0,按QD啟動按鈕,通過雙端口存儲器的右端口將WR1、WR0(即SW1、SW0)送到指令寄存器IR的低2
位。③在SW7-SW0中置好要寫入寄存器的數(shù)據(jù),按QD啟動按鈕將此數(shù)據(jù)寫入由WR1、WR0指定的寄存器。重復(fù)②③,直到按復(fù)位鍵CLR#為止。
寄存器讀操作(RRF):按下復(fù)位按鈕CLR#后,置SWC=l,SWB=O,SWA=O。①在SW7-SW0中置好存儲器地址,按QD啟動按鈕將此地址打入AR寄存器和PC計數(shù)器。②在SW3、SW2置好寄存器選擇信號RS1、RS0,按QD啟動按鈕,通過雙端口存儲器的右端口將RS1、RS0(即SW3、SW2)送到指令寄存器IR的第3、2位。RS1、RS0選中的寄存器數(shù)據(jù)讀出到DBUS上顯示出來。重復(fù)②,直到按復(fù)位鍵CLR#為止。
三、實驗任務(wù)
1.按實驗要求,連接實驗臺的電平開關(guān)K0-K15,時鐘信號源和微程序控制器。連接完成后應(yīng)仔細(xì)檢查一遍,然后才可以加上電源。
控制器
模擬開關(guān)
C
K0
IR4
K1
IR5
K2
IR6
K3
IR7
K4
時序電路的TJ、SKIP為地(GND)。TJ是時序電路中的TJ,不是控制器中的TJ(該TJ由控制器產(chǎn)生,不能接輸入信號),千萬不要接錯。
注意:本次實驗只做微程序控制器本身的實驗,故微程序控制器輸出的微命令信號與執(zhí)行部件(數(shù)據(jù)通路)的連線不連接。
2.熟悉微指令格式的定義,按此定義將微程序流程圖所示的全部微程序變換成二進(jìn)制代碼,并列表登記。此表請在預(yù)習(xí)時完成。
3.控制臺操作的功能由SWC、SWB、SWA三個二進(jìn)制開關(guān)的狀態(tài)配合P0判斷來決定。用單拍(DP)方式執(zhí)行控制臺操作微程序,觀察判別字段和微地址指示燈的顯示,跟蹤微指令的執(zhí)行情況,并與上表數(shù)據(jù)對照。
4.深刻理解0FH微指令的功能和P1測試狀態(tài)條件(IR7-IR4),用二進(jìn)制開關(guān)設(shè)置IR7-IR4的不同狀態(tài),觀察ADD至OUT八條機器指令對應(yīng)微程序的微命令信號,特別是微地址轉(zhuǎn)移的實現(xiàn),并與上面表格進(jìn)行對照。
四 、實驗要求
l.做好實驗預(yù)習(xí),掌握微程序控制器和時序產(chǎn)生器的工作原理。在實驗進(jìn)行前填好實驗四表1,并列好所有表格數(shù)據(jù)和理論分析值。
2.根據(jù)實驗任務(wù)所提的要求,實驗填寫好實驗四表2、實驗四表3。
3.寫出實驗報告,分析實驗結(jié)果并簡述心得體會。
實驗五 CPU組成與機器指令執(zhí)行周期實驗
一、實驗?zāi)康?
1.將微程序控制器同執(zhí)行部件(整個數(shù)據(jù)通路)聯(lián)機,組成一臺模型計算機
2.用微程序控制器控制模型計算機的數(shù)據(jù)通路
3.通過TEC-5執(zhí)行由8條機器指令組成的簡單程序,掌握機器指令與微指令的關(guān)系,牢固建立計算機的整機觀念
二、實驗原理
本次實驗用到前面四個實驗中的所有電路,包括運算器、存儲器、通用寄存器堆、程序計數(shù)器、指令寄存器、微程序控制器等,將幾個模塊組合成為一臺簡單計算機。因此,在基本實驗中,這是最復(fù)雜的一個實驗,也是最能得到收獲的一個實驗。
在前面的實驗中,實驗者本身作為“控制器”,完成數(shù)據(jù)通路的控制。而在本次實驗中,數(shù)據(jù)通路的控制將由微程序控制器來完成。cpu從內(nèi)存取出一條機器指令到執(zhí)行指令結(jié)束的一個機器指令周期,是由微指令組成的序列來完成的,即一條機器指令對應(yīng)一個微程序。
三、實驗任務(wù)
1.對下面機器指令組成的簡單程序進(jìn)行譯碼。將程序按機器指令格式手工匯編成二進(jìn)制機器代碼,填寫實驗五表1,此項任務(wù)請在預(yù)習(xí)時完成。
ADD R1,R0
JC R3
STA R1,[R2]
LDA R2,[R2]
AND R2,R0
SUB R2,R3
OUT R2
STP
2.參考前面實驗電路完成連線,工作量大概是:控制臺、時序部件、數(shù)據(jù)通路和微程序控制器之間的連線??刂破魇强刂撇考?,數(shù)據(jù)通路是執(zhí)行部件,時序發(fā)生器是時序部件。注意通用寄存器堆RF的RD1、RD0、RS1、RS0、WR1、WR0與IR3-IR0間的連線。
控制器、時序部件和數(shù)據(jù)通路之間的連接QD, DP,DB,CLR#TJT1~T4T1~T4SW_BUS#,LDDR1,CEL#......IR7—IR4,C
接線表:
控制器
數(shù)據(jù)通路
控制器
數(shù)據(jù)通路
控制器
數(shù)據(jù)通路
控制器
數(shù)據(jù)通路
數(shù)據(jù)通路
數(shù)據(jù)通路
LDIR PC+1 LDPC# AR+1 LADR# LDDR1 LDDR2 LDRi
LDIR PC+1 LDPC# AR+1 LADR# LDDR1 LDDR2 LDRi
SW_BUS# Rs_BUS# ALU_BUS# RAM_BUS# CER# CEL#
SW_BUS# Rs_BUS# ALU_BUS# RAM_BUS# CER# CEL#
LR/W# Cn# M S0 S1 S2 S3
LR/W# Cn# M S0 S1 S2 S3
進(jìn)位C IR7 IR6 IR5 IR4
進(jìn)位C IR7 IR6 IR5 IR4
IR3 IR2 IR1 IR0 IR1 IR0
RS1 RS0 RD1 RD0 WR1 WR0
再把控制器的TJ連接聯(lián)接時序電路的TJ,一共接線33條。
接好線后,將編程開關(guān)撥到"正常位置",合上電源,按CLR#按鈕,使TEC-5實驗系統(tǒng)處于初始狀態(tài)。
3.將任務(wù)1中的程序代碼用控制臺指令存入內(nèi)存中,并根據(jù)程序的需要,用數(shù)碼開關(guān)SW7-SW0設(shè)置通用寄存器的數(shù)據(jù)。注意:由于設(shè)置通用寄存器時會破壞存儲單元的數(shù)據(jù),因此應(yīng)先設(shè)置寄存器中的數(shù)據(jù),在設(shè)置存儲器中的程序和數(shù)據(jù)。要求使用兩組寄存器數(shù)據(jù),一組寄存器數(shù)據(jù)在執(zhí)行ADD R1,R0指令時產(chǎn)生進(jìn)位(R0=86H、R1=88H、R2=10H、R3=07H,(10H)=55H),一組寄存器數(shù)據(jù)在執(zhí)行ADD
R1,R0指令時不產(chǎn)生進(jìn)位(R0=35H、R1=43H、R2=10H、R3=07H,(10H)=55H),以觀察同一程序的不同執(zhí)行流程。
4.用單拍(DP)方式執(zhí)行一遍程序,記錄最后得到的四個寄存器的數(shù)據(jù),以及由STA指令存入RAM中的數(shù)據(jù),與理論分析值比較。執(zhí)行時注意觀察各個指示燈的顯示,以跟蹤程序執(zhí)行的詳細(xì)過程(可觀察到每一條微指令的執(zhí)行過程)。
5.用連續(xù)方式再執(zhí)行程序。這種情況相當(dāng)于計算機正常的工作。程序執(zhí)行到STP指令后自動停機。讀出寄存器中的運算結(jié)果,與理論值比較。
四、實驗要求
1.務(wù)必做好實驗預(yù)習(xí)。根據(jù)實驗任務(wù)所提要求,實驗進(jìn)行前先列好必要的表格、數(shù)據(jù)和理論分析值,以便與實驗結(jié)果相比較。并根據(jù)任務(wù)1要求填寫實驗五表1。
2.
運用控制臺命令寫寄存器WRF、讀寄存器RRF、寫存儲器WRM、讀存儲器RRM完成實驗任務(wù)3(詳細(xì)步驟見實驗四說明),并在此基礎(chǔ)上單步、連續(xù)運行程序完成實驗任務(wù)4、5,按要求填寫實驗五表2、3。
3.寫出實驗報告,分析實驗結(jié)果并簡述心得體會。
實驗一表1:將34H、21H、52H、65H分別寫入通用寄存器R0-R3;讀出R0-R3的內(nèi)容,在DBUS上顯示出來(DP=1,DB=0)
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序 SW7-
號 SW0
WR0 WR1 RS0 RS1
SW_
BUS#
RS_
BUS#
LDRi
QD 功能
K0
1
2
3
4
34H
0
K1
0
K2
×
K3
×
K4
0
K5
1
K6
1
√
34H→R0 (R0=34H)
讀出通用寄存器組RF的內(nèi)容(R0-R3)
5
6
7
8
×
×
×
0
0
1
0
0
×
DBUS指示燈顯示R0=
實驗一表2:通過R0向DR2寫入0AAH,通過R1向DR1寫入55H,驗證運算器的算術(shù)運算和邏輯運算功能(DP=1,DB=0)
(1)向R0寫入0AAH,向R1寫入55H
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序 SW7-
號 SW0
WR0 WR1
SW_
BUS#
ALU_
BUS#
LDRi
QD 功能
1
2
(2)將R0寫入DR2,將R1寫入DR1
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序
號
RD0 RD1 RS0 RS1 LDR1 LDR2 LDRi
QD 功能
1
(3)驗證運算器的算術(shù)運算和邏輯運算功能
邏輯運算:LDRi= 1、LDR1=0、LDR2=0、ALU_BUS#=0、SW_BUS#=1
算術(shù)運算:LDRi= 1、LDR1=1、LDR2=1、ALU_BUS#=0、SW_BUS#=1
工作方式輸入選擇
S3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
S2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
S0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
邏輯運算(M=H,Cn#=1)
運算類型
運算結(jié)果
進(jìn)位C
算術(shù)運算(M=L,Cn#=1)
運算類型
運算結(jié)果
進(jìn)位C
實驗二表1:向存儲器的00H、10H、20H、30H和40H單元依次寫入00H、10H、20H、30H和40H (DP=1,DB=0)
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序 SW7-
號 SW0
LDAR# LDPC# CEL# LR/W#
RAM_
BUS#
CER#
SW_
BUS#
QD 功能
1
2
3
4
5
6
7
8
9
10
00H→AR
00H→(00H)
實驗二表2:利用左端口依次將之前寫入的5個數(shù)據(jù)讀出
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序 SW7-
號 SW0
LDAR# LDPC# CEL# LR/W#
RAM_
BUS#
CER#
SW_
BUS#
QD 功能
1
2
3
4
5
6
7
8
9
10
00H→AR
DBUS=00H
實驗二表3:利用右端口依次將之前寫入的5個數(shù)據(jù)讀出
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序 SW7-
號 SW0
LDAR# LDPC# CEL# LR/W#
RAM_
BUS#
CER#
SW_
BUS#
QD 功能
1
2
3
4
5
6
7
8
9
10
00H→PC
IBUS=00H
實驗三表1:將0FH、0F0H、55H、0AAH分別寫入通用寄存器R0、R1、R2、R3
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序
SW
號
RS_
RS0 RS1 RD0 RD1 WR0 WR1 LDRi LDDR1
BUS# BUS# BUS# BUS#
SW_ ALU_ RAM _
LR/W# CEL# LDAR#
QD 功能
1
2
3
4
0FH→R0
驗證數(shù)據(jù)是否寫入RF中(可在數(shù)據(jù)總線DBUS上顯示)
5
6
7
8
R0=
R1=
R2=
R3=
實驗三表2:將寄存器R0、R1、R2、R3的數(shù)據(jù)通過ALU讀出后,寫入RAM的0FH、F0H、55H、AAH地址單元
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序
SW
號
RS_
RS0 RS1 RD0 RD1 WR0 WR1 LDRi LDDR1
BUS# BUS# BUS# BUS#
SW_ ALU_ RAM _
LR/W# CEL# LDAR#
QD 功能
1
2
3
4
5
6
7
8
9
10
11
12
0FH→AR
0FH→DBUS
0FH→(0FH)
實驗三表3:將存儲器的AAH、55H、F0H、0FH地址單元的數(shù)據(jù)傳送到寄存器R0、R1、R2、R3并驗證結(jié)果
數(shù)據(jù)通路信號與電平信號開關(guān)的連接
序
SW
號
RS_
RS0 RS1 RD0 RD1 WR0 WR1 LDRi LDDR1
BUS# BUS# BUS# BUS#
SW_ ALU_ RAM _
LR/W# CEL# LDAR#
QD 功能
1
2
3
4
5
6
7
8
AAH→AR
(AAH)→R0
驗證從存儲器送入寄存器的數(shù)據(jù)
9
10
11
12
R0=
R1=
R2=
R3=
實驗四表1:根據(jù)微指令格式的定義,將微程序流程圖中的全部微指令變成二進(jìn)制代碼,填入控存代碼表(請在預(yù)習(xí)時完成)
微地址
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
CM3
00
CM2
00
CM1
00
CM0
48
微地址
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
CM3
CM2
CM1
CM0
實驗四表2:控制臺操作命令微指令(置DP=1,DB=0,時序電路的TJ、SKIP為地GND)
操作名稱
SWC SWB SWA
寫存儲器WRM
SWC SWB SWA
0 0 1
CLR#
√
讀存儲器RRM
SWC SWB SWA
寫寄存器WRF
SWC SWB SWA
讀寄存器RRF
SWC SWB SWA
啟動程序 PR
SWC SWB SWA
QD
√
微指令地址
μA5-μA0
00H
微指令代碼
CM3 CM2 CM1 CM0
00 00 00 48
功能
復(fù)位,讀操作臺命令
實驗四表3:機器指令微指令(DP=1,DB=0,SWC=0,SWB=0,SWA=0,時序電路的TJ、SKIP為地GND)
機器指令
IR7 IR6 IR5 IR4
CLR#
√
ADD
IR7 IR6 IR5 IR4
0 0 0 0
SUB
IR7 IR6 IR5 IR4
AND
IR7 IR6 IR5 IR4
STA
IR7 IR6 IR5 IR4
QD
√
微指令地址
μA5-μA0
00H
微指令代碼
CM3 CM2 CM1 CM0
00 00 00 48
功能
復(fù)位,讀操作臺命令
續(xù)上表
機器指令
IR7 IR6 IR5 IR4
CLR#
LDA
IR7 IR6 IR5 IR4
JC
IR7 IR6 IR5 IR4
STP
IR7 IR6 IR5 IR4
OUT
IR7 IR6 IR5 IR4
QD
微指令地址
μA5-μA0
微指令代碼
CM3 CM2 CM1 CM0
功能
實驗五表1:將8條指令組成的簡單程序按照指令格式匯編成機器代碼(請在預(yù)習(xí)時完成)
內(nèi)存地址
00H
01H
02H
03H
04H
05H
06H
07H
機器指令
ADD R1,R0
JC R3
STA R1,[R2]
LDA R2,[R2]
AND R2,R0
SUB R2,R3
OUT R2
STP
指令功能
機器代碼
(二進(jìn)制表示)
機器代碼
(十六進(jìn)制)
實驗五表2:運用控制臺命令將程序代碼存入內(nèi)存,將程序運行時用到的數(shù)據(jù)存入寄存器,單步及連續(xù)執(zhí)行。
(1)向寄存器寫入R0=35H,R1=43H,R2=10H,R3=07H,并驗證是否正確(DP=0,DB=0,SWC=0,SWB=1,SWA=1)
序號
1
2
3
4
5
6
7
8
9
SW7
1
SW6
1
SW5
1
SW4
1
SW3
1
SW2
1
SW1
1
SW0
1
QD
√
功能
用不常用的地址(如FF)寫入AR、PC
指定寄存器號R0,寫入指令寄存器IR
第一個數(shù)值寫入IR指定的R0寄存器
使用讀寄存器控制臺命令RRF,驗證寫入通用寄存器的數(shù)據(jù)是否正確。(DP=0,DB=0,SWC=1,SWB=0,SWA=0)
(2)向存儲器寫入程序機器代碼和10H單元初值55H,并驗證數(shù)據(jù)是否正確(DP=0,DB=0,SWC=0,SWB=0,SWA=1)
序號
1
2
3
4
5
6
7
8
9
10
11
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
QD
功能
使用讀存儲器控制臺命令RRM,驗證寫入RAM的程序和初值是否正確。(DP=0,DB=0,SWC=0,SWB=1,SWA=0)
(3)用單拍方式執(zhí)行一遍程序,記錄四個寄存器數(shù)據(jù),以及存入RAM的數(shù)據(jù)。(DP=1,DB=0,SWC=0,SWB=0,SWA=0)
序號
1
2
3
4
5
6
7
8
機器指令
ADD R1,R0
JC R3
STA R1,[R2]
LDA R2,[R2]
AND R2,R0
SUB R2,R3
OUT R2
STP
指令功能
QD AR PC
μA5-
IR C
μA0
R0
R1
R2
R3
10H
(4)用連續(xù)方式運行程序,并讀R0-R3、10H單元的結(jié)果。
①重寫R1、R2、(10H)單元的內(nèi)容(單拍執(zhí)行時已破壞)
②置DP=0、DB=0、SWC=0、SWB=0、SWA=0(連續(xù)運行狀態(tài))
③置SW7-SW0為00H(程序從地址00H處開始執(zhí)行)
④按CLR#按鈕,使實驗系統(tǒng)處于初始狀態(tài)
⑤按QD運行程序,程序自動運行到地址為07H的STP命令
⑥按CLR#按鈕,通過控制臺命令讀寄存器和存儲器的結(jié)果
R0= R1= R2= R3= (10H)=
實驗五表3:令R0=86H、R1=88H、R2=10H、R3=07H,(10H)仍為55H,這時產(chǎn)生進(jìn)位C,JC指令將跳轉(zhuǎn)
(1)運用控制臺命令將第二組數(shù)據(jù)存入寄存器(R0=86H、R1=88H、R2=10H、R3=07H),并驗證是否正確
序號
1
2
3
4
5
6
7
8
9
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
QD
功能
用不常用的地址(如FF)寫入AR、PC
指定寄存器號R0,寫入指令寄存器IR
第一個數(shù)值寫入IR指定的R0寄存器
使用讀寄存器控制臺命令RRF,驗證寫入通用寄存器的數(shù)據(jù)是否正確。
(2)向存儲器寫入程序機器代碼和10H單元初值55H,并驗證數(shù)據(jù)是否正確
序號
1
2
3
4
5
6
7
8
9
10
11
SW7
SW6
SW5
SW4
SW3
SW2
SW1
SW0
QD
功能
使用讀存儲器控制臺命令RRM,驗證寫入RAM的程序和初值是否正確。
(3)用單拍方式執(zhí)行程序,記錄四個寄存器數(shù)據(jù),以及存入RAM的數(shù)據(jù)。觀察、跟蹤程序執(zhí)行的詳細(xì)過程
序號
1
2
3
4
5
6
7
8
機器指令
ADD R1,R0
JC R3
STA R1,[R2]
LDA R2,[R2]
AND R2,R0
SUB R2,R3
OUT R2
STP
QD AR PC
μA5-
IR C
μA0
R0
R1
R2
R3
10H
(4)用連續(xù)方式運行程序,并讀R0-R3、10H單元的結(jié)果。
①重寫R1、R2、(10H)單元的內(nèi)容(單拍執(zhí)行時已破壞)
②置DP=0、DB=0、SWC=0、SWB=0、SWA=0(連續(xù)運行狀態(tài))
③置SW7-SW0為00H(程序從地址00H處開始執(zhí)行)
④按CLR#按鈕,使實驗系統(tǒng)處于初始狀態(tài)
⑤按QD運行程序,程序自動運行到地址為07H的STP命令
⑥按CLR#按鈕,通過控制臺命令讀寄存器和存儲器的結(jié)果
R0= R1= R2= R3=
(10H)=
本文發(fā)布于:2023-12-30 00:17:56,感謝您對本站的認(rèn)可!
本文鏈接:http://www.newhan.cn/zhishi/a/1703866677245292.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除。
本文word下載地址:計算機組成原理實驗說明分解.doc
本文 PDF 下載地址:計算機組成原理實驗說明分解.pdf
| 留言與評論(共有 0 條評論) |