2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課 程 設(shè) 計 報 告</p><p>  題目:基于微程序控制器的簡單計算機系統(tǒng)設(shè)計與實現(xiàn)</p><p>  課程名稱: </p><p>  專業(yè)班級: </p><p>  學(xué) 號:

2、 </p><p>  姓 名: </p><p>  指導(dǎo)教師: </p><p>  同組人員: </p><p>  試驗臺號:

3、 </p><p>  完成時間: </p><p>  報告日期: </p><p>  計算機科學(xué)與技術(shù)學(xué)院</p><p><b>  目 錄</b></p>&

4、lt;p>  1 課程設(shè)計概述1</p><p>  1.1 課設(shè)目的1</p><p>  1.2 設(shè)計任務(wù)1</p><p>  1.3 設(shè)計要求1</p><p>  2 實驗原理與環(huán)境2</p><p>  2.1 實驗原理結(jié)構(gòu)圖2</p><p>  2.1.1 功能

5、結(jié)構(gòu)圖2</p><p>  2.1.2 中央處理器的功能2</p><p>  2.1.3 中央處理器的組成3</p><p>  2.2 實驗環(huán)境4</p><p>  3 模塊設(shè)計方案5</p><p>  3.1 實驗分析5</p><p>  3.2 數(shù)據(jù)通路圖5<

6、/p><p>  3.3 模塊設(shè)計6</p><p>  3.2.1 主存儲器6</p><p>  3.2.3 控制存儲器7</p><p>  3.2.3 運算器和寄存器9</p><p>  3.2.4 程序計數(shù)器11</p><p>  3.2.5 總體設(shè)計12</p>

7、;<p>  4 微指令設(shè)計14</p><p>  4.1 機器指令設(shè)計14</p><p>  4.2 微指令設(shè)計14</p><p>  4.3 微程序設(shè)計14</p><p>  4.4 指令流程圖15</p><p>  4.4.1 取指公操作16</p><p&

8、gt;  4.4.2 立即數(shù)加17</p><p>  4.4.3 直接尋址加17</p><p>  4.4.4 直接尋址減18</p><p>  4.4.5 回存19</p><p>  4.4.6 無條件跳轉(zhuǎn)20</p><p>  4.4.7 有條件跳轉(zhuǎn)20</p><p>

9、;  4.4.8 非21</p><p>  4.4.9 與22</p><p>  4.4.10 異或22</p><p>  4.4.11 SHL24</p><p>  4.4.12 LOAD24</p><p>  4.5 芯片控點設(shè)計25</p><p>  5 實驗過程與

10、調(diào)試27</p><p>  5.1 主要故障與調(diào)試27</p><p>  5.1.1 395載入失敗27</p><p>  5.1.2 6116中存儲數(shù)據(jù)被改變27</p><p>  5.1.3 2816中存儲數(shù)據(jù)被改變27</p><p>  5.1.4 193計數(shù)器跳轉(zhuǎn)出問題28</p&g

11、t;<p>  5.1.5 193自加時的毛刺28</p><p>  5.2 功能測試28</p><p>  5.3 實驗流程30</p><p>  6 設(shè)計總結(jié)與心得31</p><p>  6.1 課設(shè)總結(jié)31</p><p>  6.1.1 方案總結(jié)31</p>&l

12、t;p>  6.1.2 功能總結(jié)31</p><p>  6.1.3 未實現(xiàn)功能總結(jié)31</p><p>  6.2 課設(shè)心得31</p><p><b>  參考文獻33</b></p><p>  附錄 部分芯片介紹34</p><p><b>  1 課程設(shè)計概述&

13、lt;/b></p><p><b>  1.1 課設(shè)目的</b></p><p>  計算機組成原理是計算機專業(yè)的核心基礎(chǔ)課。本課程力圖以“培養(yǎng)學(xué)生現(xiàn)代計算機系統(tǒng)設(shè)計能力”為目標(biāo),貫徹“強調(diào)軟/硬件關(guān)聯(lián)與協(xié)同、以CPU設(shè)計為核心/層次化系統(tǒng)設(shè)計的組織思路,有效地增強對學(xué)生的計算機系統(tǒng)設(shè)計能力的培養(yǎng)”。課程設(shè)計是學(xué)完該課程并進行多個單元實驗后,綜合利用所學(xué)的理論

14、知識,并結(jié)合在單元實驗中所積累的計算機部件設(shè)計和調(diào)試方法,設(shè)計出一臺具有自己指令系統(tǒng)的簡單計算機系統(tǒng)。所設(shè)計的系統(tǒng)能在基于EDA的實驗平臺上運行一段程序,通過檢查程序結(jié)果的正確性來判斷所設(shè)計計算機系統(tǒng)正確性。</p><p>  課程設(shè)計屬于設(shè)計型實驗,不僅鍛煉學(xué)生簡單計算機系統(tǒng)的設(shè)計能力,而且通過進行主機系統(tǒng)底層電路的實現(xiàn)、故障分析與定位、系統(tǒng)調(diào)式等環(huán)節(jié)的鍛煉,進一步提高了學(xué)生分析和解決問題的能力。</p

15、><p><b>  1.2 設(shè)計任務(wù)</b></p><p>  課程設(shè)計的主要任務(wù)是設(shè)計一臺簡單的計算機系統(tǒng),并調(diào)試通過。本組所選用的計算機系統(tǒng)結(jié)構(gòu)是基于微程序控制器的簡單計算機系統(tǒng)設(shè)計與實現(xiàn)。 </p><p>  完成數(shù)據(jù)通路設(shè)計并驗證數(shù)據(jù)通路功能.確定CPU 的基本結(jié)構(gòu)是采用總線方式還是采用專用通路方式;</p>

16、;<p>  完成指定功能的各指令周期流程圖(表)和所需要的控制信號。把所有指令的狀態(tài)進行綜合,并歸納成最終需要的若干個狀態(tài),畫出指令流程的狀態(tài)圖,根據(jù)狀態(tài)圖設(shè)計狀態(tài)機;</p><p>  完成時序列電路設(shè)計。通過畫出帶控制信號的多周期數(shù)據(jù)通路圖,列出 指令譯碼表,設(shè)計控制譯碼器。最后將控制譯碼器信號與多周期數(shù)據(jù)通路圖上的控制信號對應(yīng)相連;</p><p><b>

17、;  主要技術(shù)指標(biāo)如下:</b></p><p>  1) 支持算術(shù)運算、邏輯運算、存儲器讀寫、寄存器間數(shù)據(jù)傳送等幾類指令。</p><p>  2) 支持立即數(shù)尋址、直接尋址、隱含尋址、寄存器尋址等幾種基本的數(shù)據(jù)尋址方式和順序?qū)ぶ贰⑻S尋址兩種指令的尋址方式。</p><p>  3) 支持10條以上的指令。</p><p> 

18、 4) 能運行由自己所是設(shè)計的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確。</p><p><b>  1.3 設(shè)計要求</b></p><p>  根據(jù)課程設(shè)計指導(dǎo)書的要求,制定出設(shè)計方案;</p><p>  2) 畫出自己所設(shè)計計算機系統(tǒng)的原理框圖和器件連接圖,分析器件連接圖中各器件不同引腳的功能,哪些可以固定連接,哪些需要通過微程序來控制

