計算機組成原理課程設(shè)計--復雜模型機設(shè)計報告_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  課程設(shè)計: 計算機組成原理 </p><p>  題目名稱: 復雜模型機設(shè)計 </p><p><b>  姓 名: </b></p><p><b>  學 號: </b></p><p>  班 級: 網(wǎng)絡(luò)工程1102<

2、;/p><p>  完成時間:2014年 1月 6日1設(shè)計目的: </p><p>  建立清晰完整的整機概念;</p><p>  學習設(shè)計與調(diào)試計算機的基本方法與步驟;</p><p>  培養(yǎng)嚴謹?shù)目蒲凶黠L和獨立工作能力。</p><p><b>  2 設(shè)計任務(wù):</b></p>

3、<p>  綜合運用所學的計算機原理知識,按給定的指令系統(tǒng)分和數(shù)據(jù)格式,在所提供的設(shè)備范圍內(nèi),設(shè)計一臺字長八位的由微程序控制器來控制的模擬計算機。設(shè)計并實現(xiàn)較為完整的八位模型計算機。</p><p>  設(shè)計微程序控制器的邏輯原理電路圖;</p><p>  設(shè)計微地址轉(zhuǎn)移的邏輯電路圖;</p><p><b>  設(shè)計微程序流程圖;</

4、b></p><p><b>  設(shè)計說明書。</b></p><p><b>  3 設(shè)計指標:</b></p><p><b>  字長八位;</b></p><p>  時鐘源MF=QB=1us;</p><p>  內(nèi)存容量不得小于2 8

5、 ;</p><p>  指令系統(tǒng)不得小于十四條。要求算術(shù)邏輯指令七條、訪問內(nèi)存和控制指令四條、輸入輸出指令兩條、其他指令一條。</p><p><b>  4 設(shè)計說明:</b></p><p><b>  4.1 數(shù)據(jù)格式</b></p><p>  模型機規(guī)定數(shù)據(jù)采用定點整數(shù)補碼表示,字長為8

6、位,其格式如下:</p><p>  其中,第7位為符號位,數(shù)值的表示范圍是:-1 ≤ X ≤ 1.。</p><p>  模型及設(shè)計四大類指令共16條,其中包括算術(shù)邏輯指令、I/O指令、訪問及轉(zhuǎn)移指令和停機指令。</p><p><b>  算術(shù)邏輯指令</b></p><p>  設(shè)計9條算術(shù)邏輯指令并用單字節(jié)表示,

7、尋址方式采用寄存器直接尋址,其格式如下:</p><p>  其中,OP-CODE為操作碼,RS為源寄存器,RD為目的寄存器,并規(guī)定:</p><p>  九條算術(shù)邏輯指令的助記符、功能和具體格式表8-1</p><p><b>  訪存指令及轉(zhuǎn)移指令</b></p><p>  模型機設(shè)計2條訪問指令,即存數(shù)(STA)

8、、取數(shù)(LDA)、2條轉(zhuǎn)移指令,即無條件轉(zhuǎn)移(JMP)、結(jié)果為零或有進位轉(zhuǎn)移指令(BZC)。其格式如下:</p><p>  其中,OP-CODE為操作碼, RD為目的寄存器地址(LDA、STA指令使用),D為位移量(正負均可),M為尋址模式,其定義如下:</p><p>  本模型機規(guī)定變址寄存器RI指定為寄存器R2。</p><p><b>  3.

9、I/O指令</b></p><p>  輸入(IN)和輸出(OUT)指令采用單字節(jié)指令,其格式如下:</p><p>  其中,addr=01 時,表示選中“INPUT DEVICE”中的開關(guān)組作為輸入設(shè)備,addr=10時,表示選中“OUTPUT DEVICE”中的數(shù)碼管作為輸出設(shè)備。</p><p><b>  控制臺指令</b>

