組成原理課設(shè)報告_第1頁
組成原理課設(shè)報告_第2頁
組成原理課設(shè)報告_第3頁
組成原理課設(shè)報告_第4頁
組成原理課設(shè)報告_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機組成原理課程設(shè)計報告目 錄第1章 設(shè)計任務(wù)與要求11.1 設(shè)計內(nèi)容11.2 具體要求11.3 設(shè)計環(huán)境1第2章 總體設(shè)計方案22.1 設(shè)計原理22.2 設(shè)計思路2第3章 詳細設(shè)計方案33.1 設(shè)計邏輯圖33.2 算法流程圖43.3 微指令設(shè)計過程4第4章 測試程序與結(jié)果94.1 測試程序94.2 結(jié)果104.3 出現(xiàn)的問題及解決辦法11第5章 小結(jié)12第6章 參考資料13第1章 設(shè)計任務(wù)與要求1.1 設(shè)計內(nèi)容使用COP2000設(shè)計微指令,并使用設(shè)計的微指令實現(xiàn)定點原碼一位乘。1.2 具體要求通過設(shè)計實現(xiàn)機器指令及對應(yīng)的微指令(微程序)并驗證,從而握微程序設(shè)計的思想和具體流程、操作方法。利

2、用計算機組成原理實驗儀和仿真軟件,實現(xiàn)定點原碼一位乘。寫出總體設(shè)計方案(包括設(shè)計原理和設(shè)計思路等)和詳細設(shè)計方案。編寫實現(xiàn)乘法的程序進行設(shè)計的驗證。1.3 設(shè)計環(huán)境本實驗是基于COP2000軟件下實現(xiàn)的編程設(shè)計原碼一位乘法器,結(jié)構(gòu)圖中有IE、ST、PC、MAR寄存器,以及ALU,微指令寄存器等。模擬軟件左側(cè)是程序輸入窗口。在COP2000試驗儀上實現(xiàn)編程,所應(yīng)用的編程語言為匯編語言。在偉福試驗儀中有相關(guān)的模型機指令集分為幾大類:算術(shù)運算指令、邏輯運算指令、移位指令、數(shù)據(jù)傳輸指令、跳轉(zhuǎn)指令、中斷返回指令、輸入輸出指令。第2章 總體設(shè)計方案2.1 設(shè)計原理用匯編語言編程實現(xiàn)定點原碼一位乘法器的設(shè)計

3、,采用的算法為原碼一位乘,乘數(shù)和被乘數(shù)規(guī)定為四位,原碼一位乘法器中用了三個寄存器r0,r1和r2,分別存放被乘數(shù),乘數(shù)和部分積。乘法運算開始時,r2寄存器被清零,作為初始的部分積。被乘數(shù)放在寄存器r0寄存器中,乘數(shù)放在寄存器r1中。實現(xiàn)部分積和被乘數(shù)相加是通過X送加法器和Y送加法器,在加法器中完成的。加法器的輸出經(jīng)過移位電路向右移一位送入r2寄存器中。Y寄存器是用移位寄存器實現(xiàn)的,其低位用作Y送加法器的控制命令。因為原碼一位乘是通過乘數(shù)的最低位是1還是0來確定加數(shù)的,當乘數(shù)的最后一位為1時。部分積加上被乘數(shù),當乘數(shù)的最后一位為0時,部分積加上0。加法器最低一位的值,在右移的過程中將被移入Y寄存

4、器的最高數(shù)值位,這樣就使積的低位部分被保存在Y寄存器中,最開始的乘數(shù)在逐位右移過程中不斷丟失,直到移位結(jié)束。乘法運算完成以后r2寄存器中保存的數(shù)值是乘積的高位部分,r1寄存器即乘數(shù)寄存器中保存乘積的低位部分。2.2 設(shè)計思路原碼一位乘法器的設(shè)計主要包含如下2個部分:準備階段,分別將被乘數(shù)和乘數(shù)送到寄存器當中,標記為的寄存器初始化為04H,部分積初始化為零;運算階段,看被乘數(shù)的最低位,若為零則不進行運算,X左移一位,Y右移一位,同時C=C-1 ,若最低位為1,則A=X+A, X左移一位,Y右移一位,同時C=C-1,直至C為零時輸出結(jié)果。第3章 詳細設(shè)計方案3.1 設(shè)計邏輯圖 R1 被乘數(shù)BUBU