19、,及這些控制信號的有效形式;</p><p>  3) 畫出各指令的指令周期流程圖和所需要的控制信號;</p><p>  4) 設(shè)計出實現(xiàn)指令功能的微程序控制器或硬布線控制器;</p><p>  5) 布線、調(diào)試、驗收;</p><p>  6) 課程設(shè)計報告和總結(jié)。</p><p><b>  2 實驗

20、原理與環(huán)境</b></p><p>  2.1 實驗原理結(jié)構(gòu)圖</p><p>  2.1.1 功能結(jié)構(gòu)圖</p><p>  組成原理課程設(shè)計CPU功能結(jié)構(gòu)圖如圖2.1所示。</p><p>  圖2.1 CPU功能結(jié)構(gòu)圖</p><p>  2.1.2 中央處理器的功能</p><p

21、>  CPU作為運行指令的部件,從保證程序功能正確的角度看,CPU應(yīng)該具有以下幾方面的功能:</p><p>  1)指令執(zhí)行順序的控制。即控制程序中的指令按事先規(guī)定的順序自動執(zhí)行,從而保證程序執(zhí)行過程中,指令在邏輯上的相互關(guān)系不被改變。</p><p>  2)指令的操作控制。即產(chǎn)生指令執(zhí)行過程中所需要的信號,以控制執(zhí)行部件按指令規(guī)定的操作運行。</p><p&

22、gt;  3)時間控制。即對每個控制信號進行定時,一邊按規(guī)定的時間順序啟動各操作。對于任何一條指令而言,如果操作控制信號的時間不正確,則指令的功能也就不能正確的實現(xiàn)。</p><p>  4)數(shù)據(jù)加工處理。即對數(shù)據(jù)進行算術(shù)、邏輯運算,或?qū)?shù)據(jù)在相關(guān)的部件之間傳輸。</p><p>  5)異常和中斷處理。即處理運算中的異常及處理外部設(shè)備的中斷服務(wù)請求等。</p><p&

23、gt;  2.1.3 中央處理器的組成</p><p>  中央處理器主要由控制器和運算器兩部分構(gòu)成??刂破鞯闹饕δ馨ǎ喝≈噶?、計算下一條指令的地址、對指令譯碼、產(chǎn)生相應(yīng)的操作控制信號、控制指令執(zhí)行的步驟和數(shù)據(jù)流動的方向。運算器是執(zhí)行部件,有算術(shù)邏輯單元和各種寄存器組成。運算器接受控制器的命令執(zhí)行算術(shù)運算、邏輯運算即邏輯測試。許多中央處理器中具有多個運算功能單元,這些功能單元能夠進行并行運算。中央處理器的功能

24、與其結(jié)構(gòu)緊密相關(guān),任何一種功能都依賴相應(yīng)的硬件去實現(xiàn)。如圖2.1是一種能實現(xiàn)上述功能的CPU基本組成。</p><p>  下面對圖2.1的各部分功能進行簡要分析。</p><p>  a.CPU內(nèi)常用的寄存器</p><p>  1)PC(程序計數(shù)器)</p><p>  PC保存將要執(zhí)行的指令地址,又稱指令地址寄存器。CPU取指令時,將P

25、C的內(nèi)容送到主存地址寄存器,然后修改PC的值形成下一條要執(zhí)行的指令地址,有以下兩種修改PC內(nèi)容的方法:(1)程序順序執(zhí)行是,可利用程序計數(shù)器本身的遞增功能來實現(xiàn),若程序無此功能,則通過加法器實現(xiàn);(2)轉(zhuǎn)移時,用轉(zhuǎn)移指令提供的地址修改PC的值。</p><p>  2)IR(指令寄存器)</p><p>  IR用于保存指令。從主存儲器取出的指令存放在IR中,直到新的指令從主存中取出為止。

26、IR中對應(yīng)于指令操作碼的部分輸出送到指令譯碼器。IR中指令的操作碼字段內(nèi)容經(jīng)指令譯碼器,送到微操作信號形成不見;指令的地址碼字段根據(jù)尋址方式的不同可能送入程序計數(shù)器、地址寄存器或運算部件。有的機器指令操作碼中包含尋址方式,因此不單獨設(shè)計尋址方式字段;有的機器將尋址方式字段和操作碼一并送入指令譯碼器;有的機器將操作碼字段和地址碼字段送入地址形成部件,以決定地址碼的作用。</p><p>  3)AR(地址寄存器)&

27、lt;/p><p>  AR用來保存當(dāng)前CPU所要訪問的主存單元地址,無論CPU是取指令還是存取數(shù)據(jù),都必須先將要訪問的主存單元地址送AR,知道讀寫操作完成。</p><p>  4)DR(數(shù)據(jù)緩沖寄存器):</p><p>  DR作為CPU和主存之間的數(shù)據(jù)緩沖寄存器用于存放操作數(shù)、運算結(jié)果或 中間結(jié)果以減少訪問主存的次數(shù);也可以存放從主存中讀出的數(shù)據(jù),或準(zhǔn)備寫入的數(shù)

28、據(jù)。</p><p>  b.指令譯碼器、地址形成部件和微操作產(chǎn)生部件</p><p><b>  指令譯碼器(ID)</b></p><p>  指令譯碼器對指令的操作碼進行譯碼,它的輸出送到微操作產(chǎn)生部件。</p><p><b>  地址形成部件</b></p><p>

29、;  地址形成部件對指令的尋址方式字段、地址字段進行譯碼,計算操作數(shù)的地址信息。</p><p><b>  3)微操作產(chǎn)生部件</b></p><p>  微操作產(chǎn)生部件接收指令譯碼器送來的信息,與時序信號、條件及狀態(tài)信息進行組合,形成各種具有時間標(biāo)志的控制信號(即微操作控制序列)并發(fā)送到計算機的各個部件。</p><p>  微操作產(chǎn)生部件

30、是控制決策機構(gòu)。信息流的控制就是把操作產(chǎn)生部件的微操作控制序列(即微操作控制信號),送到各個部件的控制門、觸發(fā)器或鎖存器,去打開或關(guān)閉某些特定的門電路,使數(shù)據(jù)信息按完成指令功能所需要經(jīng)過的路徑,從一個功能部件傳送到另一個功能部件,實現(xiàn)對數(shù)據(jù)加工處理的控制。</p><p>  根據(jù)設(shè)計方法不同,微操作產(chǎn)生部件的結(jié)構(gòu)有三種不同的類型:組合邏輯型、存儲邏輯型即前兩者的結(jié)合型。它們分別對應(yīng)三中不同的控制器組成方式:組合

31、邏輯控制器、微程序控制器及組合邏輯與存儲邏輯混合型控制器。</p><p><b>  c.時序控制部件</b></p><p>  指令執(zhí)行過程中所有操作都必須按照一定的次序完成,而且每個操作在什么時刻執(zhí)行,執(zhí)行多長時間都有嚴(yán)格的規(guī)定,不能有任何差錯。例如執(zhí)行加法 指令,必須先將操作數(shù)送到ALU的輸入端,然后再給出ALU執(zhí)行加法的操作控制信號,待加法操作完成后,才能

