《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書_第1頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書_第2頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書_第3頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書_第4頁
《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩63頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE1《計(jì)算機(jī)組成原理》實(shí)驗(yàn)指導(dǎo)書主編:許峰范毅華2010年4月

目錄TOC\o"1-2"\h\z第一章TEC-5計(jì)算機(jī)組成和數(shù)字邏輯實(shí)驗(yàn)系統(tǒng)介紹 3第二章計(jì)算機(jī)組成原理實(shí)驗(yàn) 132.1運(yùn)算器組成實(shí)驗(yàn) 132.2雙端口存儲(chǔ)器原理實(shí)驗(yàn) 172.3數(shù)據(jù)通路組成實(shí)驗(yàn) 202.4常規(guī)型微程序控制器組成實(shí)驗(yàn) 252.5CPU組成與機(jī)器指令執(zhí)行周期實(shí)驗(yàn) 382.6硬連線控制器的設(shè)計(jì)與調(diào)試(課程設(shè)計(jì)) 46附錄常用實(shí)驗(yàn)器件引腳圖……………………62

第一章TEC-5計(jì)算機(jī)組成和數(shù)字邏輯實(shí)驗(yàn)系統(tǒng)介紹TEC-5實(shí)驗(yàn)系統(tǒng)由北京郵電大學(xué)計(jì)算機(jī)學(xué)院、清華大學(xué)科教儀器廠聯(lián)合研制。它適用于《計(jì)算機(jī)組成原理》、《計(jì)算機(jī)組織和結(jié)構(gòu)》和《數(shù)字邏輯和數(shù)字系統(tǒng)》三門課程的實(shí)驗(yàn)教學(xué),是一種多用儀器。該儀器將提高學(xué)生的動(dòng)手能力,提高學(xué)生對(duì)計(jì)算機(jī)整體和各組成部分的理解,提高學(xué)生對(duì)數(shù)字系統(tǒng)和計(jì)算機(jī)系統(tǒng)的綜合設(shè)計(jì)能力。一、TEC-5實(shí)驗(yàn)系統(tǒng)的特點(diǎn)1.采用單板式結(jié)構(gòu)、計(jì)算機(jī)模型采用8位,簡(jiǎn)單、實(shí)用。計(jì)算機(jī)模型分為數(shù)據(jù)通路、控制器、時(shí)序電路、控制臺(tái)、數(shù)字邏輯實(shí)驗(yàn)區(qū)五部分。各部分之間采用可插、拔的導(dǎo)線連接。2.指令系統(tǒng)采用4位操作碼,容納16條指令,已實(shí)現(xiàn)了加、減、邏輯與、存數(shù)、取數(shù)、條件轉(zhuǎn)移、IO輸出和停機(jī)8條指令,指令功能非常典型。其他8條指令備用。3.?dāng)?shù)據(jù)通路采用雙端口存儲(chǔ)器作為主存,實(shí)現(xiàn)了數(shù)據(jù)總線和指令總線雙總線體制,體現(xiàn)了當(dāng)代CPU的設(shè)計(jì)思想。4.運(yùn)算器中ALU由2片74181實(shí)現(xiàn)。4個(gè)通用寄存器由1片ispLSI1016組成,設(shè)計(jì)新穎。5.控制器采用微程序控制器和硬連線控制器兩種類型,體現(xiàn)了當(dāng)代計(jì)算機(jī)控制器設(shè)計(jì)技術(shù)的完備性。6.控制存儲(chǔ)器中的微代碼可以通過PC機(jī)下載,省去插、拔EEPROM芯片。7.實(shí)驗(yàn)臺(tái)上提供了一片在系統(tǒng)編程器件ispLSI1032,學(xué)生在PC機(jī)設(shè)計(jì)好組合邏輯控制器方案后下載到ispLSI1032中,ispLSI1032就構(gòu)成了新的控制器。控制器的設(shè)計(jì)并實(shí)現(xiàn)對(duì)提高計(jì)算機(jī)綜合設(shè)計(jì)能力會(huì)有很大幫助。ispLSI1032也可用于數(shù)字邏輯和數(shù)字系統(tǒng)的設(shè)計(jì)。8.控制臺(tái)包含8個(gè)數(shù)據(jù)開關(guān),用于置數(shù)功能;16個(gè)雙位開關(guān),用于置信號(hào)電平;控制臺(tái)有復(fù)位和啟動(dòng)二個(gè)單脈沖發(fā)生器,有單拍、單步二個(gè)開關(guān)??刂婆_(tái)有5種操作:寫存儲(chǔ)器,讀存儲(chǔ)器,讀寄存器,寫寄存器,啟動(dòng)程序運(yùn)行。9.微程序控制器中的微代碼輸出、微地址總線、程序地址總線、數(shù)據(jù)總線、存儲(chǔ)器地址總線、進(jìn)位、雙端口存儲(chǔ)器的讀、寫沖突位BUSYL#和BUSYR#等都有指示燈,便于查看指令的執(zhí)行過程。10.?dāng)?shù)字邏輯和數(shù)字系統(tǒng)實(shí)驗(yàn)部分除上述可用的一片ISP1032、16個(gè)電平開關(guān)和2個(gè)單脈沖按鈕(復(fù)位和啟動(dòng))外,還有12個(gè)指示燈,11個(gè)雙列直插插座,5個(gè)8432編碼驅(qū)動(dòng)的數(shù)碼管,1個(gè)直接驅(qū)動(dòng)的數(shù)碼管,1個(gè)喇叭。時(shí)鐘信號(hào)源有500KHz,50KHz,5KHz。11.電源部分具有抗電源對(duì)地短路能力。二、TEC-5實(shí)驗(yàn)系統(tǒng)的組成TEC-5實(shí)驗(yàn)系統(tǒng)由以下幾個(gè)部分組成:控制臺(tái)數(shù)據(jù)通路控制器時(shí)序電路數(shù)字邏輯實(shí)驗(yàn)區(qū)電源模塊如圖1.0TEC-5實(shí)驗(yàn)系統(tǒng)圖所示,下面分別對(duì)各組成部分予以介紹。圖1.0TEC-5實(shí)驗(yàn)系統(tǒng)圖三、電源電源部分由一個(gè)電源、一個(gè)電源插座、一個(gè)電源開關(guān)和一個(gè)紅色電源指示燈組成。電源通過四個(gè)螺釘安裝在實(shí)驗(yàn)箱底部,它輸出+5V電壓,最大負(fù)載電流3A,具有抗+5V對(duì)地短路功能。電源插座用于接交流220V,插座內(nèi)裝有保險(xiǎn)絲。電源開關(guān)接通時(shí),模塊電源輸出+5V,紅色指示燈點(diǎn)亮。電源部分如圖1.1電源模塊區(qū)圖圖1.1電源模塊四、時(shí)序發(fā)生器時(shí)序發(fā)生器產(chǎn)生計(jì)算機(jī)模型所需的時(shí)序和數(shù)字邏輯實(shí)驗(yàn)所需的時(shí)鐘。時(shí)序電路由一個(gè)500KHz晶振、2片GAL22V10(U64、U66)、一片74LS390(U65)組成。根據(jù)本機(jī)設(shè)計(jì),執(zhí)行一條微指令需要4個(gè)節(jié)拍脈沖T1、T2、T3、T4,執(zhí)行一條機(jī)器指令需要三個(gè)節(jié)拍電位W1、W2、W3,因此本機(jī)的基本時(shí)序如下: 圖1.2中,MF是晶振產(chǎn)生的500KHz基本時(shí)鐘,T1、T2、T3、T4是數(shù)據(jù)通路和控制器中各寄存器的節(jié)拍脈沖信號(hào),印制板上已將它們和相關(guān)的寄存器相連。T1、T2、T3、T4既供微程序控制器使用,也供硬連線控制器使用。W1、W2、W3只供硬連線控制器做節(jié)拍電位信號(hào)使用。另外,供數(shù)字邏輯實(shí)驗(yàn)使用的時(shí)鐘50KHz和5KHz由MF經(jīng)一片74LS390分頻后產(chǎn)生。五、數(shù)據(jù)通路TEC-5的數(shù)據(jù)通路采用了數(shù)據(jù)總線和指令總線雙總線形式。它還使用了大規(guī)模在系統(tǒng)編程器件作為寄存器堆,使得設(shè)計(jì)簡(jiǎn)單明了,可修改性強(qiáng)。如圖1.3所示圖1.3數(shù)據(jù)通路圖1.3是數(shù)據(jù)通路總體圖,下面介紹圖中各個(gè)主要部件的作用。1.運(yùn)算器ALU運(yùn)算器ALU由兩片74LS181(U55和U60)組成,如圖1.4所示。其中U60進(jìn)行低4位運(yùn)算,U55進(jìn)行高4位運(yùn)算。在選擇端M和S0-S3控制下,ALU對(duì)數(shù)據(jù)A、B進(jìn)行各種算術(shù)、邏輯運(yùn)算。有關(guān)74181運(yùn)算的具體操作,請(qǐng)看74181的資料和教科書。當(dāng)LDRi=1時(shí),在T3的上升沿寄存器C(U57A)保存運(yùn)算產(chǎn)生的進(jìn)位標(biāo)志信號(hào)。圖1.4運(yùn)算器ALU2.運(yùn)算操作數(shù)寄存器DR1和DR2(U47、U48)DR1(U47)和DR2(U48)是運(yùn)算操作數(shù)寄存器,如圖1.5所示,DR1和ALU的A口相連,DR2和ALU的B口相連。DR1和DR2各由一片74LS273構(gòu)成。當(dāng)LDDR1/LDDR2=1時(shí),在T2上升沿,DR1/DR2接收來自通用寄存器堆A/B端口的數(shù)據(jù)。圖1.5運(yùn)算操作數(shù)寄存器DR1和DR23.雙端口通用寄存器堆RF(U30)雙端口通用寄存器堆RF由一片ispLSI1016(U54)構(gòu)成,如圖1.6所示。其中包含4個(gè)8位寄存器(R0、R1、R2、R3),有三個(gè)控制端口:兩個(gè)控制讀操作,一個(gè)控制寫操作,三個(gè)端口可以同時(shí)操作。由RD1、RD0選中的寄存器的數(shù)據(jù)從A端口讀出,由RS1、RS0選中的寄存器的數(shù)據(jù)從B端口讀出;WR1、WR0選擇要寫入的寄存器。LDRi控制寫操作,當(dāng)LDRi=1時(shí),在T3上升沿將數(shù)據(jù)總線DBUS上的數(shù)據(jù)寫入由WR1、WR0選中的寄存器。從RF的A端口讀出的數(shù)據(jù)直接送DR1。由B端口讀出的數(shù)據(jù)直接送DR2之外,還可以送數(shù)據(jù)總線DBUS。當(dāng)RS_BUS#=0時(shí),允許B端口數(shù)據(jù)送DBUS。圖1.6雙端口通用寄存器堆RF4.雙端口存儲(chǔ)器RAM雙端口存儲(chǔ)器RAM由一片IDT7132(U44)及少量控制電路構(gòu)成。IDT7132是2048字節(jié)的雙端口靜態(tài)隨機(jī)存儲(chǔ)器,本實(shí)驗(yàn)系統(tǒng)實(shí)際使用256字節(jié)。IDT7132的兩個(gè)端口可以同時(shí)進(jìn)行讀、寫操作。在本實(shí)驗(yàn)系統(tǒng)中,RAM左端口連接數(shù)據(jù)總線DBUS,可進(jìn)行讀、寫操作;右端口連接指令總線IBUS,輸出到指令寄存器IR,作為只讀端口使用。IDT7132有6個(gè)控制引腳,CEL#、LR/W#、OEL#控制左端口讀、寫操作;CER#、RR/W#、OER#控制右端口的讀寫操作。CEL#為左端口選擇引腳,低電平有效;當(dāng)CEL#=1時(shí),禁止對(duì)左端口的讀、寫操作。LR/W#控制對(duì)左端口的讀寫,當(dāng)CEL#=0且LR/W#=1時(shí),左端口進(jìn)行讀操作;當(dāng)CEL#=0且LR/W#=0且T2為高時(shí),左端口進(jìn)行寫操作。OEL#的作用等同于三態(tài)門,當(dāng)CEL#=0且OEL#=0時(shí),允許左端口讀出的數(shù)據(jù)送到數(shù)據(jù)總線DBUS上;當(dāng)OEL#=1時(shí),禁止左端口的數(shù)據(jù)放到DBUS。為便于理解,在以后的實(shí)驗(yàn)中,我們將OEL#引腳稱為RAM_BUS#??刂朴叶丝诘娜齻€(gè)引腳與左端口的三個(gè)完全類似,不過只使用了讀操作,在實(shí)驗(yàn)板上已將RR/W#固定接高電平,OER#固定接地。當(dāng)CER#=0時(shí),右端口讀出的數(shù)據(jù)(更確切的說法是指令)放到指令總線IBUS上,然后當(dāng)LDIR=1時(shí)在T3的上升沿打入指令寄存器IR。所有數(shù)據(jù)/指令的寫入都使用左端口,右端口作為指令端口,不需要進(jìn)行數(shù)據(jù)的寫入。雙端口存儲(chǔ)器RAM如圖1.7所示。左端口讀出的數(shù)據(jù)放在數(shù)據(jù)總線DBUS上,由數(shù)據(jù)總線指示燈DBUS7-DBUS0顯示。右端口讀出的指令放在指令總線IBUS上,由指令總線指示燈IBUS7-IBUS0顯示。圖1.7雙端口存儲(chǔ)器RAM5.地址寄存器AR和程序計(jì)數(shù)器PC存儲(chǔ)器左端口的地址寄存器AR(U53、U59)和右端口的地址寄存器PC(U52、U45)都使用2片74LS163,具有地址遞增的功能。PC是程序計(jì)數(shù)器,提供雙端口寄存器右端口地址,U52是低4位,U45是高4位,具有加載數(shù)據(jù)和加1功能。AR是地址寄存器,提供雙端口存儲(chǔ)器左端口地址,U53是低4位,U59是高4位,具有加載數(shù)據(jù)和加1功能。AR中的地址用地址AR指示燈AR7-AR0顯示,PC中的地址用程序計(jì)數(shù)器PC指示燈PC7-PC0顯示。當(dāng)LDAR#=0時(shí),AR在T2時(shí)從DBUS接收來自SW7-SW0的地址;當(dāng)AR+1=1時(shí),在T2的上升沿存儲(chǔ)器地址加1。注意:LDAR#和AR+1兩個(gè)控制信號(hào)不能同時(shí)有效。在下一個(gè)時(shí)鐘周期,令CEL#=0,LR/W#=0,則在T2節(jié)拍進(jìn)行寫操作,將SW7-SW0設(shè)置的數(shù)據(jù)經(jīng)DBUS寫入存儲(chǔ)器。當(dāng)LDPC#=0時(shí),PC在T2時(shí)從DBUS接收來自SW7-SW0的地址,作為程序的啟動(dòng)地址;當(dāng)一條機(jī)器指令開始執(zhí)行時(shí),取指以后,PC+1=1,程序計(jì)數(shù)器給出下一條指令的地址。注意:LDPC#和PC+1兩個(gè)控制信號(hào)不能同時(shí)有效。地址寄存器AR和程序計(jì)數(shù)器PC如圖1.8所示圖1.8地址寄存器AR和程序計(jì)數(shù)器PC6.指令寄存器IR指令寄存器IR是一片74LS273(U46)。當(dāng)LDIR=1時(shí),在T3的上升沿,它從雙端口存儲(chǔ)器的右端口接收指令。指令的操作碼部分IR7—IR4送往控制器譯碼,產(chǎn)生數(shù)據(jù)通路的控制信號(hào)。指令的操作數(shù)部分送往寄存器堆RF,選擇參與運(yùn)算的寄存器。IR1、IR0與RD1、RD0連接,選擇目標(biāo)操作數(shù)寄存器;IR3、IR2與RS1、RS0連接,選擇源操作數(shù)寄存器。IR1、IR0也與WR1、WR0連接,以便將運(yùn)算結(jié)果送往目標(biāo)操作數(shù)寄存器。表1.1機(jī)器指令系統(tǒng)名稱助記符功能指令格式IR7IR6IR5IR4IR3IR2IR1IR0加法ADDRd,RsRd+Rs→Rd0000Rs1Rs0Rd1Rd0減法SUBRd,RsRd-Rs→Rd0001Rs1Rs0Rd1Rd0邏輯與ANDRd,RsRd&Rs→Rd0010Rs1Rs0Rd1Rd0存數(shù)STARd,[Rs]Rd→[Rs]0011Rs1Rs0Rd1Rd0取數(shù)LDARd,[Rs][Rs]→Rd0100Rs1Rs0Rd1Rd0條件轉(zhuǎn)移JCR3若C=1則R3→PC010111××停機(jī)STP暫停執(zhí)行0110××××輸出OUTRsRs→DBUS0111Rs1Rs0××本實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)了8條機(jī)器指令,均為單字長(8位)指令。指令功能及格式如表1所示。其中的×代表隨意值;RS1、RS0是寄存器堆B端口讀出的源選擇信號(hào);RD1、RD0是寄存器堆A端口讀出的目標(biāo)選擇信號(hào),WR1、WR0是寫入的寄存器的選擇信號(hào)。在實(shí)驗(yàn)中,需要將IR3-IR0這些操作數(shù)選擇信號(hào)與RF對(duì)應(yīng)引腳連接好。六、控制器控制器用來產(chǎn)生數(shù)據(jù)通路操作所需的控制信號(hào)。TEC-5提供了一個(gè)微程序控制器,以便能進(jìn)行計(jì)算機(jī)組成原理基本實(shí)驗(yàn)。在進(jìn)行課程設(shè)計(jì)時(shí),學(xué)生可設(shè)計(jì)自己的控制器。圖1.9是控制器圖。圖1.9控制器1.控制存儲(chǔ)器控制存儲(chǔ)器由4片HN58C65(U35、U36、U37、U38)構(gòu)成。HN58C65是E2PROM,存儲(chǔ)容量為8K字節(jié),本實(shí)驗(yàn)系統(tǒng)只使用了64字節(jié)。微指令格式采用水平型,微指令字長31位,其中順序控制部分9位:判別字段3位,后繼微地址6位。操作控制字段22位,各位進(jìn)行直接控制。判別標(biāo)志位P0和控制臺(tái)操作開關(guān)SWC、SWB、SWA一起確定控制臺(tái)指令微程序的分支,完成不同的控制臺(tái)操作;P1與指令操作碼(IR的高4位)一起確定機(jī)器指令微程序的分支,轉(zhuǎn)向各種指令的不同微程序流程。P2與進(jìn)位標(biāo)志C一起確定條件轉(zhuǎn)移指令。操作控制字段22位,采用直接表示法,控制數(shù)據(jù)通路的操作。信號(hào)名帶#者為低電平有效。 表1.2控制信號(hào)表S3,S2,S1,S0選擇運(yùn)算器的運(yùn)算類型。M選擇運(yùn)算器的運(yùn)算模式:M=0,算術(shù)運(yùn)算;M=1,邏輯運(yùn)算。Cn#運(yùn)算器最低位的+1信號(hào)。為0時(shí),運(yùn)算器最低位有進(jìn)位。LR/W#當(dāng)LR/W#=1且CEL#=0時(shí),對(duì)雙端口存儲(chǔ)器左端口進(jìn)行讀操作;當(dāng)LR/W#=0且CEL#=0時(shí),在T2節(jié)拍對(duì)左端口進(jìn)行寫操作。CEL#雙端口存儲(chǔ)器左端口使能信號(hào)。為0時(shí)允許對(duì)左端口讀、寫。CER#雙端口存儲(chǔ)器右端口使能信號(hào)。為0時(shí)將指令送往指令總線IBUS。RAM_BUS#存儲(chǔ)器數(shù)據(jù)送數(shù)據(jù)總線DBUS信號(hào),為0時(shí)將雙端口存儲(chǔ)器左端口數(shù)據(jù)送DBUS。ALU_BUS#ALU輸出三態(tài)門使能信號(hào),為0時(shí)將ALU運(yùn)算結(jié)果送DBUS。RS_BUS#通用寄存器右端口三態(tài)門使能信號(hào),為0時(shí)將RF的B端口數(shù)據(jù)送DBUS。SW_BUS#控制臺(tái)輸出三態(tài)門使能信號(hào),為0時(shí)將控制臺(tái)開關(guān)SW7-SW0數(shù)據(jù)送DBUS。LDRi雙端口寄存器堆寫入信號(hào),為1時(shí)將數(shù)據(jù)總線上的數(shù)據(jù)在T3的上升沿寫入由WR1、WR0指定的個(gè)寄存器。LDDR2對(duì)操作數(shù)寄存器DR2進(jìn)行加載的控制信號(hào),為1時(shí)在T2的上升沿將由RS1、RS0指定的寄存器中的數(shù)據(jù)打入DR2。LDDR1對(duì)操作數(shù)寄存器DR1進(jìn)行加載的控制信號(hào),為1時(shí)在T2的上升沿將由RD1、RD0指定的寄存器中的數(shù)據(jù)打入DR1。LDAR#對(duì)地址寄存器AR進(jìn)行加載的控制信號(hào)。為0時(shí)在T2的上升沿將數(shù)據(jù)總線上的數(shù)據(jù)打入地址寄存器AR。AR+1對(duì)AR進(jìn)行加1操作的電位控制信號(hào)。為1時(shí)在T2的上升沿使AR的值加1。LDPC#對(duì)程序計(jì)數(shù)器PC進(jìn)行加載的控制信號(hào)。為0時(shí)在T2的上升沿將數(shù)據(jù)總線上的數(shù)據(jù)打入程序計(jì)數(shù)器PC。PC+1對(duì)PC進(jìn)行加1操作的電位控制信號(hào)。為1時(shí)在T2的上升沿使PC的值加1。LDIR對(duì)指令寄存器進(jìn)行加載的控制信號(hào)。為1時(shí)在T3的上升沿將指令總線IBUS上的數(shù)據(jù)打入指令寄存器IR。TJ停機(jī)指令,暫停微程序運(yùn)行。2.微地址寄存器μAR(U32)微地址寄存器μAR是1片74LS174,對(duì)控制存儲(chǔ)器提供微程序地址。當(dāng)CLR#=0時(shí),將異步清零,使微程序從000000B開始執(zhí)行。在每一個(gè)T1的上升沿,新的微指令地址打入微地址寄存器中。微地址由指示燈uA5-uA0顯示。3.微地址轉(zhuǎn)移邏輯(U20、U21、U24、U26)微地址轉(zhuǎn)移邏輯產(chǎn)生后繼微程序地址,它由兩片74LS32和兩片74LS08構(gòu)成。微地址轉(zhuǎn)移邏輯的信號(hào)來源是:控制存儲(chǔ)器產(chǎn)生的后繼微指令地址μA0-μA5,判別標(biāo)志位P0、P1、P2,指令操作碼IR4-IR7,進(jìn)位標(biāo)志C,還有控制臺(tái)操作碼SWC、SWB、SWA。七、控存EEPROM的改寫 TEC-5中的4片EEPROM(CM0-CM3,U35-U38)是控存,如圖1.11。里面裝有TEC-5微程序的微代碼。由于它是電可擦除和編程的EEPROM,因此可以實(shí)現(xiàn)不用將CM0-CM3從插座上取出就能實(shí)現(xiàn)對(duì)其編程的目的。為此我們?cè)赥EC-5上用1片單片機(jī)芯片89S52(U58)和一些附加電路實(shí)現(xiàn)了不用拔出CM0-CM3就能對(duì)其編程,從而改寫這些EEPROM中微代碼的目的。89S52中包含一個(gè)監(jiān)控程序,它負(fù)責(zé)通過串行口和PC機(jī)通訊,向PC機(jī)發(fā)出提示信息、接收命令和數(shù)據(jù),并根據(jù)接收到的命令(0,1,2,3)決定將隨后收到的64個(gè)數(shù)據(jù)寫入指定的EEPROM。命令0、1、2、3指定寫那個(gè)器件,0對(duì)應(yīng)CM0,1對(duì)應(yīng)CM1,2對(duì)應(yīng)CM2,3對(duì)應(yīng)CM3。64個(gè)字節(jié)的數(shù)據(jù)將寫入指定EEPROM的前64個(gè)單元(地址00H-3FH)。圖1.11EEPROM控存TEC-5的兩種工作方式TEC-5的計(jì)算機(jī)組成原理實(shí)驗(yàn)部分有兩種工作方式,一種叫正常工作方式,一種叫編程工作方式。當(dāng)編程開關(guān)(在U5889S52的下面)撥到正常位置時(shí),TEC-5的計(jì)算機(jī)部分可以正常做實(shí)驗(yàn),CM0-CM3只受控制器的控制,它里面的微代碼正常讀出,供數(shù)據(jù)通路使用。當(dāng)編程開關(guān)撥到編程位置時(shí),CM0-CM3只受單片機(jī)89S52的控制,用來對(duì)4片EEPROM編程。在編程狀態(tài)下,不能做計(jì)算機(jī)組成原理的實(shí)驗(yàn)。出廠時(shí)編程開關(guān)處于正常狀態(tài)。注意:做計(jì)算機(jī)組成原理實(shí)驗(yàn)時(shí)編程開關(guān)一定要處于正常位置。編程軟件—串口調(diào)試助手2.2簡(jiǎn)介在PC機(jī)上運(yùn)行的和TEC-5通訊的編程軟件是串口調(diào)試助手。下面對(duì)該軟件做一些簡(jiǎn)單介紹。通過雙擊出廠時(shí)提供的該軟件的圖標(biāo),即出現(xiàn)該軟件的界面。圖1.3是該軟件的界面。此軟件很簡(jiǎn)單,一看就知道怎么用,在這里簡(jiǎn)單說一下需要注意的地方。首先,串口需要設(shè)置。如果你的機(jī)器就一個(gè)串口,那就不用管了,要是有1個(gè)以上的串口,那就看看你此時(shí)通訊用的是哪一個(gè)了。串口的設(shè)置要和PC機(jī)上使用的編程下載串口一致。其次,波特率等參數(shù)要保證和89S52里的下載軟件中的一致。即波特率為1200波特,數(shù)據(jù)位8位,無校驗(yàn)位,停止位1位。這些參數(shù)設(shè)置不正確將無法通訊。再次,窗口下部空白區(qū)為PC數(shù)據(jù)發(fā)送窗口,其上面較大的空白區(qū)為PC數(shù)據(jù)接收窗口。最后,需要時(shí)刻注意按鈕‘關(guān)閉串口’的狀態(tài)。 圖1.12串口調(diào)試助手界面CM0-CM3的下載步驟:=1\*GB3①在TEC-5關(guān)閉電源的情況下,用出廠時(shí)提供的RS232串口線將TEC-5實(shí)驗(yàn)儀的串口與主機(jī)的串口連接起來。TEC-5上的編程開關(guān)撥到編程位置,將串口調(diào)試助手程序打開,設(shè)置好參數(shù),打開電源,按一下復(fù)位鍵RESET。=2\*GB3②軟件的接收區(qū)此時(shí)會(huì)顯示‘WAITINGFORCOMMAND...’,請(qǐng)?jiān)跀?shù)據(jù)發(fā)送區(qū)寫入‘0’,按‘手動(dòng)發(fā)送’按鈕,將命令‘0’發(fā)送給89S52,表示通知它要寫CM0文件了。=3\*GB3③數(shù)據(jù)接收區(qū)會(huì)出現(xiàn)‘PLEASECHOOSEACMFILE’,請(qǐng)通過按鈕‘選擇發(fā)送文件’選擇要寫入CM0的二進(jìn)制文件,文件必須是“BIN”格式,長度為64字節(jié)。然后點(diǎn)擊‘發(fā)送文件’按鈕將文件發(fā)往89S52。89S52接收數(shù)據(jù)并對(duì)CM0編程,然后它讀出CM0的數(shù)據(jù)和從PC機(jī)接收到數(shù)據(jù)比較,不管正確與否,89S52都向PC機(jī)發(fā)出結(jié)果信息,在串口調(diào)試助手軟件數(shù)據(jù)接收窗口顯示出來。=4\*GB3④等待文件發(fā)送完畢的提示(注意看軟件的最底下的狀態(tài)行和數(shù)據(jù)接收區(qū)),請(qǐng)注意看數(shù)據(jù)接收區(qū)的命令提示,重復(fù)=2\*GB3②-=3\*GB3③步驟,分別輸入命令‘1’、‘2’、‘3’,同時(shí),應(yīng)分別選擇CM1、CM2、CM3文件,對(duì)相應(yīng)的EEPROM編程。CM1、CM2、CM3全部編程完后,按RESET按鈕結(jié)束編程。最后將TEC-5上的編程開關(guān)撥到正常位置。 注意:對(duì)CM0、CM1、CM2、CM3的編程順序無規(guī)定,只要在發(fā)出器件號(hào)后緊跟著發(fā)送該器件的編程數(shù)據(jù)(文件)即可。例如,可以按CM3、CM2、CM0、CM1的順序編程。編程也可以只對(duì)一個(gè)或者幾個(gè)EEPROM編程,不一定對(duì)4個(gè)EEPROM全部編程,只要編程結(jié)束后按RESET按鈕結(jié)束編程,最后將TEC-5上的編程開關(guān)撥到正常位置即可。