10、;</p><p>  為了方便調(diào)試,且能寫入數(shù)據(jù)和程序,以及顯示內(nèi)存中的數(shù)據(jù),本模型機設(shè)計了兩條控制臺指令,它們由兩個開關(guān)SWA,SWBB的狀態(tài)來定義,如下表所示:</p><p>  (1)KWE寫內(nèi)存:其功能是把控制臺數(shù)據(jù)開關(guān)的內(nèi)容作為程序或數(shù)據(jù)寫入由地址燈指示的內(nèi)存單元。</p><p> ?。?)KRE讀內(nèi)存:其功能是把控制臺數(shù)據(jù)開關(guān)的內(nèi)容作為程序地址,送

11、入地址寄存器,然后以該單元為起始地址,連續(xù)讀出所有單元的內(nèi)容。內(nèi)存單元以及該單元的數(shù)據(jù)由控制臺上的數(shù)據(jù)燈給出指示。</p><p> ?。?)RP啟動程序:其功能是將數(shù)據(jù)開關(guān)的內(nèi)容作為作為程序地址送入PC,然后轉(zhuǎn)入公操作。</p><p><b>  5. 停機指令</b></p><p><b>  指令格式如下:</b&g

12、t;</p><p>  這類指令只有1條,即停機指令HALT,用于實現(xiàn)停機操作.</p><p><b>  4.2系統(tǒng)指令</b></p><p>  本模型機共有16條基本指令,其中算術(shù)邏輯指令7條,訪問內(nèi)存指令和程序控制指令4條,輸入/輸出指令2條,其他它指令1條。表8-1列出了各條指令的格式、助記符和功能。</p>&l

13、t;p><b>  4.3系統(tǒng)簡介</b></p><p>  本系統(tǒng)是一臺八位模型計算機,它由微程序控制器、數(shù)據(jù)通路、時序發(fā)生器等三大部分組成。它有16條基本指令,其中算術(shù)邏輯指令9條,訪問內(nèi)存指令和程序控制指令4條,輸入/輸出指令2條及停機指令1條。采用二進制代碼開關(guān)作為輸入設(shè)備,實現(xiàn)人機對話。</p><p>  4.4主要部件的工作原理</p>

14、;<p>  通常把許多寄存器之間傳送信息的通路,稱為“數(shù)據(jù)通路”。信息從什么地方開始,中間經(jīng)過哪些寄存器,最后傳送到哪個寄存器,這些工作是由稱為“操作控制器”的部件完成的。對數(shù)據(jù)通路和時序部分,我們直接使用了CM++實驗儀器的現(xiàn)成電路。本次課程設(shè)計的主要任務(wù)是微程序控制器部分。微程序控制器的基本思想是把操作控制信號編成微指令,存放在E2PROM中,當機器運行時,一條一條的讀出這些微指令,從而產(chǎn)生全機所需要的各種操作控制

15、信號,使相應(yīng)部分執(zhí)行所規(guī)定的操作。</p><p>  4.5微指令格式的設(shè)計</p><p>  對微程序制器的設(shè)計,關(guān)鍵在于先確定下來數(shù)據(jù)通路,數(shù)據(jù)通路一旦確定下來,指令流和數(shù)據(jù)流也就確定下來了,在數(shù)據(jù)通路圖的各功能部件上的各種控制信號就是微程序控制器設(shè)計的主要依據(jù)。用這些控制信號來控制數(shù)據(jù)通路中的數(shù)據(jù)流向。另外,為了使模型機實現(xiàn)自動停機操作,因此在微指令中必須有一個自動停機指令。在設(shè)

16、計中共有60多條微指令,故對控制器存儲器采用6位地址。所以在微指令設(shè)計中,總共要產(chǎn)生33個控制信號。為了減少指令長度,在本設(shè)計中,采用直接編碼和譯碼相結(jié)合的混合編碼。將一組相斥性的微命令信號組成一小組,然后將這一小組(A字段、B字段、C字段)信號通過譯碼器對每一個微命令信號進行譯碼,譯碼輸出作為本次設(shè)計的控制信號。其格式如下:</p><p>  表1 微指令代碼定義表</p>&