32、將結(jié)果送往目的地。不僅次序有規(guī)定,而且對什么時刻送操作數(shù)、什么時刻執(zhí)行加法操作、什么時刻送出結(jié)果也有規(guī)定。因此,需要時序概念。圖2.1中時序控制部件的作用就是產(chǎn)生一組時序信號,即一系列電位與脈沖,送到微操作產(chǎn)生部件,對各種操作信號進行時序控制。</p><p><b>  2.2 實驗環(huán)境</b></p><p>  JZYL—Ⅱ型計算機組成原理實驗儀一臺。</

33、p><p><b>  導(dǎo)線若干。</b></p><p>  涉及芯片類型及數(shù)量如表2.1所示。</p><p>  表2.1 所需芯片類型及數(shù)量</p><p><b>  3 模塊設(shè)計方案</b></p><p><b>  3.1 實驗分析</b>&

34、lt;/p><p>  分析本次課程設(shè)計中對簡易CPU的要求,需要設(shè)計的功能部件有主存儲器、控制存儲器、運算器、寄存器、計數(shù)器等。由于課程設(shè)計提供的芯片種類有限,我們選取了其中的74LS373、181、6116、2816A、74LS244、74LS193、74LS157、74LS395等芯片實現(xiàn)相應(yīng)的功能。</p><p>  我們設(shè)計的機器指令長度為8為,其中前4位為操作碼,后四位為操作數(shù)。

35、</p><p>  在設(shè)計方案時,我們先將總體方案分解為多個小的模塊,分別進行設(shè)計,然后再將各個模塊拼接在一起,實現(xiàn)最終需要的功能。分解的模塊包括主存儲器、控制存儲器、運算器、寄存器、計數(shù)器。下面將逐個分析各個模塊的設(shè)計思路。</p><p><b>  3.2 數(shù)據(jù)通路圖</b></p><p>  圖3.1 數(shù)據(jù)通路圖</p>

36、;<p>  課程設(shè)計的數(shù)據(jù)通路圖如圖3.1所示。圖中標(biāo)明了計算機系統(tǒng)中的各個部件,包括內(nèi)存、程序計數(shù)器、運算器、寄存器、控制存儲器、指令寄存器、數(shù)據(jù)寄存器、微指令寄存器等等功能部件。同時,也注明了不同部件的芯片組成,以及控制信號。控制信號是由微程序中的信號(見4.3 微程序設(shè)計)和時序節(jié)拍通過組合邏輯的方式形成。</p><p><b>  3.3 模塊設(shè)計</b></

37、p><p>  3.2.1 主存儲器</p><p>  主存儲器相當(dāng)于計算機系統(tǒng)中的主存。我們選擇一片6116作為主存儲器。我們設(shè)計的機器指令長度為8位,低4位為操作數(shù),所以,我們只選用了6116的低四位地址,其他地址位均接低電平。換言之,我們能手動寫入的內(nèi)存只有16位,分別從0000到1111。</p><p>  在寫入6116時,使用了一片74LS244作為緩沖

38、器。因為在總體電路中,6116的輸入可能會有多個,為了避免沖突,使用一片244可以方便后面輸入端的選擇。</p><p>  6116的地址通過一片74LS157后輸入。選擇74LS157的原因是,6116的地址選擇有多種情況。第一種情況是手動輸入地址,這種情況發(fā)生在程序執(zhí)行前,需往6116中寫入程序,此時的地址由操作人員手動選擇;第二種情況是程序自動選擇,這種情況發(fā)生在程序連續(xù)執(zhí)行過程中,由PC自動選擇內(nèi)存地址

39、,取出操作指令或者指令的實現(xiàn)方式為直接尋址時,選擇數(shù)據(jù)的地址。主存儲器的結(jié)構(gòu)圖如3.2所示。</p><p>  圖3.2 主存儲器結(jié)構(gòu)圖</p><p>  6116芯片的功能如表3.1所示。我們選擇的寫模式為=L,=L,=L。我們選擇的讀模式為=L,=H,=L。其中,需要控制的只有,另外兩個輸入保持不變。6116是RAM芯片,斷電后,芯片內(nèi)的信息將會丟失。</p><

40、;p>  表3.1 6116芯片功能表</p><p>  74LS244芯片的功能如表3.2所示。</p><p>  表3.2 74LS244芯片功能表</p><p>  74LS157芯片的功能如表3.3所示。</p><p>  表3.3 74LS157芯片功能表</p><p>  3.2.3

41、控制存儲器</p><p>  控制存儲器是整個課程設(shè)計中最重要的一個模塊,這一部分設(shè)計起來沒有太大難度。但是,由于微程序設(shè)計中的微指令是從控制存儲器中取出的,這一部分的設(shè)計尤為重要。</p><p>  我們選擇兩片2816作為控制存儲器。我們設(shè)計的微指令中,一共有13位有效信號。由于2816是8位的,所以,需要兩片2816存儲需要的微指令。我們設(shè)計的機器指令長度為8位,高4位為操作指令

42、,所以,只選用了2816的低四位地址,其他地址位均接低電平。換言之,我們能寫入的控制信號只有16位,分別從0000到1111。實際上,我們設(shè)計的指令只有12條,16個內(nèi)存已能滿足需求。</p><p>  在寫入2816時,使用了一片74LS244作為緩沖器。寫入完成后,去掉74LS244。因為2816中的信息是確定的,每一個8位(兩個2816應(yīng)是16位)都對應(yīng)著一條微指令,只要一次正確寫入后,以后都不需要更改。

43、由于2816是ROM芯片,斷電后,信息不會丟失。但是,寫入數(shù)據(jù)時,需要使用一片74LS244,作為緩沖器。</p><p>  2816的微指令信號輸出后,將會鎖存到373中,避免在指令執(zhí)行周期,控制信號發(fā)生改變。與2816相連的兩片373的功能相當(dāng)于計算機系統(tǒng)中的μIR(微指令寄存器)。</p><p>  與2816相連的74LS395的作用是,在執(zhí)行周期結(jié)束后,395清零(也可能是結(jié)

44、束前,只要對結(jié)果不產(chǎn)生干擾就可以),系統(tǒng)進入取值周期。</p><p>  與74LS395相連的74LS373相當(dāng)于計算機系統(tǒng)中的IR(指令寄存器)。其中,高4位為操作指令,這4位將會作為74LS395的輸入,選擇2816中的微指令,進而鎖存在微指令寄存器中??刂拼鎯ζ鞯慕Y(jié)構(gòu)圖如圖3.3所示。</p><p>  結(jié)構(gòu)圖中沒有標(biāo)明寫入2816時用到的緩沖器74LS244,因為它只在寫入時

45、使用,寫入成功之后,244將沒有其他的作用,可以去掉。</p><p>  圖3.3 控制存儲器結(jié)構(gòu)圖</p><p>  2816的芯片功能如表3.4所示。</p><p>  表3.4 2816芯片功能表</p><p>  74LS373芯片功能如表3.5所示。</p><p>  表4.6 74LS373功能

46、表</p><p>  74LS395芯片功能如表3.6所示。</p><p>  表3.6 74LS395芯片功能表</p><p>  3.2.3 運算器和寄存器</p><p>  運算器是CPU可以實現(xiàn)運算操作的基本部件,所使用的芯片本身只能實現(xiàn)最基本的加減算術(shù)運算和亦或、非與等基本邏輯運算。但是,通過基本運算的組合,可以實現(xiàn)及其復(fù)