5、FENJI8位加法器R2 部分積左移一位OUT 輸出結(jié)果右移一位R0 乘數(shù) 圖3.1 設(shè)計邏輯圖3.2 算法流程圖開始乘數(shù)X->R1被乘數(shù)Y->R0標記位C->R3部分積R2->00HR0與01H比較Qn=1?準備(X)+(A)->AX左移Y右移C-1->CC=0?N結(jié)束YNY 運算圖3.2 算法流程圖3.3 微指令設(shè)計過程1. 創(chuàng)建指令系統(tǒng)打開COP2000仿真軟件,點擊“文件”菜單,選擇“新建指令系統(tǒng)/微系統(tǒng)”選項。2. 輸入指令選擇軟件左下角的“指令系統(tǒng)”選項卡,選中一條“注釋”上標明“未使用”的機器碼,在“助記符”和“操作數(shù)1/2”所對應(yīng)的輸入框中輸

6、入相應(yīng)的內(nèi)容,輸入完成后點擊“修改”按鈕。本次實驗所輸入的微系統(tǒng)如圖3.3所示。圖3.3 新建的指令微系統(tǒng)輸入的指令集及其功能如下表所示:助記符注釋MOVE R?,#II將立即數(shù)II存放到寄存器R?中MOVE A,R?將寄存器R?的值送到累加器A中MOVE R?,A將累加器A中的值送到寄存器R?中YU A,#II累加器A和立即數(shù)II進行與運算JIA A, R?將寄存器R?的值加入累加器A中JIAN A,#II從累加器中減去立即數(shù)后加入累加器A中ZY A累加器A左移YY A累加器A右移JZ MM若零標志位置1,跳轉(zhuǎn)到MM地址JMP MM跳轉(zhuǎn)到MMSHUCHU將累加器A中數(shù)據(jù)輸出到輸出端口3. 根

7、據(jù)指令功能設(shè)計相應(yīng)的微程序選擇輸入“指令系統(tǒng)”選項卡右側(cè)的“uM微程序”選項。在已經(jīng)輸入注記符的每一條指令點中每一個狀態(tài)欄,將最底部的十二個控制位,根據(jù)所需要實現(xiàn)的功能,將方框內(nèi)去掉對勾,即表示已選擇。下面將具體指令的每個狀態(tài)時刻選擇功能過程截圖,以說明其功能。每條指令的T0時刻均為取指操作,其標記情況如圖3.4所示。 圖3.4 T0時刻取指操作圖示MOVE R?,#II指令的標記情況如圖3.5所示。圖3.5 MOVE R?,#II指令的標記圖示MOVE A,R? 指令的標記情況如圖3.6所示。圖3.6 MOVE A,R? 指令的標記圖示MOVE R?,A 指令的標記情況如圖3.7所示。圖3.

8、7 MOVE R?,A指令的標記圖示YU A,#II指令的標記情況如圖3.8所示。圖3.8 YU A,#II指令的標記圖示JIA A,R? 指令的標記情況如圖3.9所示。圖3.9 JIA A,R? 指令的標記圖示JIAN A,#II 指令的標記情況如圖3.10所示。圖3.10 JIAN A,#II 指令的標記圖示ZY A指令的標記情況如圖3.11所示。圖3.11 ZY A 指令的標記圖示YY A 指令的標記情況如圖3.12所示。圖3.12 YY A 指令的標記圖示JZ MM 指令的標記情況如圖3.13所示。圖3.13 JMP MM 指令的標記圖示JMP MM 指令的標記情況如圖3.14所示。圖

