計算機組成原理課程設計報告

2023-01-15 16:03:03 字數 4749 閱讀 7088

硬佈線控制器的設計與除錯

一、教學目的、任務與實驗裝置

(一)教學目的

(1)融會貫通計算機組成原理課程和計算機系統結構課程的內容,通過知識的綜合運用,加深對計算機系統各模組的工作原理及相互聯絡的認識,特別是對硬佈線控制器的認識。

(2)學習運用isp(在系統程式設計)技術進行設計和除錯的基本步驟和方法,熟悉整合開發軟體中設計除錯工具的使用,體會isp技術相對於傳統開發技術的優點。

(3)培養科學研究的獨立工作能力,取得工程設計與組裝除錯的實踐經驗。

(二)設計與除錯任務

(1)按給定的資料格式和指令系統,在所提供的器件範圍內,設計一台硬佈線控制器控制的模型計算機。

(2)根據設計圖紙,在通用實驗台上進行組裝,並除錯成功。

(3)在組裝除錯成功的基礎上,整理出設計圖紙和其他檔案,包括:

1.總框圖(資料通路圖);

2.硬佈線控制器邏輯模組圖;

3.模組abel語言源程式(如果有的話);

4.硬佈線控制流程圖;

5.元件排列圖;

6.設計說明書;

7.除錯小結。

(三)實驗裝置

(1)tec-4計算機組成原理實驗系統一台

(2)直流萬用表乙隻

積體電路建議使用isp晶元(一片isplsi1032)。採用isp器件,則需要一台pc機執行設計自動化軟體(例如ispexpert)作設計、程式設計和**使用。

二、硬佈線控制器的設計思路

(一)、總體思路

(二)、附錄一:

(1)資料通路總體圖:

(2)硬佈線控制器結構方框圖

(3)硬佈線指令格式表:

(二)、控制器的設計思路

硬佈線控制器能夠實現控制功能,關鍵在於它的組合邏輯解碼電路。解碼電路的任務就是將一系列有關指令、時序等的輸入訊號,轉化為乙個個控制訊號,輸出到各執行部件中。

根據硬佈線控制器的基本原理,針對每個控制訊號s,可以列出它的解碼函式

s = f( im, mi, tk, bj )

其中im是機器指令操作碼解碼器的輸出訊號,mi是節拍訊號發生器的節拍訊號,tk是時序訊號發生器的時序訊號,bj是狀態條件判斷訊號。

在tec—4計算機組成原理實驗系統中,因為時序訊號tk(t1—t4)已經直接輸送給資料通路,所以解碼電路不需tk作為輸入。又因為機器指令系統比較簡單,操作碼只有4位,不需要專門的操作碼解碼器,因此im直接就是操作碼,即指令暫存器的ir4—ir7訊號。mi的**就是時序模組的節拍訊號,例如w4—w1。

bj的訊號包括:

1、來自資料通路中運算器alu的進製訊號c; 2、來自控制台的開關訊號swc、swb、swa; 3、其他訊號。

其中c、swc、swa和swb訊號在微程式控制器中同樣存在,不用加以解釋。由於硬佈線控制器設計和微程式控制器設計的不同需求和特點以及控制器的設計方案的不同,可能需要其他訊號,也可能不需要其他訊號,根據設計方案而定。

每個控制訊號的函式式都是上述輸入訊號的邏輯表示式,因此可以用各種組合邏輯構造電路網路,實現這些表示式的邏輯功能。

三、設計方案

(1)控制流程設計

設計硬佈線控制器的控制流程,也就是解決mi、im、bj如何起作用的問題。設計微程式控制器時可以使用流程圖,設計硬佈線控制器同樣可以使用流程圖。微程式控制器的控制訊號以微指令週期為時間單位,硬佈線控制器以節拍為時間單位,兩者本質上是一樣的,1拍和1個微指令週期都是從時序t1的上公升沿到t4的下降沿的一段時間。

在微程式控制流程圖中,1個執行框代表1個微指令週期,而在硬佈線控制流程圖中,1個執行框就代表1拍。 不過,在微程式控制器中,控制流程可以直接轉化為微指令程式,存放於控制儲存器內,受到的限制較少;而設計硬佈線控制器的控制流程,要考慮的因素就多一些。

1、執行一條機器指令的節拍數

微程式控制器中,執行一條機器指令所需要的微指令數目可根據需要而定,不同的機器指令需要的微指令數目可以差別很大,有的指令使用的微指令數目較多,只要控制儲存器中能安排得下就行。執行一條機器指令所需的微指令數目,在硬佈線控制器中相當於機器指令所需的節拍數。決定執行一條指令需要的節拍數,要根據所有指令而定。

既不能只考慮某些需要最多節拍的指令,也不能只考慮節拍數最少的指令,一般要根據大多數機器指令所需的節拍數而定,設計才比較合理。在本實驗中,由於選用4拍對大多數指令就夠用,所以節拍發生器產生4個節拍訊號(w1—w4)。 統一用4拍執行1條機器指令後,對於所需節拍較少的的指令,例如jmp指令只用2拍(忽略中斷),剩下2拍就無事可做了。

這在可行性上當然沒有問題,但在效能上就打了折扣,因為多餘的節拍都浪費掉了。為減少浪費,在時序電路中加入了乙個控制訊號skip的輸入,該訊號的作用是使節拍發生器在任意狀態下直接跳到最後1拍(w4)。這樣,設計控制流程時,在所需節拍較少的的指令流程的適當位置使skip控制訊號有效,多餘的節拍就可以跳過,從而提高了效能。