47、雜的運算,如積分,甚至傅里葉變換?,F(xiàn)代計算機可以顯示各種我們需要的功能,但是,如果把每條指令分解來看,可以發(fā)現(xiàn),它可以做到的事情實際上再簡單不過。唯快不破,它通過將處理速度做到極致,即使它做的事情異常簡單,但是,它能做到的事情卻可以改變整個世界。</p><p>  由于提供的芯片中,能顯示運算操作的芯片只有74LS181。所以,181芯片是實現(xiàn)運算器的不二選擇。由于設(shè)計的數(shù)據(jù)位數(shù)為8位,而181只能實現(xiàn)4為的邏

48、輯運算和算術(shù)運算,所以,我們需要兩片74LS181來實現(xiàn)8位數(shù)據(jù)操作。181的B輸入通過了74LS157,原因是,由于尋址方式有立即數(shù)和直接尋址,所以,通過157來選擇不同的尋址方式。157中的數(shù)據(jù)有兩種情況,一種是立即數(shù),這時高四位為0(由于指令位數(shù)的限制,立即數(shù)只能有4位);另一種是直接尋址,這時181中的8位數(shù)據(jù)全部來自于主存6116。</p><p>  74LS181的運算結(jié)果輸入后,鎖存在74LS37

49、3中,這樣,可以防止運算結(jié)果被下一條運算操作改變。與這個373相連的是另外一個74LS373,它的作用相當(dāng)于一個寄存器。181中的A輸入來自于這個373(寄存器)。</p><p>  74LS157的其中一個輸入來自一個74LS373,它的作用相當(dāng)于計算機系統(tǒng)中的數(shù)據(jù)寄存器(DR)。直接尋址時,數(shù)據(jù)從主存6116中讀出,鎖存在這個373中,進行運算時,數(shù)據(jù)寄存器中的數(shù)據(jù)一直保持不變。運算器的結(jié)構(gòu)圖如圖3.4所示

50、。</p><p>  圖3.4 運算器結(jié)構(gòu)圖</p><p>  74LS181的功能比較強大,可以實現(xiàn)多種邏輯運算和位運算,圖3.5列出了181的部分功能,其中,A0,A1,A2,A3,B0,B1,B2,B3位運算器輸入;F0,F(xiàn)1,F(xiàn)2,F(xiàn)3為運算器輸出;S0,S1,S2,S3為運算指令控制端;M位算術(shù)或邏輯運算控制端;為有無進位控制端,為高位進位。</p><p

51、>  圖3.5 74LS181功能表</p><p>  3.2.4 程序計數(shù)器</p><p>  程序計數(shù)器的功能比較簡單,就是在程序執(zhí)行過程中,指示正確的內(nèi)存地址,讓計算機自動的從內(nèi)存中讀取出正確的指令執(zhí)行。順序執(zhí)行時,每一條執(zhí)行指令結(jié)束,PC自加1;但有跳轉(zhuǎn)指令出現(xiàn)時,PC被設(shè)置為需要跳轉(zhuǎn)到的內(nèi)存地址。</p><p>  提供的芯片中,具有計數(shù)功能

52、的有74LS193和74LS181。但是,181的功能過于強大,用這個比較復(fù)雜的芯片去實現(xiàn)如此簡單的功能,不太合適,況且,181的置數(shù)操作不太容易實現(xiàn),經(jīng)比較可以知道,應(yīng)選用193做為顯示程序計數(shù)器的芯片。一片74LS193便可以實現(xiàn)。</p><p>  與74LS193相連的373是指令寄存器。當(dāng)出現(xiàn)跳轉(zhuǎn)指令時,指令寄存器的低4位將會被load到193中,以確保下一條指令的執(zhí)行時正確的。在順序執(zhí)行的情況下,1

53、93實現(xiàn)的都是+1功能。由于一片193只有四位,所以,能表達的指令內(nèi)存地址最大只能到1111。</p><p>  74LS193的輸入接到一片74LS157,而此片157的另外一個輸入為指令寄存器的低4位。這樣設(shè)計是因為,取址周期時,從PC中讀入地址,在從6116的指定內(nèi)存單元中讀出8位操作指令;而在執(zhí)行階段,如果尋址方式為直接尋址,則需要將指令寄存器的低4位作為數(shù)據(jù)的內(nèi)存地址,從6116的指定內(nèi)存單元中讀出8

54、位操作數(shù)。因為這兩種情況都是存在的,所以,需要有一片74LS157來區(qū)分這兩種情況。區(qū)分的條件是不同的機器指令對應(yīng)著不同的微操作,通過微指令來選擇157的輸出是程序計數(shù)器的輸入還是指令寄存器的低4位輸入。</p><p>  程序計數(shù)器的結(jié)構(gòu)圖如圖3.6所示。</p><p>  圖3.6 程序計數(shù)器結(jié)構(gòu)圖</p><p>  74LS193芯片的功能如表3.7所示

55、。</p><p>  表3.7 74LS193芯片功能表</p><p><b>  功能說明:</b></p><p>  直接清零:當(dāng)=1時,計數(shù)器異步清零。</p><p>  直接置數(shù):當(dāng)LD=0時,計數(shù)器異步置數(shù)。</p><p>  二進制加/減法計數(shù)脈沖CPU/CPD上升沿有效。

56、</p><p>  3.2.5 總體設(shè)計</p><p>  整個課程設(shè)計的總體結(jié)構(gòu)圖如圖3.6所示??傮w結(jié)構(gòu)圖中,添加了一個回存的功能,由于只是在寄存器后邊加上一個74LS244芯片,然后將244的輸出接到主存6116的輸入端,所以,在模塊設(shè)計中,沒有把回存作為單獨的一個模塊說明。</p><p>  圖3.6 總體結(jié)構(gòu)圖</p><p&g

57、t;<b>  4 微指令設(shè)計</b></p><p>  4.1 機器指令設(shè)計</p><p>  根據(jù)課程設(shè)計要求,我們設(shè)計的機器指令為8位,其中,前4位表示操作命令,后4位為操作數(shù)。由于操作命令用4位表示,所以,可以實現(xiàn)的操作最多只能有16條。</p><p>  設(shè)計的指令包括算術(shù)指令:立即數(shù)加、直接尋址加、直接尋址減;邏輯運算:非運算

58、、與運算、亦或運算;回存;跳轉(zhuǎn)指令:無條件跳轉(zhuǎn)、溢出跳轉(zhuǎn);載入指令;乘二指令;停機指令;取址操作。其中,直接尋址加、直接尋址減、邏輯運算及乘二運算均使用隱含尋址。</p><p>  取址操作、立即數(shù)加、載入操作、跳轉(zhuǎn)指令和回存指令均使用立即數(shù)尋址。直接尋址加、直接尋址減、與運算、亦或運算均使用直接尋址。</p><p>  機器指令由操作人員將匯編語言翻譯成機器語言后,手動輸入到內(nèi)存中。