9、3.14 JMP MM 指令的標記圖示SNHUCHU 指令的標記情況如圖3.15所示。圖3.15 SNHUCHU 指令的標記圖示下面以除法為例,詳細說明一下各個控制位的意義以及控制的部分功能。減法指令共分為3個周期,下圖為T2周期的設(shè)計,此指令為立即數(shù)減指令,立即數(shù)減可分為兩步,第一步從EM中讀出立即數(shù),送到DBUS,并存入工作寄存器W中,從EM中讀數(shù),EMRD應(yīng)有效(控制位的勾去掉即為有效),讀EM的地址由PC輸出,PCOE要有效,讀出的數(shù)據(jù)要送到DBUS,EMEN應(yīng)有效,數(shù)據(jù)存入W,WEN應(yīng)有效。第二步也是T1周期,是執(zhí)行減法操作,并將結(jié)果存入A中。下0圖為T2周期的設(shè)計,執(zhí)行減法操作,S

10、2S1S0的值應(yīng)為001(減運算),結(jié)果直接輸出到DBUS,X2X1X0的值就要為100(ALU直通),F(xiàn)EN是ALU內(nèi)部標志寄存器,應(yīng)有效,從DBUS將數(shù)據(jù)再存入A中,AEN應(yīng)有效。每條指令的最后一個周期T0的控制位設(shè)計都一樣(如下圖所示)而且這個周期是必須的(下面在介紹其他指令的時候不再一一列舉),因為要從EM中讀出下條將要執(zhí)行的指令的機器碼,并打入IR和uPC中,根據(jù)取指令說明,EMRD,PCOE,IREN要有效。4. 保存指令系統(tǒng)/微程序設(shè)計好微程序后,選擇菜單“文件”,“保存指令系統(tǒng)/微程序”,將設(shè)計好的微程序保存為名字為“趙慶珍”,后綴名為.INS文件,以便下次打開時調(diào)入微程序。第

11、4章 測試程序與結(jié)果4.1 測試程序1. 在源程序窗口輸入下面程序:move r0,#08h ;將立即數(shù)送到r0寄存器中 乘數(shù)move r1,#08h ;被乘數(shù)move r3,#04h ;標志位move r2,#00h;r2寄存器置零move a,r0 ;乘數(shù)送入ayu a,#01h;a與01h比較jz 1eh ;最低位為0,跳轉(zhuǎn)1eh mov a,r0move a,r2;最低位為1時,把部分積存入ajia a,r1;加被乘數(shù)即加xmove r2,a;保存部分積move a,r1;被乘數(shù)送入azy a;左移xmove r1,a;保存xmove a,r3;標記位 送入ajian a,#01h;c

12、=c-1jz 2ch;若為0,跳轉(zhuǎn)2ch mov r2,amove r3,a;保存c到r3move a,r0;乘數(shù)送到ayy a;乘數(shù)右移一位move r0,a;乘數(shù)送到r0jmp 08h;無條件轉(zhuǎn)移08h mov a,r0move a,r0;乘數(shù)送ayy a;乘數(shù)右移一位move r0,a;乘數(shù)保存到r0move a,r1; 被乘數(shù)送到azy a;被乘數(shù)左移一位move r1,a ;保存被乘數(shù)到r1move a,r3;標志位送到ajian a,#01h;c=c-1jz 2ch;若為0,跳轉(zhuǎn)2ch mov r2,amove r3,a;保存c到r3jmp 08h;無條件轉(zhuǎn)移 mov a,r0mo

13、ve a,r2;部分積送入ashuchu2. 保存文件。 選擇菜單文件|保存文件(S)功能,將新建的.ASM文件保存下來,以便以后使用。將文件保存為“Chengfa.ASM”,注意:由于使用的是匯編語言所以保存文件時一定要加上.ASM后綴,否則運行將會出錯或系統(tǒng)不能編譯該文件。4.2 結(jié)果1. 執(zhí)行“單微指令運行”功能,觀察執(zhí)行每條微指令時,數(shù)據(jù)是否按照設(shè)計要求流動,寄存器的輸入/輸出狀態(tài)是否符合設(shè)計要求,各控制信號的狀態(tài),PC及uPC 如何工作是否正確。2. 輸入一組測試數(shù)據(jù),例如被乘數(shù)為09H,乘數(shù)為09H,點擊匯編,然后點擊單步運行,觀察到每一步執(zhí)行的結(jié)果,以及執(zhí)行順序均正確,結(jié)果輸出5