17、lt;p>  A字段 B字段 C字段</p><p>  表2 微命令代碼格式表</p><p>  微指令字長24位。其中順序控制部分9位,即直接地址6位,判別地址3位,后者采用字段譯碼法可譯出P(1)---P(4)4種判別測試標志位。操作控制字段18位:其中字段A、B、C均采用3—8譯碼器,可譯出

18、LDIR,PC—BUS,WE,RS—BUS,LDDR等微命令。其他微命令采用直接控制的方式。</p><p><b>  4.6微程序的設(shè)計</b></p><p>  將機器的全部指令系統(tǒng)采用微指令系列實現(xiàn)的過程,叫做微程序設(shè)計。一條機器指令對應(yīng)一條微程序。微程序是由微指令解釋執(zhí)行的。一條機器指令對應(yīng)一個指令周期。而一條微指令對應(yīng)一個CPU周期。微程序的設(shè)計包括橫向

19、設(shè)計和縱向設(shè)計。而微程序的設(shè)計關(guān)鍵在于縱向設(shè)計。</p><p>  縱向設(shè)計:由于該設(shè)計的后繼地址采用判定方式,其通常做法是首先確定微程序分支處的微地址,因此這些分支處需要判別測試,然后再確定其他地址。</p><p>  當微地址確定以后,就可在微地址表中把相應(yīng)微地址單元填進去,最后根據(jù)微程序流程圖填寫相應(yīng)微命令及微指令代碼表 。表3-1 微指令代碼定義表 , 表3-2 微命令代碼格

20、式表。</p><p>  為了向RAM裝入程序和數(shù)據(jù),檢查寫入是否正確,并能啟動程序執(zhí)行,還需設(shè)計三個控制臺操作微程序。</p><p>  存儲器讀操作(KRD):撥動開關(guān)CLR后,當控制臺開關(guān)SWB、SWB置為“00”時,按START微動開關(guān),可對RAM進行連續(xù)手動讀出。</p><p>  存儲器寫操作(KWE):撥動開關(guān)CLR后,當控制臺開關(guān)SWB、SWB

21、置為“01”時,按START微動開關(guān),可對RAM進行連續(xù)寫入。</p><p>  啟動程序:撥動開關(guān)CLR后,當控制臺開關(guān)SWB、SWB置為“11”時,按START微動開關(guān),即可轉(zhuǎn)入到第13、01號微地址“取指”微指令,啟動程序運行。</p><p>  上述三條控制臺指令用兩個開關(guān)SWB、SWA的狀態(tài)來設(shè)置,其定義如下:</p><p>  SWB

22、 SWA 控制臺指令</p><p>  0 0 讀內(nèi)存(KDR)</p><p>  0 1 寫內(nèi)存(KWE)</p><p>  1 1 啟動程序(RP)</p><p>  根據(jù)以上要求設(shè)計數(shù)據(jù)通路框

23、圖,如下圖所示。</p><p><b>  數(shù)據(jù)通路圖</b></p><p><b>  微程序流程圖</b></p><p><b>  4.7時序系統(tǒng)圖 </b></p><p><b>  時序波形圖 </b></p><p&

24、gt;  4.8微地址轉(zhuǎn)移邏輯圖</p><p><b>  微地址分配表</b></p><p>  在微地址轉(zhuǎn)移邏輯中,還要加入必須的時序控制,其中微地址的修改信號為T4。</p><p>  經(jīng)過約500ns的延時用T4的上升沿將修改好的微地址打入微地址寄存器中,根據(jù)控制</p><p>  要求如下微地址轉(zhuǎn)移邏輯

25、電路圖。</p><p>  FC------------CY(進位標志)</p><p>  FZ------------ZI(全零標志)</p><p>  該圖的IR順序為(I7、I6、I5、I3、I4、I2)</p><p><b>  邏輯表達式如下:</b></p><p>  4.9

