計算機組成原理課程設計—硬布線控制器的設計與實現_第1頁
計算機組成原理課程設計—硬布線控制器的設計與實現_第2頁
計算機組成原理課程設計—硬布線控制器的設計與實現_第3頁
計算機組成原理課程設計—硬布線控制器的設計與實現_第4頁
計算機組成原理課程設計—硬布線控制器的設計與實現_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、硬布線控制器的設計與調試一、教學目的、任務與實驗設備教學目的1 .融會貫通計算機組成原理課程和計算機系統結構課程的內容,通過知識的綜合運用,加深對計算機系統各模塊的工作原理及相互聯系的認識,特別是對硬布線控制器的認識。2 .學習運用ISP(在系統編程)技術進行設計和調試的基本步驟和方法,熟悉集成開發軟件中設計調試工具的使用,體會ISP技術相對于傳統開發技術的優點。3 .培養科學研究的獨立工作能力,取得工程設計與組裝調試的實踐經驗。,教學任務1 .按給定的數據格式和指令系統,在所提供的器件范圍內,設計一臺硬布線控制器控制的模型計算機。2 .根據設計圖紙,在通用實驗臺上進行組裝,并調試成功。3 .

2、在組裝調試成功的基礎上,整理出設計圖紙和其他文件。實驗設備微操作控制信號B1Bn硬布線控制器結構方框圖1 .TEC-4計算機組成原理實驗系統一臺2 .直流萬用表一只3 .集成電路建議使用ISP芯片(一片ispLSI1032)。采用ISP器件,則需要一臺PC機運行設計自動化軟件(例如ispEXPERT)乍設計、編程和下載使用。二、總體設計思路(描述指令系統,給數據通路)采用與模型計算機相同的指令系統,即12條機器指令。實驗設計中采用該指令系統的子集:去掉中斷指令后的3條機器指令,只保留9條指令。采用的數據通路和微程序控制器方案相同。數據通路圖和數據通路控制信號DBUSDR2MUX2DR1MUX1

3、M1M2LDER(T4)ERSWSW0SW7控制信號INSCERLDAR1(T4)CEL#LRW(T3)V7數據端口指令端口RAMAR1INCAR1AR2LDAR2(T2)IAR_BUS松M3DBUSLDPC(T4)PCPCADDLDIARALU2LDR4(T2)R4M4DBUSLDIR(T4)IRGINTQWR、1WR0RD1RD0RS1RS0I1IARMUX3控制器PCINCMUX4圖4數據通路總體圖控制器的設計思路硬布線控制器能夠實現控制功能,關鍵在于它的組合邏輯譯碼電路。譯碼電路的任務就是將一系列有關指令、時序等的輸入信號,轉化為一個個控制信號,輸出到各執行部件中。根據硬布線控制器的基

4、本原理,針對每個控制信號S,可以列出它的譯碼函數S=f(Im,Mi,Tk,Bj)其中Im是機器指令操作碼譯碼器的輸出信號,Mi是節拍信號發生器的節拍信號,Tk是時序信號發生器的時序信號,Bj是狀態條件判斷信號。在TEG-4計算機組成原理實驗系統中,因為時序信號Tk(T1-T4)已經直接輸送給數據通路,所以譯碼電路不需Tk作為輸入。又因為機器指令系統比較簡單,操作碼只有4位,不需要專門的操作碼譯碼器,因此Im直接就是操作碼,即指令寄存器的IR4-IR7信號。Mi的來源就是時序模塊的節拍信號,例如W4-W1Bj的信號包括:1 .來自數據通路中運算器ALU的進位信號C;2 .來自控制臺的開關信號SW

5、CSWBSWA3 .其他信號。其中C、SWCSW母DSWEIW號在微程序控制器中同樣存在,不用加以解釋。由于硬布線控制器設計和微程序控制器設計的不同需求和特點以及控制器的設計方案的不同,可能需要其他信號,也可能不需要其他信號,根據設計方案而定。每個控制信號的函數式都是上述輸入信號的邏輯表達式,因此可以用各種組合邏輯構造電路網絡,實現這些表達式的邏輯功能。理論上,只要對所有控制信號都設計出譯碼函數,這個硬布線控制器的方案也就得到了。根據要求,列出所需的控制臺指令和機器指令控制臺指令名稱指令功能指令格式SWCSWBSWAKRR讀寄存器堆方式100KRD讀雙端口存儲器方式001KWE寫雙端口存儲器方