14、1,說明匯編程序與程序微指令均無錯誤。運行結(jié)果如圖4.1所示。圖4.1 運行結(jié)果圖4.3 出現(xiàn)的問題及解決辦法1.在設(shè)計微指令程序時,第一次設(shè)計的微指令,執(zhí)行時,程序在第一句匯編語句停止運行,無法執(zhí)行,經(jīng)過查資料以及跟同學(xué)的討論,發(fā)現(xiàn)問題的所在是由于程序沒有入口,在設(shè)計微程序時,應(yīng)該首先將助記符為_FATCH_的指令設(shè)置正確,標記為:CBFFFF。2.在設(shè)計JZ(ZF標記控制的條件轉(zhuǎn)移),JC(CF標記控制的條件轉(zhuǎn)移)與JMP(無條件轉(zhuǎn)移)時,必須注意占用的機器碼的位置。在硬件設(shè)計時,跳轉(zhuǎn)指令的跳轉(zhuǎn)控制需要指令碼的第3位和第2位IR3,IR2來決定,無條件跳轉(zhuǎn)的控制要求IR3必需為1,所以無條

15、件跳轉(zhuǎn)的機器碼應(yīng)選在機器碼為xxxx1xxx處。在設(shè)計條件轉(zhuǎn)移JZ時,需要指令碼的第3位IR3為0,第2位IR2為1,即機器碼應(yīng)選在xxxx01xx處。條件轉(zhuǎn)移JC,需要指令碼的第3位IR3為0,第2位IR2為1,即機器碼應(yīng)選在xxxx00xx處。PC打入控制電路由一片74HC151八選一構(gòu)成。ELPIR3IR2CyZLDPC1XXXX10001X00000X1001X10001X0101XXX0當ELP=1時,LDPC=1,不允許PC被預(yù)置當ELP=0時,LDPC由IR3,IR2,Cy,Z確定 當IR3IR2=1X時,LDPC=0,PC被預(yù)置 當IR3IR2=0 0時,LDPC=非Cy,當C

16、y=1時,PC被預(yù)置 當IR3IR2=01時,LDPC=非Z,當Z=1時,PC被預(yù)置第5章 小結(jié)這次的組成原理實驗課程設(shè)計歷時不長,除了一周的實習(xí)時間,在課下,我也花了大量的時間去研究有關(guān)此次課程設(shè)計設(shè)的知識。一開始,我并不知道該從何處著手去設(shè)計這個程序,由于組成原理是上學(xué)期所學(xué)的課程,一些知識也有些遺忘,我從最基礎(chǔ)的乘法開始研究,把定點乘法一位乘的原理以及思路認真的構(gòu)思了一遍,在老師的知道下,也通過閱讀老師所給的關(guān)于COP2000的指導(dǎo)書,我逐漸從剛開始不知如何著手去做到后來學(xué)會,寄存器左移右移,如何判斷數(shù)據(jù)末位是否為1等知識,終于獨立地完成了這個設(shè)計任務(wù)。在設(shè)計的過程中,鞏固了所學(xué)的計算機組成原理中有關(guān)匯編語言編程實現(xiàn)定點原碼一位乘方面的知識,同時,也增長了新的知識。組成原理課程設(shè)計使我收獲了很多,首先不僅讓我鞏固了課堂上學(xué)習(xí)的知識點,理論和實踐很好的結(jié)合到了一起,而且還能夠延伸我的知識面,鍛煉了自學(xué)的能力,最重要的是在做成功的那一刻讓我有一種成就感。其次要感謝老師和同學(xué)對我的幫助,幫助我解決了不少難題。在設(shè)計過程中碰到了很多問

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論