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

2022-06-25 14:42:02 字數 3809 閱讀 7349

專業名稱: 網路工程

班級學號: 網路1002

學生姓名: 張珍麗

指導教師: 丁偉

設計時間: 2023年 6 月11 日—— 2023年 6 月 20 日

第一天取運算元微程式的設計和除錯

一、設計目標

設計並除錯取運算元的微程式

二、取運算元微流程

三、測試程式、資料及執行結果

格式如下:

1、測試內容:立即數定址

測試指令(或程式):mov #1234h,r1

機器碼:

執行結果及分析:

分析:首先檢視微指令流程,如果執行的微位址依次是:001——002——003——004——00b——00f——016——006——018——007——004——046——000……(後面的mov指令的exe微指令是由老師提供的),根據前面指令微流程的設計,所執行的微指令次序是正確的。

在上圖中,測試指令微程式最後一條微指令的位址為046,微指令是88000000,所代表的微操作應該是troe,grsce。執行後grs=0000,而執行後的結果都是存放在grs當中的,這裡好像出錯了。但在下一條微指令時grs=1234,這是因為grs的裝入使能訊號grsce受時鐘訊號的影響,內容在微指令週期結束時才被儲存,所以觀察到的資料慢了一步。

四、設計中遇到的問題及解決辦法

1.①編寫取源運算元的指令微程式時,輸入微指令經常出錯②用軟體的時候,忘記設定輸出裝載方式,導致輸出結果不完全,而且對軟體unidebugger的操作也不太熟悉。③搞不清楚『取運算元入口』的微程式是由什麼組成。

2.解決辦法:①預習工作要做好,輸入微指令的時候要對照設計指導書,一步一步進行。

②在使用軟體之前,要先知道自己的目標,不能盲目的做。逐步熟悉軟體步驟,在驗證之前設定好輸出與裝載設定,在輸入微指令的時候不能貪快,以保證輸入的資料是正確的以及軟體的順暢使用。③認真複習課本上內容,可以知道原來取運算元的入口的微命令是空的(nop)。

第二天運算指令的微程式設計與除錯

一、設計目標

設計並除錯運算指令的微指令

二、運算指令微程式入口位址

三、運算類指令微程式

四、測試程式、資料及執行結果

1、測試內容:①and #1234,r1

執行資料:機器碼:1f61,1234h

結果為:

分析:此and指令的執行的微指令依次是:001——002——003——004——00b——00f—016—006——018——007——05c——06f——070——000根據前面指令過程微流程的設計,所執行的微指令次序是正確的.

②inc(0001)

執行資料 :0239 0001h

結果為:

分析:此inc指令的執行的微指令依次是:001——002——003——006——01b——01f—022—024——025——026——007——0a4——06f——071——072——000根據前面指令過程微流程的設計,所執行的微指令次序是正確的.0001自增之後為0002,dr顯示是對的.

③add #1234,1234

執行資料

結果為:

分析:此add指令的執行的微指令依次是:001——002——003——004——00b——00f—016—0025——026——007——048——06f——071——072——000根據前面指令過程微流程的設計,所執行的微指令次序是正確的.

執行資料為

結果為:

分析:此test指令的執行的微指令依次是:001——002——003——004——00b——00f—016—0025——026——007——068——000根據前面指令過程微流程的設計,所執行的微指令次序是正確的.

五、設計中遇到的問題及解決辦法

問題:①沒有理解入口位址的意思②對於bm=7時的原理也不太理解

解決:聽老師講授課程之後,我知道了入口位址怎麼理解了。雙運算元的入口位址為uar,其中3『b001指的是前三位數為指的是中間四位數由各操作指令編碼的第十位到底是三位組成,2』b00指的是最後倆位數為00,根據這些理解,很快就能寫出addc:

04c、sub: 050、subb: 054 、cmp:

058、and: 05c、or: 060 、xor:

064、dec: 0a8、not: 0ac等操作的入口位址。

而當bm=7時,由硬體完成,當結果送暫存器時uar,當結果送儲存器時uar。

第三天 cpu硬體的初級設計與驗證

1、設計目標

在運算器實驗的基礎上對硬體進行擴充,建立初級cpu的資料通路,構造乙個只支援運算指令的初級cpu。

二、硬體設計

1、pc模組設計

/*程式計數器pc與r模組一樣採用非同步復位,當n_reset有效時,pc清0,否則在時鐘訊號clk的上公升沿如果資料裝入使能ce有效則d→q,如果自加訊號pcinc有效則q+1→q。pc通過三態門與ib相連

2、ir模組設計

/* dr連線內部匯流排ib和系統匯流排的db ;dr有兩路資料輸入data_ib、data_db,分別來自ib、db,相應的有兩個裝入使能訊號drce_ib、drce_db,輸出端q分別通過兩個三態門連到ib、db。dr採用非同步復位,復位時dr清0,否則在時鐘訊號的上公升沿,當drce_ib有效時則data_ib→q,當drce_db有效時則data_db→q。 */

3、頂層模組設計(自己增加的設計部分)

①tr暫存器的例項化:

r #(datawidth) tr(.q(tr_out),.d(ib), .clk(clock), .ce(trce), .n_reset(n_reset));

tr的輸出連線到三態門上,輸出即為中已經定義好的tr_out

tr的輸入是從ib匯流排上輸入的,因此連線ib

tr的時鐘訊號,以及復位訊號,都是頂層模組中的統一時鐘訊號和復位訊號

tr的使能訊號即為中定義的trce。

②ar暫存器的例項化

r #(addrwidth) ar(.q(ar_out), .d(ib), .clk(clock), .ce(arce), .n_reset(n_reset));

ar的輸出連線到三態門上,輸出即為中已經定義好的ar_out

ar的輸入是從ib匯流排上輸入的,因此連線ib

ar的時鐘訊號,以及復位訊號,都是頂層模組中的統一時鐘訊號和復位訊號

ar的使能訊號即為中定義的arce。

③ir暫存器的例項化

r #(datawidth) ir(.q(ir_out), .d(ib), .clk(clock), .ce(irce), .n_reset(n_reset));

ir的輸出連線到三態門上,輸出即為中已經定義好的ir_out

ir的輸入是從ib匯流排上輸入的,因此連線ib

ir的時鐘訊號,以及復位訊號,都是頂層模組中的統一時鐘訊號和復位訊號

ir的使能訊號即為中定義的irce。

3、驗證

①and #1234,r1 執行資料:1f61,1234h

②inc(0001) 執行資料 :0239 0001h

③add #1234,1234 執行資料

執行資料為

分析:因為這次的驗證資料及操作都和第二天的一樣,所以當倆天的結果都相同的時候,就說明第三天硬體設計成功了.

4、設計中遇到的問題及解決辦法

問題:①截圖後發現pc自增的特別快,例如下圖所示:

②在驗證硬體的時候老是出現各種各樣的錯,導致無法配置和生成

解決:①-pc自增的特別快是因為一開始在pc模組中把語句if(pcinc)寫成了

②驗證的時候出現的錯誤,主要有語句結束的分號丟失、字母輸入大小寫混淆、以及模組當中的語句寫錯。得仔細輸入**以及認真檢查,寫語句的時候按照設計指導書上的提示寫,弄清楚各個訊號的表示方式以及功能再寫。

第四天為cpu擴充轉移指令

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

電子資訊學院 實驗報告書 課程名 計算機組成原理 題目 實驗類別 驗證 班級 學號 姓名 目錄 第一章實訓任務概述 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節的步驟完成設計與除錯的示例,掌握設計...