機器指令選用四拍以後,對於所需節拍較多的指令如何處理?採用的方法大致有兩種,一種是修改時序電路,採用變節拍的方式實現,即對於所需節拍較多的指令,時序電路產生較多的節拍,許多計算機系統就是這樣做的。另一種方法是將一條機器指令的執行化為占用兩條(或者更多)機器指令的節拍,例如執行一條指令可以占用w1、w2、w3、w4、w1、w2、w3、w4。

為了區分一條指令的兩個不同階段,可用某些特殊的暫存器標誌將其區分,例如,flag = 0時,表示該指令執行第乙個w1、w2、w3、w4;flag = 1時,表示該指令執行第二個w1、w2、w3、w4。上文中提到的bj包括其他訊號,flag就可以認為是乙個其他訊號。

2、控制台操作的問題機器指令的執行流程設計出來後,還要有微程式控制器那樣的控制台操作。這部分不屬於機器指令系統,而又要象完成機器指令那樣以不超過4拍的時間來執行,以便與機器指令的執行方式統一起來。微程式控制器中有微位址暫存器,通過微程式位址可以記住是處於控制台狀態還是程式執行狀態。

在硬佈線控制器中,就要設定乙個或者幾個標誌來記錄當前的狀態。根據這個(些)標誌,就可以區分控制台初始狀態、控制台讀記憶體、控制台寫記憶體、程式執行狀態。

(2)硬佈線控制器

使用isp技術,則控制器的電路設計完全是在開發軟體上進行的。只要在計算機上畫出電路的原理圖,編寫好必要的源程式,軟體會自動完成控制器內部的線路連線,無須自己去接線,因此,本次實驗的工作量可能會比微程式控制器要小一些。

設計出了硬佈線控制流程圖後,就可以據此設計出解碼邏輯電路。先根據流程圖列出解碼表,作為邏輯設計的依據。與微程式表的設計相似,解碼表的內容也包括橫向設計和縱向設計。

流程圖中橫向為一拍(w1、w2、w3、w4等),縱向為一條指令,而解碼邏輯是針對每乙個控制訊號的,因此在解碼表中,橫向變成了乙個訊號。

根據解碼表可以寫出每個控制訊號的邏輯表示式,這個表示式就是它所在的行各乘積項相加(邏輯或)。如果使用可程式設計邏輯電路(gal、isp等),只要將表示式直接寫成abel源程式,編譯軟體會自動完成電路優化的工作。這樣做除了可以減少出錯的機率外,未經簡化的表示式也便於閱讀和理解。

(3)附錄(二)

1、硬佈線控制指令流程圖設計如下:

2、根據指令流程圖得到指令解碼表如下:

四、設計實現

abel-hdl語言描述:

module m

title 'm'

"input

clr pin 3;

mf pin 5;

t1 pin 6;

w1 pin 7;

w2 pin 8;

w3 pin 9;

w4 pin 10

ir4 pin 12;

ir5 pin 13;

ir6 pin 14;

ir7 pin 15;

swc pin 26;

swb pin 27;

swa pin 28;

c pin 29;

"output

mf1,sst0 node istype 'com';

run,st0 node istype 'reg';

ldir pin 30 istype 'com';"cer

ldpc pin 31 istype 'com';" ldr4

pc_add pin 32 istype 'com';

lddr1 pin 33 istype 'com';

lddr2 pin 34 istype 'com';

cel pin 35 istype 'com';

lrw pin 36 istype 'com';

tj pin 37 istype 'com';

skip pin 38 istype 'com';

sw_bus pin 39 istype 'com';

lder pin 40 istype 'com';

ldar1 pin 41 istype 'com';

pc_inc pin 55 istype 'com';

ldar2 pin 48 istype 'com';

ar1_inc pin 49 istype 'com';

rs_bus pin 45 istype 'com';

alu_bus pin 46 istype 'com';

wrd pin 47 istype 'com';

s0 pin 50 istype 'com';

s1 pin 51 istype 'com';

s2 pin 52 istype 'com';

m3 pin 53 istype 'com';

m4 pin 54 istype 'com';

clk=.c.;

equations

mf1=!clr&mf#t1;

run:=clr&!st0#clr&run;

sst0=!st0&run&w4;

st0:=clr&sst0#clr&st0;

《計算機組成原理》課程設計報告

電子資訊學院 實驗報告書 課程名 計算機組成原理 題目 實驗類別 驗證 班級 學號 姓名 目錄 第一章實訓任務概述 2 1.1實訓目的 2 1.2 實訓任務 2 第二章設計內容 4 2.1 指令的執行流程 4 2.1.1 異或 指令 4 2.1.2讀取指令 4 2.1.3 add 指令 4 2.2 ...

計算機組成原理課程設計報告

學生課程設計報告 課程設計名稱 計算機組成原理 設計專案名稱 基本模型機設計與實現 專業名稱 網路工程 班級 1220551 學號 學生姓名 指導教師 2015年1月3日 目錄課程設計任務書 3 1 課程設計目的 4 2 課程設計裝置 4 3 課程設計內容 4 3.1 課程設計原理 4 3.2 實驗...

計算機組成原理課程設計報告

專業名稱 j計算機 班級學號 0501 3051110004 學生姓名 孫陽陽 指導教師 劉芳 設計時間 200 7 年 12 月 26 日 2008 年 1 月4 日 第一天熟悉微程式的設計和除錯方法 一 設計要求 按照 計算機組成設計指導書 的1.4和1.5節的步驟完成設計與除錯的示例,掌握設計...