59、</p><p><b>  4.2 微指令設(shè)計</b></p><p>  控制存儲器由兩片2816組成,最多可以有16位控制信號。但我們在設(shè)計微指令時,只使用了13個控制信號,使用了一片2816的所有8位,另一片2816的低5位。</p><p>  微命令編碼方法采用直接表示法,將微指令操作控制字段的每一個二進制位定義為一個微命令。一條微

60、指令從控存中取出時,它所包含的微命令經(jīng)時間同步后去控制相應(yīng)的數(shù)據(jù)通路中的部件。13位控制信號機器作用如表4.1所示。其他3位接低電平。</p><p>  表4.1 控制信號作用</p><p><b>  4.3 微程序設(shè)計</b></p><p>  程序中每一條指令用8位二進制位來表示,而前四位為操作碼,即為實現(xiàn)該指令的微程序的入口地址

61、,后四位為操作數(shù)的地址(直接尋址)或操作數(shù)(立即數(shù)尋址)。</p><p>  操作指令對應(yīng)的微程序如表4.2所示。寫出這個表的過程比較復(fù)雜,也是整個課程設(shè)計最有技術(shù)含量的一部分,還有一部分是時序電路的加入。首先,先把可能需要控制的全部芯片控制信號列舉出來,可能會超過16個,但是沒關(guān)系,因為在后面的步驟中,會發(fā)現(xiàn)有些控制信息一直沒有變化,可以用一個確定的信號代替。然后,給需要用到的指令分配一個4位的控存地址,這將

62、會成為該指令的微程序的入口地址。由于指令只有4位,所以,所有指令條數(shù)不能超過16條。接著,就是比較復(fù)雜的一步了。分析每一條指令,畫出每條指令的數(shù)據(jù)流和控制流,(具體流程圖見4.4 指令流程圖)通過這種方式,知道每條指令需要的控制信號。</p><p>  表4.2 匯編指令對應(yīng)的微程序表</p><p>  微程序表中,每條微程序都有16個控制信號。芯片編號參考圖4.13。如表中編號所示,

63、0,1,2,3分別表示181中的S0,S1,S2,S3;4,5分別表示181中的和M;6表示244a的;7表示157a和157b的使能端S;8表示157c的使能端S;9表示395中的;10用來停機,實際使用時,沒有使用9號控制信號;11和12分別表示193中的up和load;其他位均為0。</p><p><b>  4.4 指令流程圖</b></p><p>  我

64、們設(shè)計的指令,包括取址公操作在內(nèi),一共有12條。不同類型的指令控制流和數(shù)據(jù)流都是不相同的,由于數(shù)據(jù)流這個部分可以參考圖2.1,圖中說明了所有數(shù)據(jù)所在的芯片。在同一個周期中,數(shù)據(jù)都是存在的,關(guān)鍵在與控制信息在同一個周期中不同節(jié)拍的控制。需要控制的芯片包括74LS373,它是8位鎖存器,所以,需要控制數(shù)據(jù)何時寫入373中,何時保持373中的數(shù)據(jù)不發(fā)生改變;74LS157,它是2選1數(shù)據(jù)選擇器,所以,需要控制輸出數(shù)據(jù)是兩個輸入數(shù)據(jù)中的哪一個;

65、6116,這個芯片在回存指令時,必須要在某個節(jié)拍變成寫模式,但是,在其他指令的周期中,必須一直保持讀模式。另外還需要控制的芯片是74LS395,因為取址周期前,它需要清零,而執(zhí)行周期前,它需要置數(shù)。</p><p>  4.4.1 取指公操作</p><p>  我們設(shè)計的指令都是雙周期的,其中,第一個周期為取指周期,從內(nèi)存中取出執(zhí)行指令;第二個周期為執(zhí)行周期,執(zhí)行該指令。取址公操作的控制

66、信號存放在控制存儲器的0000號單元,也就是說,需要進行取址操作時,將395清零即可。控制信號從控制存儲器中讀出后,寫入到微指令寄存器中。通過這一組控制信號,從6116的指定單元中讀出指令。指令存放在指令寄存器中。接下來,將4位操作指令載入74LS395中。這4位操作數(shù)成為這條指令的微程序的入口地址,從控制存儲器中讀出微程序后,鎖存在微指令寄存器中。(這個鎖存的節(jié)拍不在取指公操作,而是在執(zhí)行周期的第一個節(jié)拍)</p>&l

67、t;p>  取值公操作的控制流如圖4.1所示。</p><p>  圖4.1 取值公操作控制流</p><p>  4.4.2 立即數(shù)加</p><p>  立即數(shù)加的控制流程圖如圖4.2所示。</p><p>  圖4.2 立即數(shù)加控制流</p><p>  4.4.3 直接尋址加</p>&

68、lt;p>  立即數(shù)加和直接尋址加的區(qū)別在于,立即數(shù)加的加數(shù)為低4位操作數(shù),被加數(shù)為寄存器AC中的值;而直接尋址加的加數(shù)為地址為低4位操作數(shù)的6116單元內(nèi)的數(shù)據(jù),被加數(shù)為寄存器AC中的值。其他基本一致。</p><p>  直接尋址加的控制流程圖如圖4.3所示。</p><p>  圖4.3 直接尋址加控制流</p><p>  4.4.4 直接尋址減&l

69、t;/p><p>  直接尋址加和直接尋址減的數(shù)據(jù)流和控制流上基本一致,只是在74LS181的控制上,對于4個運算控制信號有些區(qū)別。</p><p>  直接尋址減的控制流程圖如圖4.4所示。</p><p>  圖4.4 直接尋址減控制流</p><p><b>  4.4.5 回存</b></p><

70、;p>  回存時,內(nèi)存需要由讀模式變?yōu)閷懩J健?lt;/p><p>  回存控制流程圖如圖4.5所示。</p><p>  圖4.5 回存控制流</p><p>  4.4.6 無條件跳轉(zhuǎn)</p><p>  無條件跳轉(zhuǎn)控制流程圖如4.6所示。</p><p>  圖4.6 無條件跳轉(zhuǎn)控制流</p>

71、<p>  4.4.7 有條件跳轉(zhuǎn)</p><p>  有條件跳轉(zhuǎn)流程圖如圖4.7所示。與無條件跳轉(zhuǎn)的不同之處在于,必須判斷數(shù)據(jù)時是否溢出。如果有溢出,則實現(xiàn)跳轉(zhuǎn),否則不實現(xiàn)跳轉(zhuǎn)。</p><p>  圖4.7 有條件跳轉(zhuǎn)控制流</p><p><b>  4.4.8 非</b></p><p>  求非指

72、令控制流程圖如圖4.8所示。</p><p>  圖4.8 求非指令控制流</p><p><b>  4.4.9 與</b></p><p>  求非指令使用的尋址方式是隱含尋址,但是求與指令使用的尋址方式是隱含尋址加直接尋址。所以,數(shù)據(jù)通路要比求非運算要長一些??刂菩盘栆哺鼜?fù)雜一些。</p><p>  求與指令的

73、控制流程圖如圖4.9所示。</p><p>  圖4.9 求與指令控制流</p><p><b>  4.4.10 異或</b></p><p>  亦或指令和與指令的數(shù)據(jù)流和控制流上基本一致,只是在74LS181的控制上,對于4個運算控制信號有些區(qū)別。</p><p>  亦或指令的控制流程圖如圖4.10所示。<