八、控制臺(tái)控制臺(tái)由若干撥動(dòng)開關(guān)和指示燈組成,用于設(shè)置控制臺(tái)指令、人工控制數(shù)據(jù)通路、設(shè)置數(shù)據(jù)代碼信號(hào)和顯示相關(guān)數(shù)據(jù)組成等。1.?dāng)?shù)據(jù)開關(guān)SW7-SW0八位數(shù)據(jù)開關(guān)如圖1.13所示,通過U49(74LS244)接到數(shù)據(jù)通路部分的數(shù)據(jù)總線DBUS上,用于向數(shù)據(jù)通路中的寄存器和存儲(chǔ)器置數(shù)。當(dāng)SW_BUS#=0時(shí),SW7-SW0的數(shù)據(jù)送往數(shù)據(jù)總線DBUS。開關(guān)撥到上面位置時(shí)輸出1,開關(guān)撥到下面位置時(shí)輸出0。SW7對(duì)應(yīng)DBUS最高位,SW0對(duì)應(yīng)DBUS最低位。數(shù)據(jù)開關(guān)數(shù)據(jù)開關(guān)S0SW0S1SW1S2SW22S3SW3S4SW4S5SW5S6SW6S7SW7圖1.13數(shù)據(jù)開關(guān)SW7-SW02.模擬數(shù)據(jù)通路控制信號(hào)開關(guān)K15-K0如圖1.14所示撥動(dòng)開關(guān),撥到上面位置輸出1,撥到下面位置輸出0。實(shí)驗(yàn)中用于模擬數(shù)據(jù)通路部分所需的電平控制信號(hào)。例如,將K1與LDDR1相連,則K1撥到上面位置時(shí),表示LDDR1為1。這些開關(guān)在數(shù)字邏輯與數(shù)字系統(tǒng)實(shí)驗(yàn)時(shí)也作為電平輸入開關(guān)。K15K14K13K12K15K14K13K12K11K10K9K8K7K6K5K4K3K2K1K0K15K14K13K12K11K10K9K8K7K6K5K4K3K2K1K0圖1.14模擬數(shù)據(jù)通路控制信號(hào)開關(guān)K15-K03.?dāng)?shù)據(jù)總線指示燈DBUS八個(gè)發(fā)光二極管(高四位為紅,低四位為綠),指示DBUS上數(shù)據(jù)。燈亮表示1。4.指令總線指示燈IBUS八個(gè)發(fā)光二極管(高四位為紅,低四位為綠),指示IBUS上數(shù)據(jù)。燈亮表示1。5.地址指示燈AR八個(gè)發(fā)光二極管(高四位為紅,低四位為綠),指示雙端口存儲(chǔ)器的左端口地址寄存器內(nèi)容。燈亮表示1。6.程序計(jì)數(shù)器指示燈PC八個(gè)發(fā)光二極管(高四位為紅,低四位為綠),指示雙端口存儲(chǔ)器右端口地址。燈亮表示1。7.32位微命令指示燈CM3-CM032個(gè)紅色發(fā)光二極管,顯示從控制存儲(chǔ)器讀出的微命令的內(nèi)容。8.其他指示燈C、BUSYL#、BUSYR#C是進(jìn)位標(biāo)志指示燈。BUSYL#、BUSYR#分別是RAM左右端口忙指示燈。圖1.15指示燈圖1.16開關(guān)圖9.微動(dòng)開關(guān)CLR#、QD按一次CLR# 開關(guān),產(chǎn)生一個(gè)負(fù)的單脈沖CLR#,正的單脈沖CLR。CLR#對(duì)全機(jī)進(jìn)行復(fù)位。CLR#到時(shí)序和控制器的連接已經(jīng)在印制板上實(shí)現(xiàn),控制存儲(chǔ)器和數(shù)據(jù)通路部分不使用CLR#。按一次QD按鈕,產(chǎn)生一個(gè)正的啟動(dòng)脈沖QD和負(fù)的單脈沖QD#。QD使機(jī)器運(yùn)行。QD到時(shí)序電路的連接已在印制板上實(shí)現(xiàn)。10.單拍、單步開關(guān)DP、DBDP(單拍)、DB(單步)是兩種特殊的非連續(xù)工作方式。當(dāng)DP=1時(shí),計(jì)算機(jī)處于單拍工作方式,按一次QD按鈕,只發(fā)送一組時(shí)序信號(hào)T1-T4,執(zhí)行一條微指令。DB方式只對(duì)硬連線控制器適用,當(dāng)DB=1時(shí),按一次QD按鈕,發(fā)送一組W1-W3,執(zhí)行一條機(jī)器指令。注意:這兩個(gè)開關(guān)任何時(shí)刻只能有一個(gè)置1。當(dāng)DP=0且DB=0時(shí),TEC-5處于連續(xù)工作方式,按QD按鈕,TEC-5連續(xù)執(zhí)行雙端口RAM中存儲(chǔ)的程序。11.控制臺(tái)操作開關(guān)SWC、SWB、SWA 三個(gè)專用開關(guān)SWC、SWB、SWA定義了TEC-5實(shí)驗(yàn)系統(tǒng)的五個(gè)控制臺(tái)指令的功能??刂婆_(tái)操作開關(guān)SWC、SWB、SWA主要用于CPU組成與機(jī)器指令執(zhí)行實(shí)驗(yàn)。開關(guān)主要五個(gè)控制臺(tái)指令的定義如下: 表1.3控制臺(tái)工作方式SWCSWBSWA操作000啟動(dòng)程序(PR)001寫存儲(chǔ)器(WRM)010讀存儲(chǔ)器(RRM)011寫寄存器(WRF)100讀寄存器(RRF)在按復(fù)位按鈕CLR#后,TEC-5復(fù)位,根據(jù)SWC、SWB、SWA狀態(tài)來選擇工作方式。在控制臺(tái)工作方式,必須使DP=0,DB=0。啟動(dòng)程序(PR):按下復(fù)位按鈕CLR#后,微地址寄存器清零。這時(shí),置SWC=0、SWB=0、SWA=0,用數(shù)據(jù)開關(guān)SW7-SW0設(shè)置RAM中的程序首地址,按QD按鈕后,啟動(dòng)程序執(zhí)行。寫存儲(chǔ)器(WRM):按下復(fù)位按鈕CLR#,置SWC=0、SWB=0、SWA=1。①在SW7-SW0中置好存儲(chǔ)器地址,按QD按鈕將此地址打入AR。②在SW7-SW0置好數(shù)據(jù),按QD,將數(shù)據(jù)寫入AR指定的存儲(chǔ)器單元,這時(shí)AR加1。③返回②。依次進(jìn)行下去,直到按復(fù)位鍵CLR#為止。這樣就實(shí)現(xiàn)了對(duì)RAM的連續(xù)手動(dòng)寫入。這個(gè)控制臺(tái)操作的主要作用是向RAM中寫入自己編寫的程序和數(shù)據(jù)。讀存儲(chǔ)器(RRM):按下復(fù)位按鈕CLR#,置SWC=0、SWB=1、SWA=0。①在SW7-SW0中置好存儲(chǔ)器地址,按QD按鈕將此地址打入AR,RAM此地址單元的內(nèi)容讀至DBUS顯示。②按QD按鈕,這時(shí)AR加1,RAM新地址單元的內(nèi)容讀至DBUS顯示。③返回②。依次進(jìn)行下去,直到按復(fù)位鍵CLR#為止。這樣就實(shí)現(xiàn)了對(duì)RAM的連續(xù)讀出顯示。這個(gè)控制臺(tái)操作的主要作用是檢查寫入RAM的程序和數(shù)據(jù)是否正確。在程序執(zhí)行后檢查程序執(zhí)行的結(jié)果(在存儲(chǔ)器中的部分)是否正確。寄存器寫操作(WRF):按下復(fù)位按鈕CLR#,置SWC=0、SWB=1、SWA=1。①首先在SW7—SW0置好存儲(chǔ)器地址,按QD按鈕,則將此地址打入AR寄存器和PC寄存器。②在SW1、SW0置好寄存器選擇信號(hào)WR1、WR0,按QD按鈕,通過雙端口存儲(chǔ)器的右端口將WR1、WR0(即SW1、SW0)送到指令寄存器IR的低2位。③在SW7-SW0中置好要寫入寄存器的數(shù)據(jù);按QD按鈕,將數(shù)據(jù)寫入由WR1、WR0指定的寄存器。④返回②繼續(xù)執(zhí)行,直到按復(fù)位按鈕CLR#。這個(gè)控制臺(tái)操作主要在程序運(yùn)行前,向相關(guān)的通用寄存器中置入初始數(shù)據(jù)。寄存器讀操作(RRF):按下復(fù)位按鈕CLR#,置SWC=1、SWB=0、SWA=0。①首先在SW7—SW0置好存儲(chǔ)器地址,按QD按鈕,則將此地址打入AR寄存器和PC寄存器。②在SW3、SW2置好寄存器選擇信號(hào)RS1、RS0,按QD按鈕,通過雙端口存儲(chǔ)器的右端口將RS1、RS0(即SW3、SW2)送到指令寄存器IR的第3、2位。RS1、RS0選中的寄存器的數(shù)據(jù)讀出到DBUS上顯示出來。③返回②繼續(xù)下去,直到按復(fù)位鍵CLR#為止。這個(gè)控制臺(tái)操作的主要作用是在程序執(zhí)行前檢查寫入寄存器堆中的數(shù)據(jù)是否正確,在程序執(zhí)行后檢查程序執(zhí)行的結(jié)果(在寄存器堆中的部分)是否正確。九、硬連線控制器ispLSI1032 ispLSI1032是Lattice公司的1個(gè)在系統(tǒng)可編程器件,包含有6000個(gè)門,適用于設(shè)計(jì)大規(guī)模的數(shù)字邏輯與數(shù)字系統(tǒng)電路。在計(jì)算機(jī)模型實(shí)驗(yàn)中,它用作設(shè)計(jì)并實(shí)現(xiàn)硬連線控制器,代替出廠時(shí)提供的微程序控制器。它有1個(gè)下載插座,下載時(shí)下載電纜的一端插在下載插座上,另一端插在PC機(jī)并行口上,下載電纜將PC機(jī)和ispLSI1032連在一起。在PC機(jī)上運(yùn)行ispEXPERT工具軟件,輸入控制器的設(shè)計(jì)方案,進(jìn)行編譯、連接和適配,然后下載到ispLSI1032中去,就構(gòu)成了1個(gè)硬連線控制器。硬連線控制器和數(shù)據(jù)通路部分采用可插、拔的導(dǎo)線連接。LatticeLatticeispLSI1032E80LJIF527NN04第二章計(jì)算機(jī)組成原理實(shí)驗(yàn)2.1運(yùn)算器組成實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?.熟悉雙端口通用寄存器堆的讀寫操作。2.熟悉簡(jiǎn)單運(yùn)算器的數(shù)據(jù)傳送通路。3.驗(yàn)證運(yùn)算器74LS181的算術(shù)邏輯功能。4.按給定數(shù)據(jù),完成指定的算術(shù)、邏輯運(yùn)算。二、實(shí)驗(yàn)電路圖2.1示出了本實(shí)驗(yàn)所用的運(yùn)算器數(shù)據(jù)通路圖。參與運(yùn)算的數(shù)據(jù)首先通過實(shí)驗(yàn)臺(tái)操作板上的八個(gè)二進(jìn)制數(shù)據(jù)開關(guān)SW7-SW0來設(shè)置,然后輸入到雙端口通用寄存器堆RF中。RF(U30)由一個(gè)ispLSI1016實(shí)現(xiàn),功能上相當(dāng)于四個(gè)8位通用寄存器,用于保存參與運(yùn)算的數(shù)據(jù),運(yùn)算后的結(jié)果也要送到RF中保存。雙端口寄存器堆模塊的控制信號(hào)中,RS1、RS0用于選擇從B端口(右端口)讀出的通用寄存器,RD1、RD0用于選擇從A端口(左端口)讀出的通用寄存器。而WR1、WR0用于選擇寫入的通用寄存器。LDRi是寫入控制信號(hào),當(dāng)LDRi=1時(shí),數(shù)據(jù)總線DBUS上的數(shù)據(jù)在T3寫入由WR1、WR0指定的通用寄存器。RF的A、B端口分別與操作數(shù)暫存器DR1、DR2相連;另外,RF的B端口通過一個(gè)三態(tài)門連接到數(shù)據(jù)總線DBUS上,因而RF中的數(shù)據(jù)可以直接通過B端口送到DBUS上。DR1(U24)和DR2(U25)各由1片74LS273構(gòu)成,用于暫存參與運(yùn)算的數(shù)據(jù)。DR1接ALU的A輸入端口,DR2接ALU的B輸入端口。ALU(U31、U35)由兩片74LS181構(gòu)成,ALU的輸出通過一個(gè)三態(tài)門(74LS244)發(fā)送到數(shù)據(jù)總線DBUS上。實(shí)驗(yàn)臺(tái)上的八個(gè)發(fā)光二極管DBUS7-DBUS0顯示燈接在DBUS上,可以顯示輸入數(shù)據(jù)或運(yùn)算結(jié)果。另有一個(gè)指示燈C顯示運(yùn)算器進(jìn)位標(biāo)志信號(hào)狀態(tài)。圖中尾巴上帶粗短線標(biāo)記的信號(hào)都是控制信號(hào),其中S3、S2、S1、S0、M、Cn#、LDDR1、LDDR2、ALU_BUS#、SW_BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0都是電位信號(hào),在本次實(shí)驗(yàn)中用撥動(dòng)開關(guān)K0—K15來模擬;T2、T3為時(shí)序脈沖信號(hào),印制板上已連接到實(shí)驗(yàn)臺(tái)的時(shí)序電路。實(shí)驗(yàn)中進(jìn)行單拍操作,每次只產(chǎn)生一組T1、T2、T3、T4時(shí)序脈沖,需將實(shí)驗(yàn)臺(tái)上的DP、DB開關(guān)進(jìn)行正確設(shè)置。將DP開關(guān)置1,DB開關(guān)置0,每按一次QD按鈕,則順序產(chǎn)生T1、T2、T3、T4一組單脈沖。三、實(shí)驗(yàn)設(shè)備TEC-5計(jì)算機(jī)組成實(shí)驗(yàn)系統(tǒng)1臺(tái)邏輯測(cè)試筆一支(在TEC-5實(shí)驗(yàn)臺(tái)上)雙蹤示波器一臺(tái)(公用)萬用表一只(公用)四、實(shí)驗(yàn)任務(wù)按圖2.1所示,將運(yùn)算器模塊與實(shí)驗(yàn)臺(tái)操作板上的線路進(jìn)行連接。由于運(yùn)算器模塊內(nèi)部的連線已由印制板連好,故接線任務(wù)僅僅是完成數(shù)據(jù)開關(guān)、控制信號(hào)模擬開關(guān)、與運(yùn)算器模塊的外部連線。注意:為了建立清楚的整機(jī)概念,培養(yǎng)嚴(yán)謹(jǐn)?shù)目蒲心芰?,手工連線是絕對(duì)必要的。用開關(guān)SW7—SW0向通用寄存器堆RF內(nèi)的R0—R3寄存器置數(shù)。然后讀出R0—R3的內(nèi)容,在數(shù)據(jù)總線DBUS上顯示出來。驗(yàn)證ALU的正邏輯算術(shù)、邏輯運(yùn)算功能。令DR1=55H,DR2=0AAH,Cn#=1。在M=0和M=1兩種情況下,令S3—S0的值從0000B變到1111B,列表表示出實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)結(jié)果包含進(jìn)位C,進(jìn)位C由指示燈顯示。注意:進(jìn)位C是運(yùn)算器ALU最高位進(jìn)位Cn+4#的反,即有進(jìn)位為1,無進(jìn)位為0。五、實(shí)驗(yàn)要求做好實(shí)驗(yàn)預(yù)習(xí),掌握運(yùn)算器的數(shù)據(jù)傳輸通路及其功能特性,并熟悉本實(shí)驗(yàn)中所用的模擬開關(guān)的作用和使用方法。寫出實(shí)驗(yàn)報(bào)告,內(nèi)容是:實(shí)驗(yàn)?zāi)康摹0磳?shí)驗(yàn)任務(wù)3的要求,列表表示出實(shí)驗(yàn)結(jié)果。六、實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果(1)實(shí)驗(yàn)任務(wù)2的實(shí)驗(yàn)步驟和結(jié)果如下:(假定令R0=34H,R1=21H,R2=52H,R3=65H)置DP=1,DB=0,編程開關(guān)撥到正常位置。接線表如下:數(shù)據(jù)通路WR0WR1RS0RS1SW_BUS#RS_BUS#LDRi電平開關(guān)K0K1K2K3K4K5K6打開電源以下4條是將34H、21H、52H、65H分別寫入R0、R1、R2、R3置K0(WR0)=0,K1(WR1)=0,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7-SW0=34H。在DBUS上將觀察到DBUS=34H。按QD按鈕,將34H寫入R0。置K0(WR0)=1,K1(WR1)=0,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7—SW0=21H。在DBUS上將觀察到DBUS=21H。按QD按鈕,將21H寫入R1。置K0(WR0)=0,K1(WR1)=1,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7—SW0=52H。在DBUS上將觀察到DBUS=52H。按QD按鈕,將52H寫入R2。置K0(WR0)=1,K1(WR1)=1,K4(SW_BUS#)=0,K5(RS_BUS#)=1,K6(LDRi)=1,SW7—SW0=65H。在DBUS上將觀察到DBUS=65H。按QD按鈕,將65H寫入R3。以下4條是在DBUS總線上顯示R0、R1、R2、R3的值置K2(RS0)=0,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在DBUS上將觀察到DBUS=34H。置K2(RS0)=1,K3(RS1)=0,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在DBUS上將觀察到DBUS=21H。置K2(RS0)=0,K3(RS1)=1,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在DBUS上將觀察到DBUS=52H。置K2(RS0)=1,K3(RS1)=1,K4(SW_BUS#)=1,K5(RS_BUS#)=0,K6(LDRi)=0,在DBUS上將觀察到DBUS=65H。(2)實(shí)驗(yàn)任務(wù)3的實(shí)驗(yàn)步驟和實(shí)驗(yàn)結(jié)果如下:1.置DP=1,DB=0,編程開關(guān)撥到正常位置。 接線圖如下:數(shù)據(jù)通路WR0WR1RD0RD1RS0RS1LDRi電平開關(guān)K0K1K2K3K4K5K6數(shù)據(jù)通路LDDR1LDDR2S0S1S2S3M電平開關(guān)K7K7K8K9K10K11K12數(shù)據(jù)通路ALU_BUS#SW_BUS#電平開關(guān)K13K14數(shù)據(jù)通路的信號(hào)Cn#接VCC。打開電源以下2條是向R0寫入55H,向R1寫入0AAH。置K0(WR0)=0,K1(WR1)=0,K6(LDRi)=1,K13(ALU_BUS#)=1,K14(SW_BUS#)=0。置SW7-SW0為55H,按QD按鈕,將55H寫入R0。置K0(WR0)=1,K1(WR1)=0,K6(LDRi)=1,K13(ALU_BUS#)=1,K14(SW_BUS#)=0。置SW7-SW0為0AAH,按QD按鈕,將0AAH寫入R1。以下1條是將R0寫入DR1,將R1寫入DR2。置K2(RD0)=0,K3(RD1)=0,K4(RS0)=1,K5(RS1)=0,K6(LDRi)=0,K7(LDDR1和LDDR2)=1。按QD按鈕,將R0寫入DR1,將R1寫入DR2。這時(shí)DR1=55H,DR2=0AAH。以下2條是M=H時(shí)進(jìn)行邏輯運(yùn)算。置K6(LDRi)=1,K7(LDR1和LDR2)=0,K8(S0)=0,K9(S1)=0,K10(S2)=0,K11(S3)=0,K12(M)=1,K13(ALU_BUS#)=0,K14(SW_BUS#)=1。在數(shù)據(jù)總線DBUS上觀察到邏輯運(yùn)算結(jié)果0AAH。按QD按鈕,觀察到進(jìn)位C為0。其他開關(guān)設(shè)置都不變,只改變K8(S0)、K9(S1)、K10(S2)、K11(S3)的設(shè)置,觀察其他15種邏輯運(yùn)算結(jié)果,并按QD按鈕,觀察進(jìn)位C。以下2條是M=L時(shí)進(jìn)行算術(shù)運(yùn)算。置K6(LDRi)=1,K7(LDR1和LDR2)=1,K8(S0)=0,K9(S1)=0,K10(S2)=0,K11(S3)=0,K12(M)=0,K13(ALU_BUS#)=0,K14(SW_BUS#)=1。在數(shù)據(jù)總線DBUS上觀察到算術(shù)運(yùn)算結(jié)果為55H。按QD按鈕,觀察到進(jìn)位C為0。其他開關(guān)設(shè)置都不變,只改變K8(S0)、K9(S1)、K10(S2)、K11(S3)的設(shè)置,觀察其他15種算術(shù)運(yùn)算結(jié)果,并按QD按鈕,觀察進(jìn)位C。實(shí)驗(yàn)結(jié)果如下: 表2.1實(shí)驗(yàn)任務(wù)3實(shí)驗(yàn)結(jié)果(DR1=55H,DR2=0AAH工作方式輸入選擇S3S2S1S0邏輯運(yùn)算(M=H,Cn#=1)算術(shù)運(yùn)算(M=L,Cn#=1)運(yùn)算結(jié)果進(jìn)位C運(yùn)算結(jié)果進(jìn)位C00000AAH055H0000100H00FFH000100AAH055H0001100H00FFH001000FFH00AAH0010155H054H101100FFH00AAH0011155H054H110000AAH055H0100100H00FFH010100AAH055H0101100H00FFH011000FFH00AAH0110155H054H111100FFH00AAH0111155H054H1

