計組課程設計報告 謝育武

2022-09-20 19:36:04 字數 4593 閱讀 9096

微程式控制及cpu指令執行

姓名:謝育武

學號:20101003789

指導老師:劉超

班號:192103--27

一、實驗目的

(1)掌握時序產生器的組成原理。

(2)掌握微程式控制器的組成原理。

(3)掌握微指令格式的化簡和歸併。

二、實驗電路

1.時序發生器

tec—4計算機組成原理實驗系統的時序電路如圖9所示。電路採用2片gal22v10(u6、u7),可產生兩級等間隔時序訊號t1-t4和w1-w4,其中乙個w由一輪t1-t4迴圈組成,它相當於乙個微指令週期或硬佈線控制器的一拍,而一輪w1—w4迴圈可供硬佈線控制器執行一條機器指令。

本次實驗不涉及硬佈線控制器,因此時序發生器中的相關內容也可根據需要放到硬佈線控制器實驗中進行。

微程式控制器只使用時序訊號t1-t4,產生t訊號的功能整合在gal22v10晶元timer1(u6)中,另外它還產生節拍訊號w1、w2、w3、w4的控制時鐘clk1。該晶元的邏輯功能用abel語言實現,其源程式如下:

module timer1

title 'clock ggenerator t1,t2,t3,t4'

"2000,9

"input

mf,clr,qd,dp,dz,tj,p1,ints,intc,db pin 1..10;

w4 pin 13;

"output

t1,t2,t3,t4,qd1,qd2,act,inte,qdr pin 14..22;

clk1 pin 23;

t1,t2,t3,t4,qd1,qd2,inte,qdr istype 'reg';

act,clk1 istype 'com';

clk = .c.;

s =[t1,t2,t3,t4,qd1,qd2,inte,qdr];

equations

qd1 := qd;

qd2 := qd1;

qdr := clr & qd # clr & qdr;

act = qd1 & !qd2;

t1 := clr & t4 & act # clr & t4 & !(dp # tj # dz & p1 # db & w4) & qdr;

t2 := clr & t1;

t3 := clr & t2;

t4 := !clr # t3 # t4 & !act & (dp # tj # dz & p1 # db & w4) # !qdr;

inte := clr & ints # clr & inte & !intc;

clk1 = t1 # !clr & mf;

= mf;

end硬佈線控制器只使用時序訊號w1-w4,產生w訊號的功能整合在gal22v10晶元timer2(u7)中,該晶元的邏輯功能用abel語言實現,其源程式如下:

module timer2

title 'clock ggenerator w1 w2 w3 w4'

" 2000, 9

"input

clk1,intr,ie pin 1..3;

clr,skip pin 5..6;

"output

w1,w2,w3,w4,intr1 pin 14..18 istype 'reg';

intq pin 20 istype 'com';

clk = .c.;

equations

w1 := clr & w4 ;

w2 := clr & w1 & !skip;

w3 := clr & w2 & !skip;

w4 := !clr # w3 # skip & w1 # skip & w2 ;

intr1 := intr;

intq = ie & intr1;

[w1,w2,w3,w4,intr1].clk = clk1;

endtimer1和timer2中還整合了中斷邏輯,中斷邏輯的介紹見第八節。timer1的輸入訊號中,mf接實驗台上晶體振盪器的輸出,頻率為1mhz。t1至t4的脈衝寬度為100ns。