74、;/p><p>  圖4.10 亦或指令控制流</p><p>  圖4.11 乘2指令控制流</p><p>  4.4.11 SHL</p><p>  乘2指令的尋址方式為隱含尋址,即把寄存器AC中的值擴大一倍,再存入AC中。</p><p>  乘2指令的控制流程圖如圖4.11所示。</p>&l

75、t;p>  4.4.12 LOAD</p><p>  載入指令的功能是將指定內(nèi)存單元中的數(shù)據(jù)載入寄存器AC中,作為運算的初始值。與之相對應(yīng)的是回存指令,它的作用是將寄存器AC中的值存入指定內(nèi)存單元。</p><p>  載入指令的控制流程圖如圖4.12所示。</p><p>  圖4.12 載入指令控制流</p><p>  4.5

76、 芯片控點設(shè)計</p><p>  在設(shè)計微指令之前,我們分析整個電路中的各個芯片的控點,其中有些是需要控制的,而有些是不需要變動的,始終接到一個電位就可以了。數(shù)據(jù)通路圖如圖4.13所示。</p><p>  圖4.13 數(shù)據(jù)通路圖</p><p>  不需要控制的控點有:</p><p>  向6116輸入的74LS244芯片:和并接到一

77、個開關(guān)上,只有在寫機器指令的時候為低電平,其他時刻都為高電平,手動控制,不需要微指令控制。和并接接地,多余的地址線接在一起并接地。</p><p>  向2816輸入的74LS244芯片:和并接到一個開關(guān)上,只有在寫微指令的時候為低電平,其他時刻都為高電平,手動控制,不需要微指令控制。多余地址線接地。</p><p>  74LS157d芯片:使能端S分別接開關(guān),需要手動控制輸入改變地址時

78、為低電平,0通道選通;其他時候為高電平,1通道選通。</p><p>  所有74LS373芯片的輸出控制端接地。</p><p>  2816芯片:和并接接地,多余的地址線接在一起并接地。</p><p><b>  需要控制的控點有:</b></p><p>  回存244a芯片:和并接一起控制。</p>

79、<p>  74LS157a,74LS157b,74LS157c芯片的使能端S。</p><p>  所有74LS373的使能端S。</p><p>  181芯片:運算指令控制端,算術(shù)或邏輯運算控制端M,有無進位控制端。</p><p><b>  6116芯片:端。</b></p><p>  74LS

80、193的up和load。 </p><p>  74LS395的,和。</p><p>  這些控點都是需要微程序中的信號來控制的,具體控制見表4.2。還有些控制信號需要微程序中的控制信號與時序節(jié)拍組合邏輯后實現(xiàn),具體組合邏輯見4.4 指令控制流程圖。</p><p>  表達式如下。其中T1,T2,T3,T4分別表示一個周期中的四個節(jié)拍,C11和C12為表4.2中

81、編號為11,12的控制信號,A3是4位操作指令中的最低位。</p><p>  373a的使能端G = T3;</p><p>  373b的使能端G = T4;</p><p><b>  373c的使能端;</b></p><p><b>  373d的使能端;</b></p>&

82、lt;p>  373e和373f的使能端;</p><p><b>  395的=,;</b></p><p><b>  193的, </b></p><p><b>  5 實驗過程與調(diào)試</b></p><p>  5.1 主要故障與調(diào)試</p>&l

83、t;p>  5.1.1 395載入失敗</p><p>  74LS395在本次課程設(shè)計中的功能有兩個,第一個功能是在取址周期前,將數(shù)據(jù)清零。而0000是控制存儲器中,取址指令的入口地址。通過這一操作,將取址的控制信號鎖存在微指令寄存器中,保證雙周期中,取址周期的正確執(zhí)行。第二個功能是在執(zhí)行周期前,將指令寄存器中的高4位,也就是4位操作命令載入,此時,將會從控制存儲器中讀出特定指令的控制信號,鎖存到微指令寄

84、存器中,保證執(zhí)行周期的正確執(zhí)行。</p><p>  按照步驟連接好電路后,開始測試時,發(fā)現(xiàn)74LS395清零功能是好的,但是,載入功能出問題了。給395提供載入信號后,輸出仍然保持不變,還是0000。</p><p>  接下來需要做的就是排錯。首先,將395的輸入信號和輸出信號分別接到信號燈上,及時顯示輸入和輸出的數(shù)據(jù)。結(jié)果發(fā)現(xiàn),不論輸入信號如何,加上載入信號后,4個輸出燈全是藍色的,

85、也就是0000。問題只有可能出在控制信號上,于是,我們也將控制信號接到信號燈上。讓我們不可思議的是,控制信號也沒有問題。</p><p>  最后,由于時間的原因,我們必須要離開實驗室,便將試驗臺斷電了。第二天來后,發(fā)現(xiàn)這個問題莫名其妙的被解決了。到現(xiàn)在也不知道載入失敗的原因是什么。</p><p>  5.1.2 6116中存儲數(shù)據(jù)被改變</p><p>  61

86、16數(shù)據(jù)的寫入是一個很大的問題。寫入數(shù)據(jù)時,之前的已經(jīng)寫入的數(shù)據(jù)經(jīng)常會被后來的數(shù)據(jù)更改,所以,從6116指定的內(nèi)存中讀出數(shù)據(jù)時,顯示在信號燈上的數(shù)據(jù)總是和預(yù)期的不一樣。仔細觀察后發(fā)現(xiàn),這些數(shù)據(jù)是之后寫入的某些數(shù)據(jù),也就是說,數(shù)據(jù)被改寫了。</p><p>  分析6116的寫入方式,它是直接寫入的,不需要另外的載入信號,當(dāng)?shù)刂繁贿x定后,數(shù)據(jù)就已經(jīng)寫入了制定的內(nèi)存單元中。為了避免這一問題,我們在寫入數(shù)據(jù)的過程中,需

87、要改變地址時,要先選到較大的地址,保證這一地址還沒有寫入數(shù)據(jù)。比如寫完0011后,接下來寫入0100,這時候需要做的是,先將地址選擇到0111,然后再選擇到0100。通過這種方式,解決了6116中數(shù)據(jù)被改變的問題。</p><p>  5.1.3 2816中存儲數(shù)據(jù)被改變</p><p>  將控制信號寫入2816后,馬上測試,讀出2816中存儲的數(shù)據(jù),保證數(shù)據(jù)都是準(zhǔn)確無誤的。但是,斷電后

88、,第二天發(fā)現(xiàn),2816中的0000單元和0001單元數(shù)據(jù)被改變,而其他單元中的數(shù)據(jù)都沒有問題。我們只能重新寫入2816中的數(shù)據(jù)。這次因為偷懶,沒有使用244作為緩沖器,而是直接將信號給到了2816的輸入輸出端。寫入成功后,將2816由寫模式轉(zhuǎn)換成讀模式。結(jié)果,輸出信號燈的顏色變得很詭異,馬上可以判定,這是數(shù)據(jù)沖突了。</p><p>  檢查電路后,發(fā)現(xiàn)這是因為沒有使用244的原因。因為沒有244的高阻功能,使得