26、寄存器譯碼電路圖</p><p><b>  4.10接線圖</b></p><p>  4.11微程序控制器原理圖</p><p>  4.12微程序?qū)崿F(xiàn)圖</p><p>  4.13模型計算機組裝與調(diào)試</p><p>  4.13.1本次設(shè)計所需要的指令系統(tǒng)</p><

27、p>  *輸入端口編碼01,用SW表示。</p><p>  *輸出端口編碼10,用LD表示。</p><p>  *寄存器R0,R1,R2分別用00,01,02表示。</p><p>  4.13.2調(diào)試運行</p><p><b>  程序:</b></p><p><b> 

28、 數(shù)據(jù):</b></p><p>  選擇聯(lián)機軟件的“【轉(zhuǎn)儲】—【裝載】”功能,在打開文件對話框中選擇下面所保存的文件,軟件自動將機器程序和微程序?qū)懭胫付▎卧?lt;/p><p>  選擇聯(lián)機軟件的“【轉(zhuǎn)儲】—【刷新指令區(qū)】”可以讀出下位機所有的機器指令和微指令,并在指令區(qū)顯示,對照文件檢查微程序和機器程序是否正確,如果不正確,則說明寫入操作失敗,應(yīng)重新寫入,可以通過聯(lián)機軟件單獨

29、修改某個單元的指令,以修改微指令為例,先用鼠標左鍵單擊指令區(qū)的‘微存’TAB按鈕,然后再單擊需修改單元的數(shù)據(jù),此時該單元變?yōu)榫庉嬁?,輸?位數(shù)據(jù)并回車,編輯框消失,并以紅色顯示寫入的數(shù)據(jù)。</p><p>  運行程序————聯(lián)機運行</p><p>  進入軟件界面,選擇菜單命令“【實驗】—【復雜模型機】”,打復雜模型機實驗數(shù)據(jù)通路圖,選擇相應(yīng)的功能命令,即可聯(lián)機運行、監(jiān)控、調(diào)試程序。&

30、lt;/p><p>  按動CON單元的總清按鈕CLR,然后通過軟件運行程序,當模型機執(zhí)行完OUT指令后,檢查OUT單元顯示的數(shù)是否正確。在數(shù)據(jù)通路圖和微程序流中觀測指令的執(zhí)行過程,并觀測軟件中地址總線、數(shù)據(jù)總線以及微指令顯示和下位機是否一致。</p><p><b>  機器轉(zhuǎn)載:</b></p><p><b>  $P0070<

31、;/b></p><p><b>  $P0171</b></p><p><b>  $P0272</b></p><p><b>  $P0344</b></p><p><b>  $P0481</b></p><p>

32、<b>  $P05F5</b></p><p><b>  $P0618</b></p><p><b>  $P0708</b></p><p><b>  $P0809</b></p><p><b>  $P0902</b>&

33、lt;/p><p><b>  $P0A20</b></p><p><b>  $P0BB0</b></p><p><b>  $P0C98</b></p><p><b>  $P0D0C</b></p><p><b>

34、;  $P0E03</b></p><p><b>  $P0FA1</b></p><p><b>  $P10E5</b></p><p><b>  $P11C9</b></p><p><b>  $P1215</b></p>

35、;<p><b>  $P1325</b></p><p><b>  $P14D1</b></p><p><b>  $P1535</b></p><p><b>  $P1626</b></p><p><b>  $P171

36、0</b></p><p><b>  $P1825</b></p><p><b>  $P1958</b></p><p><b>  $P1A22</b></p><p><b>  $P1B36</b></p><p

37、><b>  $P1C5A</b></p><p><b>  $P1D60</b></p><p><b>  $P1E55</b></p><p><b>  $P1F60</b></p><p><b>  $P2007</b&

38、gt;</p><p><b>  $P25FF</b></p><p><b>  $PFF04</b></p><p>  4.13.3微代碼表</p><p>  *INC改成DEC,62改成F59A01</p><p>  *AND改成OR, 65 改成E99B41&

39、lt;/p><p>  *RRC改成ROR, 67改成218838</p><p>  *RLC改成ROL, 71改成11883A</p><p><b>  十六進制文件如下</b></p><p>  $M00018108</p><p>  $M0101ED82</p><p