clr(注意,實際上是控制台上的clr#訊號,因為abel語言的書寫關係改為clr,仍為低有效訊號)為復位訊號,低有效。實驗台處於任何狀態下令clr# = 0,都會使時序發生器和微程式控制器復位(回到初始狀態),clr# =1時,則可以正常執行。復位後時序發生器停在t4、w4狀態,微程式位址為000000b。

建議每次實驗儀加電後,先用clr#復位一次。控制台上有乙個clr#按鈕,按一次,產生乙個clr#負脈衝,實驗台印製板上已連好控制台clr#到時序電路clr的連線。

tj(停機)是控制器的輸出訊號之一。連續執行時,如果控制訊號tj=1,會使機器停機,停止傳送時序脈衝t1—t4、w1—w4,時序停在t4。在實驗台上為了將時序訊號發生器的輸入訊號tj和控制儲存器產生的tj訊號區分開來,以便於連線操作,在實驗台上時序訊號發生器的輸入訊號tj命名為tji,而控制儲存器產生的訊號tj仍命名為tj。

qd(啟動)是來自啟動按鈕qd的脈衝訊號,在timer1中,對qd用mf進行了同步,產生qd1和qd2。act表示qd1上公升沿,表示式是qd1 & !qd2,脈衝寬度為1000ns 。

qdr是執行標誌,qd訊號使其為1,clr訊號將其置0。dp(單拍)是來自控制台的dp開關訊號,當dp =1時,機器處於單拍執行狀態,按一次啟動按鈕qd,只傳送一條微指令週期的時序訊號就停機。利用單拍方式,每次只執行一條微指令,因而可以觀察微指令**和當前微指令的執行結果。

dz(單指)訊號是針對微程式控制器的,接控制台開關dz和p1訊號配合使用。p1是微指令字判斷欄位中的乙個條件訊號,從微程式控制器輸出。p1訊號在微程式中每條機器指令執行結束時為1,用於檢測有無中斷請求intq,而時序發生器用它來實現單條機器指令停機。

在db =0且dp = 0的前提下,當dz =0時,機器連續執行。當dz =1時,機器處於單指方式,每次只執行一條機器指令。

db、skip、clk1訊號以及w1—w4時序訊號都是針對硬佈線控制器的。w1—w4是節拍訊號,硬佈線控制器執行一條機器指令需要一組w1—w4訊號。db(單步)訊號就是每次傳送一組w訊號後停機,可見其功能與dz類似。

執行某些機器指令不需要完整的一組w訊號週期,skip訊號就是用來跳過本指令剩餘的w節拍訊號的。中斷允許標誌ie由控制儲存器的輸出訊號ints將其置1,由控制儲存器的輸出訊號intc將其置0。在timer2內部,控制台產生的中斷請求被用時鐘clk1進行同步,產生了intr1。

只有在inte = 1時,控制台產生的中斷請求脈衝intr才能起作用,即產生向控制器輸出的中斷中斷訊號intq,intq = inte & intr1。

2.資料通路

微程式控制器是根據資料通路和指令系統來設計的。這裡採用的資料通路是在綜合前面各實驗模組的基礎上,又增加程式計數器pc(u18)、位址加法器alu2(u17)、位址緩衝暫存器r4(u25、u26)和中斷位址暫存器iar(u19),詳見第二節的圖4。pc和alu2各採用一片gal22v10,兩者配合使用,可完成程式位址的儲存、增1和加偏移量的功能。

r4由兩片74hc298組成,帶二選一輸入端。iar是一片74hc374,用於中斷時儲存斷點位址。有關資料通路總體的詳細說明,請參看第一節。

3.微指令格式與微程式控制器電路

根據給定的12條機器指令功能和資料通路總體圖的控制訊號,採用的微指令格式見圖10。微指令字長共35位。其中順序控制部分10位:

後繼微位址6位,判別字段4位,操作控制欄位25位,各位進行直接控制。微指令格式中,訊號名帶有字尾「#」的訊號為低有效訊號,不帶有字尾「#」的訊號為高有效訊號。

對應微指令格式,微程式控制器的組成見圖11。控制儲存器採用5片eeprom 28c64(u8、u9、u10、u11、u12)。28c64的輸出是d0—d7,分別與引腳11、12、13、15、16、17、18、19相對應,cm0是最低位元組,cm4是最高位元組。

微位址暫存器6位,用一片6d觸發器74hc174(u1)組成,帶有清零端。兩級與門、或門構成微位址轉移邏輯,用於產生下一微指令的位址。在每個t1上公升沿時刻,新的微指令位址會打入微位址暫存器中,控制儲存器隨即輸出相應的微命令**。

微位址轉移邏輯生成下一位址,等下乙個t1上公升沿時打入微位址暫存器。跳轉開關jump(j1)是一組6個跳線開關。當用短路子將它們連通時,微位址暫存器ar從本實驗系統提供的微程式位址解碼電路得到新的微程式位址d0—d5。

當他們被斷開時,使用者提供自己的新微程式位址d0—d5。這樣使用者能夠使用自己設計的微程式位址解碼電路。5片eeprom的位址a6(引腳4)直接與控制台開關swc連線,當swc = 1時,微位址大於或者等於40h,當swc = 0時,微位址的範圍為00h—3fh。

swc主要用於實現讀暫存器堆的功能。

微位址轉移邏輯的多個輸入訊號中,intq是中斷請求,本實驗中可以不理會。swa、swb是控制台的兩個二進位制開關訊號,實驗台上線已接好接。c是進製訊號,ir7—ir4是機器指令**,由於本次實驗不連線資料通路,這些訊號都接到二進位制開關k0—k15上。

三、機器指令與微程式

為教學中簡單明瞭,本實驗儀使用12條機器指令,均為單字長(8位)指令。指令

功能及格式如表5所示。指令的高4位提供給微程式控制器,低4位提供給資料通路。

表5 指令功能與格式

應當指出,用以上12條指令來編寫實際程式是不夠的。好在我們的目的不是程式設

計,而主要是為了教學目的,通過cpu執行一些最簡單的程式來掌握微程式控制器的工作原理。

計組課程設計報告

計算機組成原理課程設計 一 課設總體任務 設計並 實現一台n位 n可自選8位,16位或32位 模型機系統,同時用所設計的指令通過一小段程式來驗證所設計系統功能的正確性。二 課設具體要求 1 指令系統 指令架構 採用 x86 指令系統 功能要求 至少五類指令各一條 其中 算術運算類指令 1條 邏輯運算...

頻率計課程設計報告

自動化專業綜合課程設計1 課程設計報告 題目 數字式頻率計的設計 院 系 機電與自動化學院 專業班級 學生姓名 學號指導教師 2013年6月17日至2013年7月3日 華中科技大學武昌分校 自動化專業綜合課程設計1 設計任務書 目錄1 課程設計目的1 2 課程設計要求1 3 課程設計內容2 3.1系...

溫度計課程設計

感測技術 課程設計 題目 熱釋電體溫計 學號姓名 老師 袁新娣 時間 2013年11月28日 熱釋電紅外 pir 感測器,亦稱為熱紅外感測器,是一種能檢測人體發射的紅外線的新型高靈敏度紅外探測元件。它能以非接觸形式檢測出人體輻射的紅外線能量的變化,並將其轉換成電壓訊號輸出。將輸出的電壓訊號加以放大,...