89、輸入信號和2816的輸出信號同時存在了。將輸入信號去掉后,信號燈變得正常。</p><p>  但是,奇怪的事情發(fā)生了,當(dāng)寫入其中一片2816時,另一片2816的數(shù)據(jù)也被改變了,但是,我們對另一片2816什么也沒做。</p><p>  這樣直接輸入嘗試了幾次之后,發(fā)現(xiàn)這樣的問題一直是存在的。檢查電路發(fā)現(xiàn),兩片2816的控制信號是接在一起,也就是說,當(dāng)一片2816處于寫模式時,另一片281

90、6也處于寫模式(這是由于控制信號相同造成了)。由于另一片2816的輸入沒有給,所以,寫入的數(shù)據(jù)肯定是有問題的。于是,我們將兩片2816同時寫入,這樣,就不會出現(xiàn)一片2816寫入,另一片輸入懸空的情況了。</p><p>  在寫入2816的過程中,還遇到了一個問題。因為之前2816的控制開關(guān)沒有放在一起,在寫模式與讀模式之間轉(zhuǎn)換時,有些麻煩,所以,想改變開關(guān)的位置,把它們放在一起,方便操作。但是,當(dāng)把CE控制開關(guān)

91、撥出來后,就出大問題了。2816所有單元的數(shù)據(jù)全部被改變。原來,CE這個控制信號只能在斷電的情況下才能改變,這是另一組的同學(xué)告訴我的,他們也遇到過這樣的問題。沒辦法,2816中的控制信號只能再次寫入。</p><p>  5.1.4 193計數(shù)器跳轉(zhuǎn)出問題</p><p>  在時序執(zhí)行時,遇到最嚴(yán)重的問題要算這個了。當(dāng)把所有的機器指令寫入6116后,開始自動執(zhí)行,順序執(zhí)行語句執(zhí)行得很好,

92、一點問題都沒有,而且很穩(wěn)定。但是,遇到跳轉(zhuǎn)指令時,問題就來了。如果需要跳轉(zhuǎn)的地址的最低位為0,則不會有任何的問題;但是,如果最低位為1,則跳轉(zhuǎn)的地址會自動加1。這個問題真的解決不了,跟老師討論過這個問題,也安裝排錯的步驟把193的輸入輸出都接了出來,發(fā)現(xiàn)載入時,輸入和預(yù)期的一樣,但是輸出就會加1。為了嘗試解決這個問題,我們將PC自加的節(jié)拍由執(zhí)行周期換到了取址周期,但是,對這個問題沒有什么實質(zhì)性的作用。換過193,但這個問題依然存在。大約

93、花了2天的時間,改過很多的控制節(jié)拍,除了拿掉很多冗余的導(dǎo)線外,基本沒有什么大的幫助。</p><p>  最后沒有辦法,在檢查的時候,需要實現(xiàn)跳轉(zhuǎn)的功能時,我們只能講跳轉(zhuǎn)的地址設(shè)定到最低位為0。這樣人為的去編寫機器代碼,避開了這個無法消除的問題。</p><p>  5.1.5 193自加時的毛刺</p><p>  這個問題是大家在做實驗時普遍遇到過的問題。因為1

94、93芯片本身的問題,通過一個負(fù)脈沖,實現(xiàn)數(shù)據(jù)的加1功能。但是,芯片對負(fù)脈沖實在太過于敏感,如果用手指握住導(dǎo)線的一端,另一端接到193的up,可以看到,193的數(shù)據(jù)就會不停的跳動。當(dāng)有人從旁邊走過的時候,193也會自加。進行時序控制時,有些與193加1毫不相干的節(jié)拍出現(xiàn)時,也會使193的值發(fā)生改變。</p><p>  跟同學(xué)討論后,知道了大家基本上都有遇到這樣的問題,至于解決方案,有些同學(xué)是在脈沖信號給到193的

95、up前,接2個D觸發(fā)器,這樣,就可以達到整形的目的。但是我們沒這么做。我們是盡可能的減少直接接到時序的導(dǎo)線數(shù)量,最后做到接到T0,T1,T2,T3都只有一根導(dǎo)線,這樣就減少了信號之間的干擾,193的跳動也開始受控制了。</p><p><b>  5.2 功能測試</b></p><p>  檢查時,我們有兩組測試程序,一組是我們自測時用到的程序,將所以的指令全部執(zhí)行

96、了一遍。另外一組是老師布置給我們的任務(wù),讓我們實現(xiàn)一個比較大小的功能,并顯示較大的那個數(shù)據(jù)。需要先寫出匯編語句,再將匯編改寫成機器指令。</p><p>  自測程序如表5.1所示。</p><p>  表5.1 自測程序</p><p>  按照上述內(nèi)容寫好主存后,手動將PC清零,將395清零,按下START鍵使程序自動運行,觀察各指示燈顯示,運行結(jié)果正確。&l

97、t;/p><p>  老師要求實現(xiàn)功能程序如表5.2所示。</p><p>  表5.2 要求功能程序</p><p>  該段機器指令的功能是比較1110單元與1111單元數(shù)據(jù)的大小,并將較大的數(shù)據(jù)載入到AC中。由于此時1110單元的值為6A,1111單元的值為6C,所以,AC的預(yù)期值為6C。執(zhí)行該代碼后,觀察指示燈顯示,顯示結(jié)果正確。</p><

98、;p>  交換6116中1110單元與1111單元的數(shù)據(jù),其他的機器指令不發(fā)生任何改變,再次執(zhí)行該指令。此時6116中各單元的數(shù)據(jù)和AC的預(yù)期值如表5.3所示。</p><p>  表5.2 要求功能程序</p><p>  此時,1110單元的數(shù)據(jù)為6C,1111單元的數(shù)據(jù)為6A。執(zhí)行同樣的指令后,觀察指示燈,AC顯示的結(jié)果仍然為6C。說明該機器代碼可以實現(xiàn)比較大小的功能。<

99、;/p><p><b>  5.3 實驗流程</b></p><p>  第一天:在實驗室聽老師布置任務(wù)和集中講解。熟悉實驗要求,查閱資料。</p><p>  第二天:領(lǐng)取芯片和導(dǎo)線。</p><p>  第三天:測試導(dǎo)線和芯片,熟悉芯片的功能。設(shè)計實驗方案。</p><p>  第四天:初步完成總

100、體實驗圖的設(shè)計。</p><p>  第五天:設(shè)計微指令。</p><p>  第六天:設(shè)計微指令,測試微指令。</p><p>  第七天:測試電路,測試各種硬布線信號。</p><p>  第八天:測試硬布線信號,修改硬布線信號。</p><p>  第九天:測試微指令,修改微指令。</p><

101、p>  第十天:修改微指令。</p><p>  第十一天:處理74LS193的自加問題以及跳轉(zhuǎn)問題。</p><p>  第十二天:處理74LS193的跳轉(zhuǎn)問題,下午檢查。</p><p><b>  6 設(shè)計總結(jié)與心得</b></p><p><b>  6.1 課設(shè)總結(jié)</b></

102、p><p>  基于微程序控制器的簡單計算機系統(tǒng)設(shè)計是基于CPU的基本運行原理選取適當(dāng)芯片實現(xiàn)的。在本次課程設(shè)計過程中,我們對如下內(nèi)容作了總結(jié)工作。</p><p>  6.1.1 方案總結(jié)</p><p>  本次課程設(shè)計,我們采用微程序方式實現(xiàn)簡易CPU。按照CPU基本工作原理,選擇適當(dāng)?shù)男酒瓿闪吮敬卧O(shè)計。我們采用定長的8位數(shù)據(jù)進行存取,4位地址用于數(shù)據(jù)存取,用