40、>  $M0200C050</p><p>  $M0300A004</p><p>  $M0400E0A0</p><p>  $M0500E006</p><p>  $M0600A007</p><p>  $M0700E0A0</p><p>  $M0801ED8A</p

41、><p>  $M0901ED8C</p><p>  $M0A00A03B</p><p>  $M0B018001</p><p>  $M0C00203C</p><p>  $M0D00A00E</p><p>  $M0E01B60F</p><p>  $M0F9

42、5EA25</p><p>  $M1001ED83</p><p>  $M1101ED85</p><p>  $M1201ED8D</p><p>  $M1301EDA6</p><p>  $M14001001</p><p>  $M15030401</p><p

43、>  $M16018016</p><p>  $M173D9A01</p><p>  $M18019201</p><p>  $M1901A22A</p><p>  $M1A01B22C</p><p>  $M1B01A432</p><p>  $M1C01A233</p

44、><p>  $M1D01A436</p><p>  $M1E318237</p><p>  $M1F318239</p><p>  $M20009001</p><p>  $M21028401</p><p>  $M2205DB81</p><p>  $M230

45、180E4</p><p>  $M24018001</p><p>  $M2595AAA0</p><p>  $M2600A027</p><p>  $M2701BC28</p><p>  $M2895EA29</p><p>  $M2995AAA0</p><p

46、>  $M2A01B42B</p><p>  $M2B959B41</p><p>  $M2C01A42D</p><p>  $M2D65AB6E</p><p>  $M2E0D9A01</p><p>  $M2F01AA30</p><p>  $M300D8171</p

47、><p>  $M31959B41</p><p>  $M32F59A01</p><p>  $M3301B435</p><p>  $M3405DB81</p><p>  $M35E99B41</p><p>  $M360D9A01</p><p>  $M372

48、18838</p><p>  $M38019801</p><p>  $M3911883A</p><p>  $M3A019801</p><p>  $M3B070A08</p><p>  $M3C068A09</p><p>  $M3DE7B239</p><p

49、>  $M3EE7B239</p><p>  $M3F000000</p><p>  4.13.4運行與調(diào)試</p><p><b>  程序運行說明:</b></p><p>  **本程序完成對[(07+X-1+CY)-2X]V07再循環(huán)右移的計算</p><p><b>

50、  X為輸入的值</b></p><p>  在程序中,計算結(jié)果會存在FF中,然后再取反,存入3D中。相當于會有兩個結(jié)果,后一個是前一個的取反結(jié)果,最后將其分兩次通過OUTPUT輸出.</p><p>  **注意:程序中用到帶進位跳轉(zhuǎn)指令,以下示例中,當INPUT=FB時,由于之后的計算帶進位,則由程序控制跳轉(zhuǎn)至PC=03處,此時輸入INPUT=21,則程序按順序執(zhí)行。<

51、;/p><p>  FF中,初始值為04,由于會有STA指令的執(zhí)行,則會有04--->77的變化。</p><p>  **當INPUT1=FB. INPUT2=21時,主要步驟計算結(jié)果截圖如下:</p><p><b>  1 開始之前:</b></p><p>  2 R0,R1,R2成功清零:</

52、p><p>  3 打入FB至R0(X=FB):</p><p>  4 07+X+CY(X=FB),結(jié)果有進位為102(之前自減),此時R0=02</p><p>  5 CY=1,跳轉(zhuǎn)至PC=03處</p><p>  6 07+X-1+CY的結(jié)果存入R0,此時R0=28(再次INPUT =21)</p>&

53、lt;p>  7 (07+X-1+CY)-2X的結(jié)果存入R1,此時R1=E6</p><p>  8 對R1=E6循環(huán)右移=73,存入R1</p><p>  9 R1=73,R2=07,相或得77存入R1</p><p>  10 對R1=77取反=88,存入R1</p><p>  11 輸出計算結(jié)果,OUTPU