2.2雙端口存儲(chǔ)器原理實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康牧私怆p端口靜態(tài)存儲(chǔ)器IDT7132的工作特性及其使用方法了解半導(dǎo)體存儲(chǔ)器怎樣存儲(chǔ)和讀取數(shù)據(jù)。了解雙端口存儲(chǔ)器怎樣并行讀寫,并分析沖突產(chǎn)生的情況。二、實(shí)驗(yàn)電路圖2.2示出了雙端口存儲(chǔ)器的實(shí)驗(yàn)電路圖。這里使用一片IDT7132(2048×8位),兩個(gè)端口的地址輸入A8-A10引腳接地,因此實(shí)際使用的存儲(chǔ)容量為256字節(jié)。左端口的數(shù)據(jù)輸出接數(shù)據(jù)總線DBUS,右端口的數(shù)據(jù)輸出端接指令總線IBUS。IDT7132有六個(gè)控制引腳:CEL#、LR/W#、OEL#、CER#、RR/W#、OER#。CEL#、LR/W#、OEL#控制左端口讀、寫操作;CER#、RR/W#、OER#控制右端口的讀寫操作。CEL#為左端口選擇引腳,低電平有效;當(dāng)CEL#=1時(shí),禁止對(duì)左端口的讀、寫操作。LR/W#控制對(duì)左端口的讀寫。當(dāng)LR/W#=1時(shí),左端口進(jìn)行讀操作;LR/W#=0時(shí),左端口進(jìn)行寫操作。OEL#的作用等同于三態(tài)門,當(dāng)OEL#=0時(shí),允許左端口讀出的數(shù)據(jù)送到數(shù)據(jù)總線DBUS上;當(dāng)OEL#=1時(shí),禁止左端口的數(shù)據(jù)放到DBUS。因此,為便于理解,在以后的實(shí)驗(yàn)中,我們將OEL#引腳稱為RAM_BUS#??刂朴叶丝诘娜齻€(gè)引腳與左端口的三個(gè)完全類似,這里不再贅述。有兩點(diǎn)需要說明:(1)右端口讀出的數(shù)據(jù)(更確切的說法是指令)放到指令總線IBUS上而不是數(shù)據(jù)總線DBUS,然后送到指令寄存器IR。(2)所有數(shù)據(jù)/指令的寫入都使用左端口,右端口作為指令端口,不需要進(jìn)行數(shù)據(jù)的寫入,因此我們將右端口處理成一個(gè)只讀端口,已將RR/W#固定接高電平,OER#固定接地。這兩點(diǎn)請(qǐng)同學(xué)好好理解。存儲(chǔ)器左端口的地址寄存器AR和右端口的地址寄存器PC都使用2片74LS163,具有地址遞增的功能。同時(shí),PC在以后的實(shí)驗(yàn)當(dāng)中也起到程序計(jì)數(shù)器的作用。左右端口的數(shù)據(jù)和左右端口的地址都有特定的顯示燈顯示。存儲(chǔ)器地址和寫入數(shù)據(jù)都由實(shí)驗(yàn)臺(tái)操作板上的二進(jìn)制開關(guān)分時(shí)給出。當(dāng)LDAR#=0時(shí),AR在T2時(shí)從DBUS接收來自SW7-SW0的地址;當(dāng)AR+1=1時(shí),在T2存儲(chǔ)器地址加1。LDAR#和AR+1不能同時(shí)有效。在下一個(gè)時(shí)鐘周期,令CEL#=0,LR/W#=0,則在T2的上升沿開始進(jìn)行寫操作,將SW7-SW07設(shè)置的數(shù)據(jù)經(jīng)DBUS寫入存儲(chǔ)器。三、實(shí)驗(yàn)設(shè)備TEC-5計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)1臺(tái)邏輯測(cè)試筆一支(在TEC-5實(shí)驗(yàn)臺(tái)上)雙蹤示波器一臺(tái)(公用)萬用表一只(公用)四、實(shí)驗(yàn)任務(wù)按圖7所示,將有關(guān)控制信號(hào)和二進(jìn)制開關(guān)對(duì)應(yīng)接好,仔細(xì)復(fù)查一遍,然后接通電源。將二進(jìn)制數(shù)碼開關(guān)SW7-SW0(SW0為最低位)設(shè)置為00H,將其作為存儲(chǔ)器地址置入AR;然后將二進(jìn)制開關(guān)的00H作為數(shù)據(jù)寫入RAM中。用這個(gè)方法,向存儲(chǔ)器的10H、20H、30H、40H單元依次寫入10H、20H、30H和40H。使用存儲(chǔ)器的左端口,依次將第2步存入的5個(gè)數(shù)據(jù)讀出,觀察各單元中存入的數(shù)據(jù)是否正確。記錄數(shù)據(jù)。注意:禁止兩個(gè)或兩個(gè)以上的數(shù)據(jù)源同時(shí)向數(shù)據(jù)總線上發(fā)送數(shù)據(jù)!在本實(shí)驗(yàn)中,當(dāng)存儲(chǔ)器進(jìn)行讀出操作時(shí),務(wù)必將SW_BUS#的三態(tài)門關(guān)閉。而當(dāng)向AR送入數(shù)據(jù)時(shí),雙端口存儲(chǔ)器也不能被選中。通過存儲(chǔ)器的右端口,將第2步存入的5個(gè)數(shù)據(jù)讀出,觀察結(jié)果是否與第3步結(jié)果相同。記錄數(shù)據(jù)。雙端口存儲(chǔ)器的并行讀寫和訪問沖突。將CEL#、CER#同時(shí)置為0,使存儲(chǔ)器的左右端口同時(shí)被選中。當(dāng)AR和PC的地址不相同時(shí),沒有訪問沖突;地址相同時(shí),由于都是讀操作,也不會(huì)沖突。如果左右端口地址相同,且一個(gè)進(jìn)行讀操作,一個(gè)進(jìn)行寫操作,就會(huì)發(fā)生沖突。檢測(cè)沖突的方法:觀察兩個(gè)端口的“忙”信號(hào)輸出指示燈BUSYL#和BUSYR#。BUSYL#/BUSYR#燈亮(為0)時(shí),不一定發(fā)生沖突,但發(fā)生沖突時(shí),BUSYL#/BUSYR#必定亮。五、實(shí)驗(yàn)要求做好實(shí)驗(yàn)預(yù)習(xí),掌握IDT7132雙端口存儲(chǔ)器的功能特性和使用方法。寫出實(shí)驗(yàn)報(bào)告,內(nèi)容是:實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)任務(wù)3的數(shù)據(jù)表格。實(shí)驗(yàn)任務(wù)4的數(shù)據(jù)表格。實(shí)驗(yàn)任務(wù)5的檢測(cè)結(jié)果。六、實(shí)驗(yàn)步驟及結(jié)果(1)置DP=1,DB=0,撥動(dòng)編程開關(guān)到正常位置。(2)接線圖數(shù)據(jù)通路LDAR#LDPC#CEL#LR/W#RAM_BUS#CER#SW_BUS#電平開關(guān)K0K1K2K3K4K5K6 AR+1和PC+1兩個(gè)信號(hào)接地。(3)實(shí)驗(yàn)任務(wù)2,將00H、10H、20H、30H、40H分別寫入存儲(chǔ)器單元00H、10H、20H、30H、40H。1.令K0(LDAR#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按鈕,將00H打入地址寄存器AR。2.令K0(LDAR#)=1,K2(CEL#)=0,K3(LR/W#)=0,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按鈕,將00H寫入存儲(chǔ)器00H單元。重復(fù)1和2,只是改變SW7_SW0分別為10H、20H、30H、40H,分別將10H、20H、30H、40H寫入存儲(chǔ)器單元10H、20H、30H、40H。實(shí)驗(yàn)任務(wù)3,從左端口讀出存儲(chǔ)器00H、10H、20H、30H、40H的內(nèi)容。1.令K0(LDAR#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按鈕,將00H打入地址寄存器AR。2.先令K6(SW_BUS#)=1,再令K2(CEL#)=0,K3(LR/W#)=1,K4(RAM_BUS#)=0,K5(CER#)=1,則在數(shù)據(jù)總線DBUS上顯示出存儲(chǔ)器單元00H的內(nèi)容00H。3.重復(fù)1和2的方法,只是改變1中的SW7_SW0的值為10H、20H、30H、40H,則可在數(shù)據(jù)總線DBUS上觀察到存儲(chǔ)器單元10H、20H、30H、40H的內(nèi)容為10H、20H、30H、40H。實(shí)驗(yàn)任務(wù)4,從右端口讀出存儲(chǔ)器00H、10H、20H、30H、40H的內(nèi)容。1.令K1(LDPC#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0=00H,按QD按鈕,將00H打入PC。2.令K6(SW_BUS#)=1,K2(CEL#)=1,K5(CER#)=0,則在指令總線IBUS上顯示出存儲(chǔ)器單元00H的內(nèi)容00H。3.重復(fù)1和2的方法,只是改變1中的SW7_SW0的值為10H、20H、30H、40H,則可在指令總線IBUS上觀察到存儲(chǔ)器單元10H、20H、30H、40H的內(nèi)容為10H、20H、30H、40H。實(shí)驗(yàn)任務(wù)5,雙端口存儲(chǔ)器的并行讀寫和訪問沖突。1.令K0(LDAR#)=0,K1(LDPC#)=0,K2(CEL#)=1,K4(RAM_BUS#)=1,K5(CER#)=1,K6(SW_BUS#)=0。置SW7-SW0為30H。按QD按鈕,將30H打入地址寄存器AR和程序計(jì)數(shù)器PC。2.置K6(SW_BUS#)=1,K3(LR/W#)=1,K4(RAM_BUS#)=0。先令K5(CER#)=0,K2(CEL#)=1,這時(shí)BUSYL#指示燈不亮。令K2(CEL#)=0,這時(shí)BUSYL#指示燈亮,表示左端口在右端口之后和右端口同時(shí)對(duì)同一個(gè)地址讀,數(shù)據(jù)總線DBUS顯示30H,指令總線IBUS也顯示30H。再令K2(CEL#)=1,BUSYL#指示燈恢復(fù)不亮。3.置K6(SW_BUS#)=1,K3(LR/W#)=1,K4(RAM_BUS#)=0。先令K2(CEL#)=0,K5(CER#)=1,這時(shí)BUSYR#指示燈不亮。令K5(CER#)=0,這時(shí)BUSYR#指示燈亮,表示右端口在左端口之后和左端口同時(shí)對(duì)同一個(gè)地址讀,數(shù)據(jù)總線DBUS顯示30H,指令總線IBUS也顯示30H。再令K5(CER#)=1,BUSYR#指示燈恢復(fù)不亮。