103、一片193芯片和157芯片實現(xiàn)主存地址的得到,利用193的加1和置數(shù)功能,完成程序的順序執(zhí)行和跳轉(zhuǎn),利用157芯片區(qū)分讀取指令或數(shù)據(jù);用一片6116芯片作為主存儲器存儲指令和數(shù)據(jù);用兩片181芯片相結(jié)合進行8位數(shù)據(jù)的數(shù)學(xué)運算和邏輯運算,在輸入端和輸出端共運用2片373芯片用于緩存運算的數(shù)據(jù)用于下次的運算和回存;用一片373芯片緩存由主存讀取出的指令;用一片373芯片緩存由主存讀取出的數(shù)據(jù);用一片244芯片控制進行回存工作;用一片395芯

104、片實現(xiàn)操作指令的清零和置數(shù)。</p><p>  6.1.2 功能總結(jié)</p><p>  本次課程設(shè)計,利用現(xiàn)有芯片,用傳統(tǒng)方式實現(xiàn)了微程序方式的簡單計算機系統(tǒng)的設(shè)計。采用8位定長指令,8位變長數(shù)據(jù)、16位微命令在單指令周期內(nèi),實現(xiàn)了算術(shù)邏輯運算、取數(shù)、存數(shù)、JMP、JO操作、移位操作、停機操作,并實現(xiàn)了隱含尋址、直接尋址、立即數(shù)尋址三種尋址方式。</p><p>

105、;  6.1.3 未實現(xiàn)功能總結(jié)</p><p>  未能實現(xiàn)JZ操作。有條件跳轉(zhuǎn)時,我們有兩個選擇,為零跳轉(zhuǎn)和溢出跳轉(zhuǎn)。因為為零跳轉(zhuǎn)的判斷比較復(fù)雜,需要使用多個或門,但實驗臺上的或門只有一片,所以,很難實現(xiàn)這一功能,我們只能退而求次之,選擇了對邏輯門要求較少的溢出跳轉(zhuǎn)。</p><p>  未能將溢出信號保留。我們將181的溢出信號鎖存在一片373中,當(dāng)數(shù)據(jù)溢出時,溢出信號將會保留兩個周

106、期。但是,在下個執(zhí)行周期發(fā)生時,執(zhí)行任何操作,溢出信號都會丟失。</p><p>  但是,如果是執(zhí)行邏輯運算或者是跳轉(zhuǎn)操作時,溢出信號不應(yīng)該發(fā)生改變。因為時間的原因,檢查完課設(shè)已經(jīng)是星期五的下午了,所以,這個功能未能實現(xiàn)。</p><p><b>  6.2 課設(shè)心得</b></p><p>  兩個星期的課程設(shè)計終于結(jié)束,回想這兩周,雖然很

107、辛苦,但也獲益良多。</p><p>  首先,這次計算機組成原理課程設(shè)計讓我充分認(rèn)識到磨刀不誤砍柴工。起先想著數(shù)據(jù)通路部分上學(xué)期做過實驗應(yīng)該很好實現(xiàn),我們便直接開始連接電路而沒有管總體架構(gòu),以致出現(xiàn)了剛開始就很多問題。幸虧我們迷途知返,重新開始思考,設(shè)計出總體實驗原理圖,并在大腦中運用邏輯推理模擬實現(xiàn)整個實驗總體方向。有了清晰的整體思路后繪制出電路圖,最后省下不少時間。</p><p>

108、  而且多與老師和其他同學(xué)交流至關(guān)重要。有時候遇到問題不能死鉆牛角尖,而應(yīng)該將問題提出來,與同學(xué)和老師討論,集思廣益才能事半功倍。其實我們遇到的很多問題,都是由于我們自己已經(jīng)有了一個思維定式,在思想上已經(jīng)肯定了我們的理論方案,所以無論在大腦中模擬多少次程序運行,仍然找不出問題出在哪里。這時候就必須主動問老師或者請教同學(xué)指點迷津,有時候甚至別人只說了一句話,我們就能茅塞頓開。</p><p>  同時遇到問題必須冷

109、靜思考。在這兩周的時間里我們遇到的問題層出不窮,也有著多方面的原因,有的是我們對實驗原理不夠熟悉,有的是太相信自己的思路,當(dāng)然也有很大部分是實驗臺的問題,當(dāng)遇到這些那些大大小小的問題時,很容易產(chǎn)生負(fù)面情緒,焦躁不安,面對著那么多的導(dǎo)線和芯片往往一個頭兩個大,因為這樣也浪費了不少時間。唯有靜下心來,耐心理順邏輯思路,往往會豁然開朗,茅塞頓開。</p><p>  這一次課設(shè)的所獲得的經(jīng)驗,是我們從課本上那些理論知識

110、上學(xué)習(xí)不到的。理論知識固然重要,但動手實踐能力往往更為重要。大多數(shù)人都有豐富的理論知識,但是一到動手操作的時候就會手足無措,手忙腳亂的,所以這一次的課設(shè)很好的培養(yǎng)了我們的動手能力和將理論結(jié)合實踐的能力。</p><p><b>  參考文獻</b></p><p>  《 計算機組成原理》(第一版) 秦磊華編著 清華大學(xué)出版社2011年2月</p>&l

111、t;p>  《數(shù)字邏輯實驗指導(dǎo)書》(第一版)華中科技大學(xué)計算機學(xué)院數(shù)字邏輯課程組編著2010年3月</p><p>  《計算機組成原理實驗指導(dǎo)書》(第六版)華中科技大學(xué)計算機學(xué)院計算機組成原理課程組編著 2010年9月</p><p><b>  附錄 部分芯片介紹</b></p><p>  1. 74LS193 二進制同步可逆計數(shù)器

112、</p><p>  193芯片引腳圖及引腳說明</p><p><b>  193芯片功能表</b></p><p><b>  功能說明:</b></p><p>  (1)直接清零:當(dāng)=1時,計數(shù)器異步清零。</p><p>  (2)直接置數(shù):當(dāng)LD=0時,計數(shù)器異步

113、置數(shù)。</p><p>  (3)二進制加/減法計數(shù)脈沖CPU/CPD上升沿有效。</p><p>  2. 74LS181 四位運算器</p><p><b>  181芯片引腳圖</b></p><p><b>  181芯片功能表</b></p><p>  3. 74

114、LS244 三態(tài)8位緩沖器</p><p><b>  244芯片引腳圖</b></p><p>  74LS244芯片功能表</p><p>  4. 74LS157 四位2選1數(shù)據(jù)選擇器</p><p>  74LS157芯片引腳圖</p><p>  74LS157芯片功能表</p&g

115、t;<p>  5. 74LS373 八D鎖存器</p><p>  74LS373芯片引腳圖</p><p>  74LS373功能表</p><p>  6. 6116 16K CMOS靜態(tài)RAM(2048*8)</p><p><b>  6116芯片引腳圖</b></p><p&

溫馨提示

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

最新文檔

評論

0/150

提交評論