6、式010KLD加載寄存器堆方式011PR啟動程序方式000機器指令名稱助記符指令功能指令格式R7R6R5R4R3R2R1R0力口法ADDRd,RsRd+Rs->Rd0000RS1RS0RD1RD0減法SUBRd,RsRd-Rs->Rd0001RS1RS0RD1RD0乘法MULRd,RsRd*Rs->Rd0010RS1RS0RD1RD0邏輯與ANDRd,RsRd&Rs->Rd0011RS1RS0RD1RD0存數STARd,RsRd->Rs0100RS1RS0RD1RD0取數LDARd,RsRs->Rd0101RS1RS0RD1RD0無條件轉移JMPRs

7、Rs->PC1000RS1RS0RD1RD0條件轉移JCDC=1PC+D->PC1001D3D2D1D0停機STP暫停運行0110XXXX老師提供的控制臺指令流程圖:W2W3W1SW-BUS#CEL#LRW=0SW-BUS#CEL#LRW=0SW-BUS#LDERW4SW-BUS#LDAR1M3=1LDAR2SSTOTJAR1-INCTJRS-BUS#TJ控制臺指令流程圖在這個控制臺里,我們將控制臺指令KRR,KRD,KWE,KLD,P降別拆分為KRR1,KRR2,KRD1,KRD2,KWE1,KWE2,KLD1,KLDPR1,PR2每個小指令分另占用W1-WC個節拍。分2次執行完

8、成。控制臺控制信號作用:控制信號信號作用信號有效條件C在加法運算和減法運算時產生的進位信號T4上升沿ALU_BUS允許運算結果送往數據總線1LDDR1M1=0時DR1接收寄存器堆A端口數據T3下降沿M1=1時DR1接收數據總線DBU徽據LDDR2M2=0時DR2接收寄存器堆B端口數據T3下降沿M2=1時DR2接收數據總線DBU徽據WRD控制雙端口寄存器堆RF的寫操作1且T2上升沿RS_BUS#控制RF的B端口數據是否能送DBUS±0LDER將DBUSh的數據打入暫存寄存器ER1且T4上升沿SW_BUS#將SW7-SW嗷據送往DBUS0CEL#選中雙端口存儲器RAM&端口0LR

9、W允許RAM&端口讀操作1且T3上升沿允許RAM&端口寫操作0且T3上升沿CERRAM&端口讀出數據并放到指令總線INS上1禁止右端口操作0LDAR1將DBU激據打入地址寄存器AR11且T4上升沿AR1_INCAR1的值加11且T4上升沿LDAR2M3=0時AR2的數據從程序計數器PC打入1且T2下降沿M3=1時AR2的數據從DBUS丁入LDR4M4=1時R4的數據從DBUS丁入1且T2下降沿M4=0時R4的數據從IR0-IR3打入PC_ADDALU2完成PC和IR低4位相加即PC+D1PC_INCPC+11LDPC程序計數器PC接收來自DBUS勺地址1且T4上升沿LD

10、IR將來自RAM勺指令打入指令寄存器IR1且T4上升沿S2,S1,S0選擇運算器ALU的運算類型1三、設計方案設計硬布線控制器的控制流程,也就是解決Mi、Im、Bj如何起作用的問題c設計微程序控制器時可以使用流程圖,設計硬布線控制器同樣可以使用流程圖。微程序控制器的控制信號以微指令周期為時間單位,硬布線控制器以節拍為時間單位,兩者本質上是一樣的,1拍和1個微指令周期都是從時序T1的上升沿到T4的下降沿的一段時間。在微程序控制流程圖中,1個執行框代表1個微指令周期,而在硬布線控制流程圖中,1個執行框就代表1拍。執行一條機器指令所需的微指令數目,在硬布線控制器中相當于機器指令所需的節拍數。決定執行