2.3數(shù)據(jù)通路組成實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康倪M(jìn)一步熟悉計(jì)算機(jī)的數(shù)據(jù)通路。將雙端口通用寄存器堆和雙端口存儲(chǔ)器模塊連接,構(gòu)成新的數(shù)據(jù)通路。掌握數(shù)字邏輯電路中的一般規(guī)律,以及排除故障的一般原則和方法。鍛煉分析問題和解決問題的能力,在出現(xiàn)故障的情況下,獨(dú)立分析故障現(xiàn)象,并排除故障。二、實(shí)驗(yàn)電路數(shù)據(jù)通路實(shí)驗(yàn)電路圖如圖2.3所示。它是將雙端口存儲(chǔ)器模塊和雙端口通用寄存器堆模塊連接在一起形成的。存儲(chǔ)器的指令端口(右端口)不參與本次實(shí)驗(yàn)。通用寄存器堆連接運(yùn)算器模塊,本次實(shí)驗(yàn)涉及其中的DR1。由于雙端口存儲(chǔ)器是三態(tài)輸出,因而可以直接連接到DBUS上。此外,DBUS還連接著通用寄存器堆。這樣,寫入存儲(chǔ)器的數(shù)據(jù)由通用寄存器提供,從RAM中讀出的數(shù)據(jù)也可以放到通用寄存器堆中保存。本實(shí)驗(yàn)的各模塊在以前的實(shí)驗(yàn)中都已介紹,請(qǐng)參閱前面相關(guān)章節(jié)。注意實(shí)驗(yàn)中的控制信號(hào)與模擬它們的二進(jìn)制開關(guān)的連接。三、實(shí)驗(yàn)設(shè)備TEC-5計(jì)算機(jī)組成原理實(shí)驗(yàn)系統(tǒng)1臺(tái)邏輯測(cè)試筆一支(在TEC-5實(shí)驗(yàn)臺(tái)上)雙蹤示波器一臺(tái)(公用)萬用表一只(公用)四、故障的分析與排除數(shù)字電路中難免要出現(xiàn)這樣或那樣的故障。有了故障迅速加以診斷并排除,使電路能正常運(yùn)行,這是實(shí)際工作中經(jīng)常遇到的事。因此,學(xué)會(huì)分析電路故障,提高排除故障的能力,是很有必要的。就數(shù)字電路的故障性質(zhì)而言,大體有兩大類:一類是設(shè)計(jì)中的錯(cuò)誤或不當(dāng)造成的故障;另一類是元件損壞或性能不良造成的。設(shè)計(jì)錯(cuò)誤造成的故障常見的設(shè)計(jì)錯(cuò)誤有邏輯設(shè)計(jì)錯(cuò)誤和布線錯(cuò)誤。對(duì)于布線錯(cuò)誤,只要能仔細(xì)的進(jìn)行檢查就可以排除。要較快的判斷出布線錯(cuò)誤的位置,可以通過對(duì)某個(gè)預(yù)知特性點(diǎn)的觀察檢測(cè)出來。例如,該點(diǎn)的信號(hào)不是預(yù)期的特性,則可以往前一級(jí)查找。常見的布線錯(cuò)誤是漏線和布錯(cuò)線。漏線的情況往往是輸入端未連線或浮空。浮空輸入可用三狀態(tài)邏輯測(cè)試筆或電壓表檢測(cè)出來。對(duì)于設(shè)計(jì)錯(cuò)誤,需要在設(shè)計(jì)中加以留心和克服。首先要遵循的一個(gè)原則是:為使系統(tǒng)可靠的工作,從系統(tǒng)的初始狀態(tài)開始,應(yīng)該把線路置于信號(hào)的穩(wěn)定電平上,而不是置于信號(hào)的前沿或后沿;其次沒有出口的懸空狀態(tài)是不允許存在的;另外設(shè)計(jì)中應(yīng)當(dāng)避免靜態(tài)和動(dòng)態(tài)的競(jìng)爭(zhēng)冒險(xiǎn);最后,為便于維修,設(shè)計(jì)中應(yīng)考慮把系統(tǒng)設(shè)計(jì)成具有單步工作的能力。常見的設(shè)計(jì)錯(cuò)誤包括對(duì)于中小規(guī)模集成電路中不用的輸入端的接法。對(duì)一個(gè)不用的輸入端常忘了接,因而輸入端相當(dāng)于接了有效的邏輯“1”電平。建議將所有不用的“與”門輸入端統(tǒng)一接到一個(gè)邏輯“1”電平上,將所有不用的“或”門輸入端統(tǒng)一接到一個(gè)邏輯“0”電平上。計(jì)數(shù)器不計(jì)數(shù)和寄存器不寄存信息的問題常常就是由不用的輸入端進(jìn)來的干擾信號(hào)引起的。元件損壞造成的故障一個(gè)數(shù)字系統(tǒng),即使邏輯設(shè)計(jì)和布線都正確無誤,但如果使用的元件損壞或性能不良,也會(huì)造成系統(tǒng)的故障。這種故障只要更換元件,就能恢復(fù)正常運(yùn)行。除了元件損壞或性能不良之外,數(shù)字系統(tǒng)的故障還可能由于虛焊、噪聲等原因造成。許多最初是間歇性故障,但最終還是會(huì)變成固定性故障。這種故障不是固定的邏輯高電平,就是固定的邏輯低電平,所以通常稱之為“邏輯故障”。實(shí)驗(yàn)邏輯測(cè)試筆和邏輯脈沖筆(邏輯脈沖產(chǎn)生器)可以方便地查找數(shù)字電路中的邏輯故障。一種方法是先使用邏輯測(cè)試筆檢測(cè)關(guān)鍵信號(hào)(如時(shí)鐘、啟動(dòng)、移位、復(fù)位等)丟失的地方,這樣就把故障隔離到一個(gè)小范圍內(nèi)。有了故障的大概范圍以后,去掉內(nèi)部時(shí)鐘脈沖,改用邏輯脈沖筆向特定的電路節(jié)點(diǎn)施加激勵(lì)信號(hào),觀察輸出端的狀態(tài)。有了提供激勵(lì)的邏輯脈沖筆和響應(yīng)激勵(lì)的邏輯測(cè)試筆,可以很容易地檢查被懷疑的器件的真值表,從而探查出故障地點(diǎn)。另一種尋找故障的方法,是預(yù)先隔離故障。進(jìn)行的方法如下:從電路始端送入脈沖,在終端檢測(cè)響應(yīng)。如果信號(hào)未能正確送達(dá),就對(duì)每一串電路用同樣的方法檢查。反復(fù)進(jìn)行,就能將故障點(diǎn)隔離出來。五、實(shí)驗(yàn)任務(wù)將實(shí)驗(yàn)電路與控制臺(tái)的有關(guān)信號(hào)進(jìn)行連接。用8位數(shù)據(jù)開關(guān)SW7-SW0向RF中的四個(gè)通用寄存器分別置入以下數(shù)據(jù):R0=0FH、R1=0F0H、R2=55H、R3=0AAH。用8位數(shù)據(jù)開關(guān)向AR送入地址0FH,然后將R0中的數(shù)據(jù)0FH寫入雙端口存儲(chǔ)器中。用同樣的方法,依次將R1、R2、R3中的數(shù)據(jù)分別置入RAM的0F0H、55H、0AAH單元。分別將RAM的0AAH單元數(shù)據(jù)寫入R0,55H單元數(shù)據(jù)寫入R1,0F0H單元數(shù)據(jù)寫入R2,0FH單元數(shù)據(jù)寫入R3。然后將R0-R3中的數(shù)據(jù)讀出,驗(yàn)證數(shù)據(jù)的正確性,并記錄數(shù)據(jù)。六、實(shí)驗(yàn)要求做好實(shí)驗(yàn)預(yù)習(xí),掌握實(shí)驗(yàn)電路的數(shù)據(jù)通路特點(diǎn)和通用寄存器堆的功能特性。寫出實(shí)驗(yàn)報(bào)告,內(nèi)容是:實(shí)驗(yàn)?zāi)康?。寫出詳?xì)的實(shí)驗(yàn)步驟,記錄實(shí)驗(yàn)數(shù)據(jù)。其他值得討論的問題。七、實(shí)驗(yàn)步驟及結(jié)果(1)接線數(shù)據(jù)通路RS0RS1RD0RD1WR0WR1LDRiLDDR1模擬開關(guān)K0K1K2K3K4K5K6K7數(shù)據(jù)通路RS_BUS#SW_BUS#ALU_BUS#RAM_BUS#LR/W#CEL#LDAR#模擬開關(guān)K8K9K10K11K12K13K14數(shù)據(jù)通路AR+1CER#Cn#MS0S1S2S3模擬開關(guān)地VCCVCC地地地地地(2)用8位數(shù)據(jù)開關(guān)SW7-SW0向RF中的四個(gè)通用寄存器分別置入以下數(shù)據(jù):R0=0FH、R1=0F0H、R2=55H、R3=0AAH。1.令K4(WR0)=0,K5(WR1)=0,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1。置SW7-SW0=0FH,按QD按鈕,將0FH寫入R0。2.令K4(WR0)=1,K5(WR1)=0,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1。置SW7-SW0=0F0H,按QD按鈕,將0F0H寫入R1。3.令K4(WR0)=0,K5(WR1)=1,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1。置SW7-SW0=55H,按QD按鈕,將55H寫入R2。4.令K4(WR0)=1,K5(WR1)=1,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1。置SW7-SW0=0AAH,按QD按鈕,將0AAH寫入R3。(3)用8位數(shù)據(jù)開關(guān)向AR送入地址0FH,然后將R0中的數(shù)據(jù)0FH寫入雙端口存儲(chǔ)器中。用同樣的方法,依次將R1、R2、R3中的數(shù)據(jù)分別置入RAM的0F0H、55H、0AAH單元。1.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0FH,按QD按鈕,將0FH寫入地址寄存器AR。 令K2(RD0)=0,K3(RD1)=0,K6(LDRi)=0,K7(LDDR1)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K14(LDAR#)=1,K13(CEL#)=1。按QD按鈕,將R0的數(shù)據(jù)送DR1,DR1中的數(shù)據(jù)通過運(yùn)算器和ALU_BUS三態(tài)門送數(shù)據(jù)總線DBUS,DBUS應(yīng)顯示0FH。 令K6(LDRi)=0,K7(LDDR1)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K12(LR/W#)=0,K14(LDAR#)=1,K13(CEL#)=0。按QD按鈕,將DBUS上的數(shù)據(jù)0FH寫入AR指定的存儲(chǔ)器單元0FH。2.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0F0H,按QD按鈕,將0F0H寫入地址寄存器AR。 令K2(RD0)=1,K3(RD1)=0,K6(LDRi)=0,K7(LDDR1)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K14(LDAR#)=1,K13(CEL#)=1。按QD按鈕,將R1的數(shù)據(jù)送DR1,DR1中的數(shù)據(jù)通過運(yùn)算器和ALU_BUS三態(tài)門送數(shù)據(jù)總線DBUS,DBUS應(yīng)顯示0F0H。 令K6(LDRi)=0,K7(LDDR1)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K12(LR/W#)=0,K14(LDAR#)=1,K13(CEL#)=0。按QD按鈕,將DBUS上的數(shù)據(jù)0F0H寫入AR指定的存儲(chǔ)器單元0F0H。3.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=55H,按QD按鈕,將55H寫入地址寄存器AR。 令K2(RD0)=0,K3(RD1)=1,K6(LDRi)=0,K7(LDDR1)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K14(LDAR#)=1,K13(CEL#)=1。按QD按鈕,將R2的數(shù)據(jù)送DR1,DR1中的數(shù)據(jù)通過運(yùn)算器和ALU_BUS三態(tài)門送數(shù)據(jù)總線DBUS,DBUS應(yīng)顯示55H。 令K6(LDRi)=0,K7(LDDR1)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K12(LR/W#)=0,K14(LDAR#)=1,K13(CEL#)=0。按QD按鈕,將DBUS上的數(shù)據(jù)55H寫入AR指定的存儲(chǔ)器單元55H。4.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0AAH,按QD按鈕,將0AAH寫入地址寄存器AR。 令K2(RD0)=1,K3(RD1)=1,K6(LDRi)=0,K7(LDDR1)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K14(LDAR#)=1,K13(CEL#)=1。按QD按鈕,將R3的數(shù)據(jù)送DR1,DR1中的數(shù)據(jù)通過運(yùn)算器和ALU_BUS三態(tài)門送數(shù)據(jù)總線DBUS,DBUS應(yīng)顯示0AAH。 令K6(LDRi)=0,K7(LDDR1)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=0,K11(RAM_BUS#)=1,K12(LR/W#)=0,K14(LDAR#)=1,K13(CEL#)=0。按QD按鈕,將DBUS上的數(shù)據(jù)0AAH寫入AR指定的存儲(chǔ)器單元0AAH。(4)分別將RAM的0AAH單元數(shù)據(jù)寫入R0,55H單元數(shù)據(jù)寫入R1,0F0H單元數(shù)據(jù)寫入R2,0FH單元數(shù)據(jù)寫入R3。1.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0AAH,按QD按鈕,將0AAH寫入地址寄存器AR。令K4(WR0)=0,K5(WR1)=0,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=0,K12(LR/W#)=1,K13(CEL#)=0,K14(LDAR#)=1。按QD按鈕,將AR指定的存儲(chǔ)器地址0AAH單元的內(nèi)容0AAH讀出,然后寫入寄存器R0。2.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=55H,按QD按鈕,將55H寫入地址寄存器AR。令K4(WR0)=1,K5(WR1)=0,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=0,K12(LR/W#)=1,K13(CEL#)=0,K14(LDAR#)=1。按QD按鈕,將AR指定的存儲(chǔ)器地址55H單元的內(nèi)容55H讀出,然后寫入寄存器R1。3.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0F0H,按QD按鈕,將0F0H寫入地址寄存器AR。令K4(WR0)=0,K5(WR1)=1,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=0,K12(LR/W#)=1,K13(CEL#)=0,K14(LDAR#)=1。按QD按鈕,將AR指定的存儲(chǔ)器地址0F0H單元的內(nèi)容0F0H讀出,然后寫入寄存器R2。4.令K6(LDRi)=0,K8(RS_BUS#)=1,K9(SW_BUS#)=0,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0。置SW7-SW0=0FH,按QD按鈕,將0FH寫入地址寄存器AR。令K4(WR0)=1,K5(WR1)=1,K6(LDRi)=1,K8(RS_BUS#)=1,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=0,K12(LR/W#)=1,K13(CEL#)=0,K14(LDAR#)=1。按QD按鈕,將AR指定的存儲(chǔ)器地址0FH單元的內(nèi)容0FH讀出,然后寫入寄存器R3。(5)校驗(yàn)結(jié)果1.令K0(RS0)=0,K1(RS1)=0,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,讀出R0的內(nèi)容在數(shù)據(jù)總線上。數(shù)據(jù)總線DBUS指示燈應(yīng)為0AAH。2.令K0(RS0)=1,K1(RS1)=0,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,讀出R1的內(nèi)容在數(shù)據(jù)總線上。數(shù)據(jù)總線DBUS指示燈應(yīng)為55H。3.令K0(RS0)=0,K1(RS1)=1,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,讀出R2的內(nèi)容在數(shù)據(jù)總線上。數(shù)據(jù)總線DBUS指示燈應(yīng)為0F0H。4.令K0(RS0)=1,K1(RS1)=1,K6(LDRi)=0,K8(RS_BUS#)=0,K9(SW_BUS#)=1,K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,讀出R3的內(nèi)容在數(shù)據(jù)總線上。數(shù)據(jù)總線DBUS指示燈應(yīng)為0FH。