54、T=77</p><p>  12 輸出取反結(jié)果OUTPUT=88</p><p>  13 停機指令</p><p><b>  5 實驗體會:</b></p><p>  還沒有開始的時候,給了自己一個念頭,就是"好難啊",以至于不知道從何下手。沒有辦法,只有到圖書館,從網(wǎng)絡(luò)上,查各種資

55、料。這樣之后,腦袋里總算是有了概念。第二天,老師又給我們講了一遍具體的流程,我們到底應(yīng)該做哪些工作。這樣就將整個過程理順了,也有了初步的計劃。</p><p>  在最開始連線的過程中,我們就遇到了絆腳石。我們線連的不正確,測試不成功。我們一起按照提示找了好久,都沒有找到錯誤在哪里。后來,我們找來了老師,老師按照提示,一步幫我們找,后來發(fā)現(xiàn)是關(guān)于Y0,Y1,Y2的線插的孔不正確。于是,我們進行了改正,之后就沒有接

56、線上的問題了。這樣看來,我們還是不夠認真,這些小細節(jié)更需要仔細地進行。</p><p>  之后就到周末了,老師說讓我們利用周末的時間進行時間實驗,因為我們周內(nèi)的時間比較緊張。于是,我們將微代碼整理好,程序編好等基礎(chǔ)工作做好之后,就風風火火地開始進行上機調(diào)試了。</p><p>  這個過程里面也是充滿了曲折,大大小小,不過,終被我們克服了。</p><p>  我

57、們開始一人編了一份代碼,一種是模塊式的小程序,分成幾部分,每部分實現(xiàn)一個小小的功能,一種是進行運算,求出一個式子的值。當我們測試第一種時,發(fā)現(xiàn)這樣模塊式的比較麻煩,得不停地進行輸入輸出操作,而且程序也不能很好地完成,在執(zhí)行過程中有一些錯誤。于是我們放棄第一種,轉(zhuǎn)戰(zhàn)第二種,還是有一些小小的不符合要求的部分。于是,我們就著重對測試程序進行改進加工。幾經(jīng)改動,我們已經(jīng)能很好地實現(xiàn)功能,惟獨對BZC指令的使用沒有很好地在程序中體現(xiàn)。但是對于整個

58、流程,各種操作的理論和實踐都已經(jīng)熟練掌握了,并且融會貫通了。這兩天待在實驗室真實收獲頗豐!</p><p>  對于BZC的問題我們只好等到周一早上,請教老師。老師指出我們可能是進位鎖存的問題。我們按照老師指出的尋找原因,發(fā)現(xiàn)沒有錯誤。后來逐步分析程序,發(fā)現(xiàn)我們的步驟把跳轉(zhuǎn)時判讀用的數(shù)固定了,所以無論我們輸多大的值都不會有進位。于是我們又開始更改程序。</p><p>  經(jīng)過前前后后這么

59、多次對程序的更改,我們終于完成了所有的功能,并且很順利地測試出了結(jié)果。</p><p>  我們成功了,我們真的很開心,也收獲了許多。以前學的理論知識掌握得不是很牢固,經(jīng)過這次課程設(shè)計,理論與實踐相結(jié)合,理論欠缺的地方自己查資料,補充知識庫,實踐有困難的地方請教老師同學,各方面綜合起來,就是我們成功了,并且掌握了。</p><p>  老師講課的時候說過,這門課你學了,當時會了,可能之后就

60、忘記了。你如果就做了一個東西出來,你肯定就忘不了。我們用實踐檢驗了這句話。我想這門課程的具體知識細節(jié)我以后可能會忘記,可是,我掌握了方法,我有整體的思路和具體的操作,我相信以后要是再設(shè)計,更難地我們也能完成。因為我們理解了,并且通過實驗加深了印象。</p><p>  還有,無論干什么事都得仔細真的是不變的真理。在實驗中一不小心將0寫成1都會導致嚴重的錯誤,所以,日后學習生活中我們也會更加仔細的,細節(jié)決定成敗!&

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論