11、一條指令需要的節拍數,要根據所有指令而定。既不能只考慮某些需要最多節拍的指令,也不能只考慮節拍數最少的指令,一般要根據大多數機器指令所需的節拍數而定,設計才比較合理。在本實驗中,由于選用4拍對大多數指令就夠用,所以節拍發生器產生4個節拍信號(W什W4。統一用4拍執行1條機器指令后,對于所需節拍較少的的指令,例如JMP指令只用2拍(忽略中斷),剩下2拍就無事可做了。這在可行性上當然沒有問題,但在性能上就打了折扣,因為多余的節拍都浪費掉了。為減少浪費,在時序電路中加入了一個控制信號SKIP的輸入,該信號的作用是使節拍發生器在任意狀態下直接跳到最后1拍(W4。這樣,設計控制流程時,在所需節拍較少的的

12、指令流程的適當位置使SKIP控制信號有效,多余的節拍就可以跳過,從而提高了性能。機器指令選用四拍以后,將一條機器指令的執行化為占用兩條(或者更多)機器指令的節拍,執行一條指令就可以占用W1W2W3W4W1W2W3W4為了區分一條指令的兩個不同階段,我們加了個ST內部信號作為標志位,當ST=0時,標志執行指令的前四個節拍,當ST=1時,標志執行指令的后四個節拍。注意到只有CLR倒來后的第四拍時ST信號才發生翻轉,所以又設了一個SSTO言號作為ST信號的觸發信號。具體實現ST-SSTO奠塊如下:我們增加了一個標志位RUN由于按CLR般鈕復位后,實驗系統的時序停止在T4,W4,ST的值為0,這樣SS

13、TO=!ST&W4值為1.按QD啟動按鈕后,由于立即產生T1信號,在T1的上升沿使ST置1,在第一組W1,W2,W3,W4,ST的值為1,這是我們不希望看到的。增力口了標志位RUNt,按CLR松鈕復位,使RUhfe0。由于SSTO=!ST*W4*RUN,因此復位后的SSTO=0gcQD啟動按鈕,在T1的上升沿,使RUN=1根據SSTO的布爾表達式,在W1,W2,W3時,SSTO=0直至ijW4時,才使SSTO=1由于ST:=CLR#*SSTO#CLR*ST,W4S后的下一個T1的上升沿,才使ST置1,從而將控制臺操作的兩種狀態區分開來。八W1根據控制臺指令設計出的硬布線控制器:p000

14、PR2W20000ADDM1=0LDDR1M2=0LDDR2W3ALU=A+BW3ALU-BUSLDER0001SUBM1=0LDDR1M2=0LDDR20010MULM1=0LDDR1M2=0LDDR20011ANDM1=0LDDR1M2=0LDDR2CEL#LRW=1LDER0101LDA0100STAM2=0LDDR2RS-BUS#LDAR1SKIPSKIPRS-BUS#LDAR1ALU=AALU-BUSCEL#LRW=01000JMP1001JCSKIP0110STPSKIPRS-BUSM4=1LDR4LDPCM3=0LDAR2CERLDIRPC-INC硬布線設計指令流程圖邏輯狀態表:

15、根據硬布線指令流程圖畫出狀態表,然后根據表格,列寫出每個信號的邏輯表達式,并寫出ABEL語言的源程序:(狀態表在此文檔最后可見。去下載橫版:本來是有這個版本的,可以在打印出來的時候添加到中間空白的這一頁,只可以我上傳的那張表,百度未審核通過,說我的文檔質量太低了,雖然我設置的是免費。算了,自己用Excel改一下吧。)四、設計的實現(ABEL-HDLABEL語言源代碼如下:MODULEComputeDECLARATIONS"輸入管腳SWC,SWB,SWAPIN3.5;IR7,IR6,IR5,IR4PIN6.9;MF,T1,W1,W2,W3,W4,C,CLRPIN10.17;"

16、輸出管腳ALU_BUS,AR1_INC,CEL,CER,LDAR1,LDAR2,LDDR1,LDDR2,LDER,LDIR,LDPC,LDR4,LRWPIN29.41;PC_INC,PC_ADD,RS_BUS,SW_BUS,WRD,SKIP,TJ,M1,M2,M3,M4,S0,S1,S2PIN45.58;"自定義MF1,SSTONODEISTYPE'COM'RUN,STNODEISTYPE'REG'tKRR,tKRD,tKWE,tKLD,tPRNODEISTYPE'COM'KRR1,KRD1,KWE1,KLD1,PR1,KRR2,KRD

17、2,KWE2,KLD2,PR2NODEISTYPE'COM'ADD,SUB,MUL,AND,LDA,STA,JMP,JC,STPNODEISTYPE'COM'CLK=.C.;EQUATIONSMF1=!CLR&MF#T1&CLR;RUN:=CLR;RUN.CLK=MF1;ST:=CLR&SSTO#CLR&ST;ST.CLK=MF1;SSTO=!ST&RUN&W4;"指令譯碼部分tKRR=SWC&!SWB&!SWA;tKRD=!SWC&!SWB&SWA;tKWE=!SWC&a

18、mp;SWB&!SWA;tKLD=!SWC&SWB&SWA;tPR=!SWC&!SWB&!SWA;KRR1=!ST&tKRR;KRR2=ST&tKRR;KRD1=!ST&tKRD;KRD2=ST&tKRD;KWE1=!ST&tKWE;KWE2=ST&tKWE;KLD1=!ST&tKLD;KLD2=ST&tKLD;PR1=!ST&tPR;PR2=ST&tPR;ADD=PR2&(!IR7)&(!IR6)&(!IR5)&(!IR4);SUB=PR2&

19、amp;(!IR7)&(!IR6)&(!IR5)&(IR4);MUL=PR2&(!IR7)&(!IR6)&(IR5)&(!IR4);AND=PR2&(!IR7)&(!IR6)&(IR5)&(IR4);LDA=PR2&(!IR7)&(IR6)&(!IR5)&(IR4);STA=PR2&(!IR7)&(IR6)&(!IR5)&(!IR4);JMP=PR2&(IR7)&(!IR6)&(!IR5)&(!IR4);JC=P

20、R2&(IR7)&(!IR6)&(!IR5)&(IR4);STP=PR2&(!IR7)&(IR6)&(IR5)&(!IR4);"數據通路管腳譯碼ALU_BUS=(ADD#SUB#MUL#AND)&W3#(STA&W4);AR1_INC=(KRD2#KWE2)&W4;CEL=!(KRD2#KWE2#KLD2#KRR2)&W1#(W3&LDA)#(W4&STA);CER=(KLD2#KRR2)&W2#(W1&PR2);LDAR1=W4&(KRR1#KRD

21、1#KWE1#KLD1)#(W2&LDA)#(W2&STA);LDAR2=W4&(KRR1#KLD1)#(PR2&W1);LDDR1=W2&(ADD#SUB#MUL#AND);LDDR2=LDDR1#(W2&STA);LDER=W3&(KLD2#ADD#SUB#MUL#AND#LDA);LDIR=CER;LDPC=W4&(PR1#JMP#(JC&C);LDR4=LDPC;LRW=W1&KRD2#W3&LDA;M1=!LDDR1;M2=!LDDR2;M3=W4&(KRR1#KLD1);M4=W4&am

22、p;(PR1#JMP);PC_INC=W1&PR2;PC_ADD=W4&JC&C;RS_BUS=!(W2&(LDA#STA)#W4&(KRR2#JMP);SW_BUS=!(W1&(KWE2#KLD2#KRR2)#(W3&KLD2)#(W4&!ST);S0=SUB#STA;S1=ADD#SUB;S2=MUL;SKIP=W1&!ST#(W1&(KRD2#KWE2)#(W2&(KRR2#STA)#W2&(JMP#JC#STP);TJ=W1&KRD2#W2&KLD2#W4&(tKRR

23、#tKWE#tKLD)#W4&STP;WRD=W4&(KLD2#ADD#SUB#MUL#AND#LDA);END對程序進行編譯,無誤后下載到芯片。連線,調試,驗收連線按照ABEL程序里面對管腳的定義連線寄存器和內存單元內容:寄存器存入內容內存單元存入內容R260H60H24HR361H61H83H內存單元內容60H24H61H83HR00A7H五、本次設計的體會這是我們計算機專業做的第一個硬件和軟件結合的課程設計,個人認為,這是最好的一個課程設計安排,將學習道德東西用起來,才是最好的結果,鍛煉了我們的動手能力和思考能力。硬布線控制器在課本上沒有t¥細講解,但卻是以前的CPUS用的布線方式,想要深入學習硬件知識,了解這些東西是很有必要的。微程序控制器的出現是為了代替硬布線控制器,如果沒有對微程序控制器的工作方式和原理的理解,不可能設計出硬布線控制器的控制邏輯。所以這次實驗,我們對計算機的工作原理有了更進一步的了解,尤其是指令系統的工作原理,各個部件的工作之間的協調和配合等。這次課程設計大大鍛煉了我們的動手能力,由于是手工接線,任何一條線出現問題都會影響到整個系統的執行,幸好我們都很細心的連線,在這方面沒出問題,也讓我感覺到認真的去做一件事

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論