2.4常規(guī)型微程序控制器組成實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康恼莆諘r(shí)序發(fā)生器的組成原理。掌握微程序控制器的組成原理。二、實(shí)驗(yàn)電路時(shí)序發(fā)生器本實(shí)驗(yàn)所用的時(shí)序電路見圖2.4。電路由一個(gè)500KHz晶振、2片GAL22V10、一片74LS390組成,可產(chǎn)生兩級(jí)等間隔時(shí)序信號(hào)T1-T4、W1-W3,其中一個(gè)W由一輪T1-T4組成,相當(dāng)于一個(gè)微指令周期或硬連線控制器的一拍,而一輪W1-W3可以執(zhí)行硬連線控制器的一條機(jī)器指令。另外,供數(shù)字邏輯實(shí)驗(yàn)使用的時(shí)鐘由MF經(jīng)一片74LS390分頻后產(chǎn)生。圖2.4時(shí)序信號(hào)發(fā)生器本次實(shí)驗(yàn)不涉及硬連線控制器,因此時(shí)序發(fā)生器中產(chǎn)生W1-W3的部分也可根據(jù)需要放到硬連線控制器實(shí)驗(yàn)中介紹。產(chǎn)生時(shí)序信號(hào)T1-T4的功能集成在圖中左邊的一片GAL22V10中,另外它還產(chǎn)生節(jié)拍信號(hào)W1-W3的控制時(shí)鐘CLK1。該芯片的邏輯功能用ABEL語言實(shí)現(xiàn)。其源程序如下:MODULETIMER1TITLE'CLOCKGENERATORT1-T4' CLK=.C.;"INPUT MF,CLR,QD,DP,TJ,DBPIN1..6; W3PIN7;"OUTPUT T1,T2,T3,T4PIN15..18ISTYPE'REG'; CLK1PIN14ISTYPE'COM'; QD1,QD2,QDRPINISTYPE'REG'; ACTPINISTYPE'COM'; S=[T1,T2,T3,T4,QD1,QD2,QDR];EQUATIONS QD1:=QD; QD2:=QD1; ACT=QD1&!QD2; QDR:=CLR&QD#CLR&QDR; T1:=CLR&T4&ACT#CLR&T4&!(DP#TJ#DB&W3)&QDR; T2:=CLR&T1; T3:=CLR&T2; T4:=!CLR#T3#T4&!ACT&(DP#TJ#DB&W3)#!QDR; CLK1=T1#!CLR&MF; S.CLK=MF;END節(jié)拍電位信號(hào)W1-W3只在硬連線控制器中使用,產(chǎn)生W信號(hào)的功能集成在右邊一片GAL22V10中,用ABEL語言實(shí)現(xiàn)。其源程序如下:MODULETIMER2//頭部TITLE'CLOCKGENERATORW1-W3'DECLARATIONS//說明部 CLK=.C.;"INPUT CLK1,CLR,SKIPPIN1..3;"OUTPUT W1,W2,W3PIN16..18ISTYPE'REG'; W=[W1,W2,W3];EQUATIONS//邏輯描述部 W1:=CLR&W3; W2:=CLR&W1&!SKIP; W3:=!CLR#W2#W1&SKIP; W.CLK=CLK1;ENDTIMER2//結(jié)束部左邊GAL的時(shí)鐘輸入MF是晶振的輸出,頻率為500KHz。T1-T4的脈寬為2μs。CLR實(shí)際上是控制臺(tái)的CLR#信號(hào),因?yàn)锳BEL語言的書寫關(guān)系改為CLR,仍為低有效。CLR#=0將系統(tǒng)復(fù)位,此時(shí)時(shí)序停在T4、W3,微程序地址為000000B。建議每次實(shí)驗(yàn)臺(tái)加電后,先按CLR#復(fù)位一次。實(shí)驗(yàn)臺(tái)上CLR#到時(shí)序電路的連接已連好。對(duì)時(shí)序發(fā)生器TJ輸入引腳的連接要慎重,當(dāng)不需要暫停微程序的運(yùn)行時(shí),將它接地;如果需要的話,將它與微程序控制器的輸出微命令TJ相連。QD(啟動(dòng))是單脈沖信號(hào),在GAL中用時(shí)鐘MF對(duì)它進(jìn)行了同步,產(chǎn)生QD1和QD2。ACT表達(dá)式為QD1&!QD2,脈寬為2μs。QDR是運(yùn)行標(biāo)志,QD信號(hào)使其置1,CLR#將其置0。DB(單步)、DP(單拍)是來自實(shí)驗(yàn)臺(tái)的二進(jìn)制開關(guān)模擬信號(hào)。當(dāng)TJ=0、DB=0、DP=0時(shí),一旦按下QD鍵,時(shí)序信號(hào)T1-T4周而復(fù)始的發(fā)送出去,此時(shí)機(jī)器處于連續(xù)運(yùn)行狀態(tài)。當(dāng)DP=1、TJ=0、DP=0時(shí),按下QD鍵,機(jī)器將處于單拍運(yùn)行狀態(tài),此時(shí)只發(fā)送一組T1、T2、T3、T4時(shí)序信號(hào)就停機(jī),此時(shí)機(jī)器時(shí)序停在T4。利用單拍方式,每次只讀出一條微指令,因而可以觀察微指令代碼以及當(dāng)前的執(zhí)行結(jié)果。當(dāng)機(jī)器連續(xù)運(yùn)行時(shí),如果TJ=1,也會(huì)使機(jī)器中斷運(yùn)行,時(shí)序停在T4。DB、SKIP、CLK1信號(hào)以及W1-W3節(jié)拍電位信號(hào)都是針對(duì)硬連線控制器的。硬連線控制器執(zhí)行一條機(jī)器指令需要一組W1-W3時(shí)序信號(hào)。CLK1是產(chǎn)生W信號(hào)的控制時(shí)鐘,由左邊一片GAL產(chǎn)生。DB信號(hào)就是控制每次發(fā)送一組W1-W3后停機(jī)。執(zhí)行某些機(jī)器指令不需要一組完整的W信號(hào),SKIP信號(hào)就是用來跳過本指令剩余的W節(jié)拍信號(hào)的。數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論