

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 課程設計任務書</b></p><p> 題 目:基于微程序控制器的簡單計算機系統(tǒng)設計與實現(xiàn)</p><p> 專 業(yè):計算機科學與技術</p><p> 班 級:</p><p> 學 號:</p><p> 姓 名:</p>
2、;<p> 電 話:</p><p> 郵 件:</p><p> 實 驗 臺:</p><p> 完成日期:2012-03-04 周日下午</p><p> 指導教師:</p><p><b> 目 錄</b></p><p> 1 課程
3、設計概述7</p><p> 1.1 課設目的7</p><p> 1.2 設計任務7</p><p> 1.3 設計要求8</p><p> 2 實驗原理與環(huán)境9</p><p> 2.1 實驗原理9</p><p> 2.2 實驗環(huán)境9</p><
4、;p> 3 總體方案設計10</p><p> 3.1 需求分析10</p><p> 3.2 硬件設計10</p><p> 3.3 軟件設計16</p><p> 4 詳細設計與實現(xiàn)18</p><p> 4.1 選用芯片18</p><p> 4.2 硬件實
5、現(xiàn)24</p><p> 4.3 軟件實現(xiàn)30</p><p> 5 實驗過程與調(diào)試48</p><p> 5.1 仿真XXX48</p><p> 5.2 主要故障與調(diào)試49</p><p> 5.3 功能測試51</p><p> 5.4 實驗流程圖53</p
6、><p> 6 設計總結(jié)與心得55</p><p> 6.1 課設總結(jié)55</p><p> 6.2 課設心得57</p><p><b> 參考文獻59</b></p><p><b> 1、課程設計概述</b></p><p><
7、;b> 1.1課設目的</b></p><p> 計算機組成原理是計算機專業(yè)的核心專業(yè)基礎課,也是作為計算機專業(yè)的學生應該要好好掌握的重要學科。課程設計屬于設計型實驗,不僅鍛煉學生簡單計算機系統(tǒng)的設計能力,考驗同學的創(chuàng)新思維,而且通過進行設計及實現(xiàn),進一步提高分析和解決問題的能力。再者,組成原理課設也是對學生們一個學期的學習成果的檢驗和鞏固,也是同學們提高分析、定位、排錯能力的一次機會。&l
8、t;/p><p><b> 1.2設計任務</b></p><p> 計算機系統(tǒng)設計的總體目標是設計模型機系統(tǒng)的總體結(jié)構(gòu)、指令系統(tǒng)和時序信號。在對該模型機系統(tǒng)中的部件功能利用EDA軟件的仿真功能進行仿真分析和功能驗證的基礎上,將部分電路下載到FPGA,并與適當?shù)耐鈬骷?包括部分芯片、輸入/輸出開關、LED顯示等)相配合,實現(xiàn)模型機的主機系統(tǒng)。</p>
9、<p> 要求所設計的主機系統(tǒng)能支持自動和單步運行方式,能正確地執(zhí)行存放在主存中程序的功能,對主要的數(shù)據(jù)流和控制流通過LED適時顯示信息。</p><p><b> 具體如下:</b></p><p> 設計微程序控制器或硬布線控制器或基于微程序和硬布線相結(jié)合方式的CPU控制器;</p><p> 利用所設計的CPU組成一臺功
10、能完整的模型機并基于實驗平臺實現(xiàn).要求部分功能利用FPGA實現(xiàn),部分功能用芯片連接實現(xiàn);</p><p> 所設計的模型機支持加法減運算等基本的算術運算指令、支持邏輯運算類指令、支持存儲器讀寫指令、支持寄存器間數(shù)據(jù)傳送等幾類指令、支持定點數(shù)的溢出判斷;</p><p> 支持立即數(shù)尋址、直接尋址、隱含尋址、間接尋址(寄存器尋址)等幾種基本的尋址方式;</p><p&
11、gt; 能支持10條以上的指令;</p><p> 能運行由自己設計的CPU所支持的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確;</p><p> 根據(jù)課程設計指導書和本次課程設計的具體要求,制定出設計方案。確定CPU 的基本結(jié)構(gòu)是采用總線方式還是采用專用通路方式;</p><p> 畫出自己所設計計算機系統(tǒng)的原理框圖和器件連接圖,分析器件連接圖中各器件不同引
12、腳的功能,哪些可以固定連接,哪些需要通過微程序來控制,以及這些控制信號的有效形式;</p><p> 畫出各指令的指令周期流程圖和所需要的控制信號;</p><p> 布線、調(diào)試、驗收; </p><p> 鼓勵完成上述基本功能的基礎上進行適當擴展,比如支持流水線、支持其他尋址方式等。</p><p><b> 1.3設計要
13、求</b></p><p> 根據(jù)理論課程所學的至少,設計出簡單計算機系統(tǒng)的總體方案,結(jié)合各單元實驗積累和課堂上所學知識,選擇適當芯片,設計簡單的計算機系統(tǒng),具體要求如下:</p><p> 利用各單元實驗和課堂上所學知識,選擇適當?shù)男酒?,設計簡單的計算機系統(tǒng);</p><p> 在完成數(shù)據(jù)通路設計并驗證數(shù)據(jù)通路功能的基礎上增加指令和微指令控制的功
14、能;</p><p> 以手動方式產(chǎn)生各指令執(zhí)行過程中所需要的微命令,控制指令的執(zhí)行;</p><p> 以自己所設計的計算機系統(tǒng)為硬件環(huán)境,設計出完成指定功能的各指令周期流程圖,并設計出相應的微命令;</p><p> 設計時序列電路,產(chǎn)生滿足指令周期和指令執(zhí)行所需要的多級時序信號;</p><p> 設計控存,將各指令的微程序存放
15、在CM中,經(jīng)過適當?shù)臅r序控制,通過微程序自動控制指令的執(zhí)行(當采用微程序控制器時)。</p><p><b> 2、實驗原理與環(huán)境</b></p><p><b> 2.1實驗原理</b></p><p> 計算機組成原理,數(shù)字邏輯, FPGA(Field Programmable Gate Array)現(xiàn)場可編程門
16、陣列 、QUARTUS仿真等</p><p><b> 2.2實驗環(huán)境</b></p><p> JZYL—II型計算機組成原理試驗臺,windows xp系統(tǒng),512M內(nèi)存電腦電腦一臺,Quartus II 6.0版軟件,導線若干。</p><p><b> 3、總體方案設計</b></p><
17、p><b> 3.1需求分析</b></p><p> 在這次計算機系統(tǒng)設計中,我們需要根據(jù)計算機的各個部件先畫出總的框圖,然后在框圖的基礎上選擇適當?shù)男酒瑢崿F(xiàn)各自的功能,主要先實現(xiàn)運算器部分,保證運算的正確性,然后設計存儲部分,選擇主存和控存是合并還是分開,然后設計對應的微指令,用手動操作檢驗后,進行設計時序電路,轉(zhuǎn)成自動執(zhí)行。</p><p><b
18、> 3.2硬件設計</b></p><p><b> 3.2.1總體設計</b></p><p> 本次我們采用的方案是微程序控制,且主、控存分開的方案,即采用微程序控制方式,實現(xiàn)主存儲器(MM)和微程序控制存儲器(CM)不共用一個存儲器的方式完成方案的設計。同時在實施的過程中,采用部分電路用FPGA方式下載、部分電路用硬件搭建的方式完成,,其
19、中運算器和存儲器部分由硬件搭線完成,主存使用6116芯片實現(xiàn),控存與主存分開,使用2816芯片實現(xiàn),然后時序控制部分選擇用FPGA方式下載,最后匯總在一起,形成實現(xiàn)所有功能的整體計算機系統(tǒng)。</p><p> 總體結(jié)構(gòu)圖如圖 3.1所示。</p><p> 圖 3.1 總體結(jié)構(gòu)圖</p><p><b> 3.2.2運算通路</b>&l
20、t;/p><p> 由181作運算,373鎖存組合成的電路,其中包括了AC,DR1,DR2等設計</p><p> 如圖3.2所示幾點說明(包括選擇芯片的理由及引腳連接情況):</p><p> 圖 3.2 運算器圖</p><p> 3.2.3存儲通路 :由6116作主存。2816作控存的主控存分開方式</p><
21、p><b> 如圖3.3所示</b></p><p> 圖 3.3 存儲器圖</p><p> 3.2.4選擇電路 </p><p><b> 如圖3.4所示</b></p><p> 為方便置數(shù),直接讓指令的數(shù)據(jù)部分與161的輸入相連</p><p>
22、 圖 3.4 選擇通路圖</p><p> 3.2.5時序控制:通過各種控制點設計而出</p><p><b> 如圖3.5所示</b></p><p> 圖 3.5 時序控制圖</p><p><b> 3.3軟件設計</b></p><p> 3.3.1機器指
23、令系統(tǒng)設計</p><p> 本次指令設計格式遵循常見指令格式設計原則,機器指令共占8位,其中高四位為操作碼OP,低四位為操作數(shù)地址ADDR,見下表描述:</p><p><b> 指令尋址方式設計</b></p><p> 順序?qū)ぶ罚焊鶕?jù)PC(74LS161)計數(shù)器自動增1,順序讀取下一條指令;</p><p>
24、 跳躍尋址:根據(jù)PC(74LS161)的PC-SET功能,依照跳躍指令內(nèi)容往計 數(shù)器中預置打入數(shù)據(jù),從而跳轉(zhuǎn)到相應地址。</p><p><b> 操作數(shù)尋址方式設計</b></p><p> 寄存器尋址:利用AC(74LS373)寄存器進行尋址;</p><p> 直接尋址:根據(jù)指令中的ADDR所指向的地址得到主存相應數(shù)據(jù);<
25、;/p><p> 隱含尋址:利用AC(74LS373)寄存器,對于需要雙操作數(shù)的機器指令只提供一個操作數(shù),另一操作數(shù)隱含在AC中。</p><p> 3.3.2微指令設計</p><p> 微指令設計思想:此次設計共決定選取12條指令,分別是取址公操作、store存儲指令、load導入指令、jump跳轉(zhuǎn)指令、加、減、與、或、非、地址非、異或等運算指令,以及最后的停
26、機指令。指令采用雙周期、自動執(zhí)行。</p><p> 微指令設計方案:根據(jù)具體的電路原理決定采取16個微程序控制點,然后通過對各個控制點的值來實現(xiàn)對微指令的編碼(即各個控制點的值取0或1),不同的指令所對應的各個控制點的編碼會有不同。</p><p> 微指令設計流程:因為事先必須確定好電路才能得出各個控制點,因此根據(jù)完整的電路的各個可控信號確定了16個控制點,在這個過程中,實際有的控
27、制點不止16個,因此我們采取了一些措施,部分控制點合并,另外一些改成了直接采用節(jié)拍控制,最終將控制點的數(shù)目控制在了16個,然后設計了取址公操作部分各個控制點的值,形成了取址公操作的編碼,然后在此基礎上修改各個控制點的值,形成了一個大概的指令編碼表,然后在實踐中檢驗、糾錯、修改,最后得到完整的微指令設計表。</p><p><b> 微程序設計</b></p><p>
28、; 對于每條指令都設計了相應的匯編程序來進行檢驗,將匯編程序設計好,然后改寫成計算機所能識別的二進制形式,事先將二進制程序存入內(nèi)存的芯片中,然后開始執(zhí)行檢驗即可。</p><p> 對于各條指令的微程序要考慮到指令的控制點編碼,以及控制它的地址,還有內(nèi)存中的存儲數(shù)據(jù)的部分。將微程序分為兩段,一段是所執(zhí)行的操作,另一段是操作數(shù)。</p><p> 而每一行代碼又可分為3部分,比如我們設
29、計的微程序地址四位,數(shù)據(jù)八位,指令八位,因此我們的程序中,前四位二進制數(shù)字表示程序執(zhí)行的地址,即PC計數(shù)器的內(nèi)容,后八位是指令,指令的前四位對應的是操作碼,需送入控存譯碼,進而得到具體操作,后四位是數(shù)據(jù)地址,返送回內(nèi)存讀取數(shù)據(jù)。</p><p> 各個指令所對應的微程序具體還是不同的,在后面會有詳細說明。</p><p><b> 詳細設計與實現(xiàn)</b></
30、p><p><b> 4.1 所選用芯片</b></p><p><b> 74LS181</b></p><p> 系統(tǒng)使用了2片181芯片作為ALU,用于8位的運算器,負責執(zhí)行階段的各種運算。181芯片引腳圖及引腳說明如表 4.1.</p><p> 表4.1 74181芯片引腳及其引腳說明
31、</p><p><b> 2、74LS157</b></p><p><b> 如圖4.2所示</b></p><p> 表4.2 74167芯片引腳及其引腳說明</p><p><b> 3、74LS161</b></p><p><b
32、> 如圖4.3所示</b></p><p> 表4.3 74161芯片引腳及其引腳說明</p><p><b> 4、74LS395</b></p><p><b> 如圖4.4所示</b></p><p> 表4.4 74181芯片引腳及其引腳說明</p>
33、<p><b> 5、6116</b></p><p><b> 如圖4.5所示</b></p><p> 表4.5 6116芯片引腳及其引腳說明</p><p><b> 6、2816</b></p><p><b> 如圖4.6所示</
34、b></p><p> 表4.6 2816芯片引腳及其引腳說明</p><p><b> 7、74LS244</b></p><p><b> 如圖4.7所示</b></p><p> 表4.7 74LS244芯片引腳及其引腳說明</p><p><b&g
35、t; 8、74LS373</b></p><p><b> 如圖4.8所示</b></p><p> 表4.8 74181芯片引腳及其引腳說明</p><p><b> 4.2硬件實現(xiàn)</b></p><p> 4.2.1硬件原理圖</p><p>
36、本次我們采用的方案是微程序控制,且主、控存分開的方案,即采用微程序控制方式,實現(xiàn)主存儲器(MM)和微程序控制存儲器(CM)不共用一個存儲器的方式完成方案的設計。同時在實施的過程中,采用部分電路用FPGA方式下載、部分電路用硬件搭建的方式完成,,其中運算器和存儲器部分由硬件搭線完成,主存使用6116芯片實現(xiàn),控存與主存分開,使用2816芯片實現(xiàn),然后時序控制部分選擇用FPGA方式下載,最后匯總在一起,形成實現(xiàn)所有功能的整體計算機系統(tǒng)。具體
37、的電路設計圖如圖4.9所示:</p><p> 圖4.9 系統(tǒng)總框架引腳圖</p><p> 4.2.2運算通路實現(xiàn)</p><p> 運算器部分電路是采用硬件連線實現(xiàn)的,但是原價努力圖還是用Quartus設計的,并且為了檢驗其正確性,也進行了仿真.設計圖如4.10所示:</p><p> 圖4.10 運算器電路的圖</p&g
38、t;<p> 4.2.3存儲器部分實現(xiàn)</p><p> 此部分通路中,主要為一片6116做主存,其IO輸出數(shù)據(jù)通過一片373緩沖然后經(jīng)過一片157選擇高四位送給作為寄存器的395芯片,然后送入作為控存的2816芯片中,低四位作為數(shù)據(jù)地址傳回內(nèi)存,讀取操作數(shù)。如圖4.11所示</p><p> 圖4.11 存儲器電路引腳圖</p><p> 4
39、.2.4選擇電路的實現(xiàn)</p><p> 采用了157芯片作為選擇控制,從161芯片或者是作為IR的373芯片的兩個輸出中選擇一個作為其輸出。如圖4.12所示</p><p> 圖4.12 選擇通路電路引腳圖</p><p> 4.2.5時序電路的實現(xiàn)</p><p> 根據(jù)具體的控制信號得出的時序電路圖,用16個控制點與節(jié)拍信號作為
40、輸入,通過各種邏輯門實現(xiàn)邏輯運算,最后將其輸出作為控制開關的信號來實現(xiàn)各條指令。如圖4.13所示</p><p> 圖 4.13 時序電路圖</p><p><b> 4.3軟件實現(xiàn)</b></p><p> 4.3.1機器指令系統(tǒng)實現(xiàn)</p><p> 本次指令設計格式遵循常見指令格式設計原則,機器指令共占8
41、位,其中高四位為操作碼OP,低四位為操作數(shù)地址ADDR</p><p><b> 指令尋址方式設計</b></p><p> 順序?qū)ぶ罚焊鶕?jù)PC(74LS161)計數(shù)器自動增1,順序讀取下一條指令;</p><p> 跳躍尋址:根據(jù)PC(74LS161)的PC-SET功能,依照跳躍指令內(nèi)容往計 數(shù)器中預置打入數(shù)據(jù),從而跳轉(zhuǎn)到相應地址。
42、</p><p><b> 操作數(shù)尋址方式設計</b></p><p> 寄存器尋址:利用AC(74LS373)寄存器進行尋址;</p><p> 直接尋址:根據(jù)指令中的ADDR所指向的地址得到主存相應數(shù)據(jù);</p><p> 隱含尋址:利用AC(74LS373)寄存器,對于需要雙操作數(shù)的機器指令只提供一個操作數(shù)
43、,另一操作數(shù)隱含在AC中。</p><p><b> 1指令格式</b></p><p> 本次指令設計格式遵循常見指令格式設計原則,機器指令共占8位,其中高四位為操作碼OP,低四位為操作數(shù)地址ADDR,見表4.14描述:</p><p> 表 4.14 系統(tǒng)指令格式</p><p> 指令格式編碼及其格式說明如
44、表4.15所示:</p><p> 表4.15 指令格式說明表</p><p> 2、指令周期流程圖如下圖4.16所恨死</p><p> 圖 4.16 指令流程圖</p><p><b> 具體的指令流程</b></p><p> LOAD指令,如圖4.17所示</p>
45、<p> 4.17 LOAD指令流程圖</p><p> STORE指令,如圖4.18所示</p><p> 圖4.18 STORE指令流程圖</p><p> JMP指令如圖4.19所示</p><p> 圖4.19 JMP指令流程圖</p><p> 4、END指令如圖4.20所示</p
46、><p> 圖4.20 END 指令流程圖</p><p> 5、ADD指令如圖4.21所示</p><p> 注:所有的雙操作數(shù)運算指令均和ADD相同</p><p> 圖4.21 ADD 指令流程圖</p><p> 6、NOT (A)指令如圖4.22所示</p><p> 注:所
47、有單操作數(shù)指令均同此,如A加A</p><p> 圖4.22 NOT(A) 指令流程圖</p><p> 4.3.2微指令實現(xiàn)</p><p><b> 控制信號選擇</b></p><p> 運算器部分:如表4.23所示</p><p> 表4.23 運算器部分控制點選擇</p
48、><p> 主、控存部分:如表4.24所示</p><p> 表4.24 主控存部分控制點選擇</p><p> 默認部分:如表4.25所示</p><p> 表4.25 默認部分控點H/L控制</p><p> 時序部分: STOP ,控制時序停止</p><p><b>
49、指令周期設計</b></p><p> 每條指令包含兩個機器周期,其中第一個用于取指令,用M1標識,第二個用于執(zhí)行指令,用M2標識;每個機器周期包含4個T周期,分別為T1、T2、T3、T4,對于所有的指令,設計了取指公操作,則其第一個機器周期都一樣,即進行取指公操作,第二個機器周期則執(zhí)行對應的指令功能。</p><p><b> 3、時序產(chǎn)生設計</b>
50、;</p><p> 選擇JZYL—Ⅱ型計算機組成原理實驗臺左半邊的時序電路部分,通過其中的T1、T2、T3、T4來作為時序控制中的T1——T4,同時通過一片正沿 雙D觸發(fā)器74LS74和一片反相器74LS04作為產(chǎn)生時序控制中所需的M1與M2(其中 =M2);其時序部分的接線如下:</p><p> T1、T2、T3、T4:接邏輯控制電路的輸入;</p><p&g
51、t; START:接脈沖P1;</p><p> STOP:接微指令設計中的第一位C0;</p><p> CLK:接某一頻率控點;</p><p> SEL:接地,持續(xù)產(chǎn)生T1、T2、T3、T4;</p><p> M1、M2:接邏輯控制電路的輸入。如圖4.26所示</p><p> 圖4.26 雙周期
52、實現(xiàn)</p><p><b> 微指令流程設計</b></p><p> ?。喝≈腹僮鳎禾幱贛1內(nèi)(其中表內(nèi)L為低,H為高);如表4.27</p><p> 表4.27 取指公操作設計流程</p><p> ?。篖OAD指令(M1同取指公操作,只列出M2的設計):如表4.28</p><p>
53、; 表4.28 LOAD指令設計流程</p><p> ?。篠TORE指令(M1同取指公操作,只列出M2的設計):如表4.29</p><p> 表4.29 STORE指令設計流程</p><p> ?。篔MP指令(M1同取指公操作,只列出M2的設計):如表4.30</p><p> 表4.30 JMP指令設計流程</p>
54、<p> :ADD指令(M1同取指公操作,只列出M2的設計):如表4.31</p><p> 注:所有雙操作數(shù)指令(SUB,AND,F(xiàn)ab,NOT D,⊙等)流程均同ADD,區(qū)別只是(S3,S2,S1,S0,M,)序列值不同而已,此處不再贅述,類比即可。</p><p> 表4.31 ADD指令設計流</p><p> ?。篘OT(A)指令(M1同
55、取指公操作,只列出M2的設計):如表4.32</p><p> 注:所有單操作數(shù)指令(乘2等)流程均同該指令,區(qū)別只是(S3,S2,S1,S0,M,)序列值不同而已,此處不再贅述,類比即可。</p><p> 表4.32 NOT(A)指令設計流</p><p> :END指令(M1同取指公操作,只列出M2的設計):如表4.33</p><p
56、> 表4.33 END指令設計流</p><p><b> 邏輯表達式</b></p><p> 因為很多符號無法直接打出(如作為非的上劃線等),在這里直接用紙質(zhì)上的截圖來作為參考:</p><p> 4.3.3微程序的設計</p><p> ?。何⒅噶罡袷剑喝绫?.34</p><p&
57、gt; 微指令共設計了16位,并且全部投入使用,共有16位微指令控制信號,微地址為4位,可以存放16位微指令,滿足使用需求,具體設計如下:</p><p> 表4.34 微指令格式設計</p><p> :控制存儲器內(nèi)容:如表4.35</p><p> 指令存入主存和控存中,如下所示</p><p> 表4.35 存儲的指令表&
58、lt;/p><p><b> 4.3.4測試程序</b></p><p> 1、檢測邏輯運算(1+2-2)&3</p><p> Load 1 0000 0001 0101</p><p> 加 2 0001 0100 0110</p><p> 減 2
59、 0010 0101 0111</p><p> AND 3 0011 0110 1000</p><p> END 0100 1100 1111</p><p> 操作數(shù)A =1 0101 0000 0001</p><p> 操作數(shù)B =2 0110 0000 0010</p><
60、p> 操作數(shù)C =2 0111 0000 0010</p><p> 操作數(shù)D =3 1000 0000 0011</p><p><b> 最后結(jié)果為1</b></p><p> 檢測store/Jump</p><p> Load 0000 0001 1100</p><p&
61、gt; Store 0001 0010 1111</p><p> Jump 0010 0011 0111</p><p><b> … </b></p><p> Store 0111 0010 1110</p><p> End 1000 1100 1111</p><p>
62、 地址原來存的數(shù) 1100 1010 1010</p><p> 1110 0000 0000</p><p> 1111 0000 0000</p><p> 指令執(zhí)行完后 地址存的新數(shù)據(jù):</p><p> 1100 1010 1010</p><p> 1110 1010 1010</p>
63、;<p> 1111 1010 1010</p><p> 并且成功看到PC數(shù)值的變化,即完成了跳轉(zhuǎn)!</p><p><b> 5、實驗過程與調(diào)試</b></p><p><b> 5.1仿真</b></p><p> 實驗中的時序電路部分采用了波形仿真,主要用于檢驗電路能
64、否實現(xiàn)預期的效果,出現(xiàn)問題也主要是根據(jù)波形仿真去發(fā)現(xiàn)錯誤然后改正,對于時序電路的仿真圖5.1所示:</p><p> 圖 5.1 時序仿真圖</p><p> 5.2主要故障與調(diào)試</p><p> 5.2.1故障1——雙周期運行不正常</p><p> 解決:當初在時序設計中,我們決定采用的是雙周期來實現(xiàn)指令,并且在波形仿真時得到了
65、完全正確的結(jié)果,但是在下載后具體連線檢驗時,發(fā)現(xiàn)了問題,雙周期的運行并不對,M1周期比M2周期長很多,準確是M2很短,然后我們仔細對比后,發(fā)現(xiàn)是M2沒有實現(xiàn)完整的4個節(jié)拍,經(jīng)過一系列排錯,發(fā)現(xiàn)是時序電路的信號有問題,T0節(jié)拍并不靈敏,單獨用燈檢測是發(fā)現(xiàn)T0節(jié)拍的燈并不是藍紅交錯的閃爍,而是藍一下,然后暗了,后來換了一個節(jié)拍,發(fā)現(xiàn)雙周期待運行正常了!</p><p> 5.2.2故障2 ——AC累加器顯示燈有信號
66、沖突</p><p> 當我們連接完整個運算器部分,然后檢測電路的正確性時,發(fā)現(xiàn)了AC的接出燈的紅燈很暗,而藍燈很正常,因此認為產(chǎn)生了信號沖突,于是開始對整個電路進行檢查,發(fā)現(xiàn)電路連接正常,并且373的使能端和244的高阻端控制也很正確,但是信號沖突一直存在著,即使是換過一些數(shù)據(jù)結(jié)果也會出現(xiàn)相應的情況,最后檢測芯片時,發(fā)現(xiàn)時181芯片的輸入端有信號輸出,于原來的輸入產(chǎn)生了沖突,最后問老師才知道181芯片在通電時
67、偶爾會出現(xiàn)這樣的情況,換了181芯片后問題終于得到了解決!</p><p> 5.2.3故障3—— load指令導致其他指令運行不正確</p><p> 我們設計指令時,因為得到的控制點數(shù)目超過了16,所以有一些控制點選擇了接到節(jié)拍信號上,所以隨著節(jié)拍信號,一些開關也是隨之每條指令都會打開,我們的load指令的微程序控制便是因為連接的節(jié)拍,導致了一些運算指令因為373的使能和244的高
68、阻打開的不是時候而出現(xiàn)了一系列問題,最后重新合并了一些控制結(jié)點,將load單獨做了一個控制位才使問題解決!</p><p> 5.2.4故障4——Quartus無法編譯原理圖</p><p> 在設計完原理圖,用Quartus編譯時,發(fā)現(xiàn)有錯誤,發(fā)現(xiàn)是因為已經(jīng)過了使用期限,因此無法正常使用,最后發(fā)現(xiàn)了兩個辦法解決問題:第一、使用教程中的破解方法生成一個license。dat文件進行破解
69、,具體操作見教程;第二種方法較簡單,就是直接修改計算機的時間,向前調(diào)一段很長的時間,這樣軟件可以正常進行編譯了。</p><p> 5.2.5故障5——FPGA下載出問題</p><p> 在設計完時序電路后用FPGA進行下載,但是出現(xiàn)了一些問題,修改過原理圖后還是無法將其下載進去,實際運行的還是原來的原理圖,這讓我們百思不得其解,老師對這個也不是很拿手,最后細心的同學提示是quart
70、us中下載要修改一些文件,比如q6.0&dsp&mega這個文件,就要將文件中的序列號改成我們主機中quartus的序列號,這樣才能正常下載。</p><p> 5.2.6 故障6——執(zhí)行store指令時,數(shù)據(jù)無法正常寫入</p><p> 在依次檢查各條指令的執(zhí)行情況時,發(fā)現(xiàn)有兩條指令的執(zhí)行有問題,其中之一就是store指令,發(fā)現(xiàn)數(shù)據(jù)無法正常寫入,例如本來想向0000
71、地址寫入數(shù)據(jù)10001001,但是在檢查時發(fā)現(xiàn)0000地址存的并不是100001001,而是11111111,而后發(fā)現(xiàn)無論往該地址存什么數(shù)據(jù),結(jié)果都是11111111不變,于是我們覺得是數(shù)據(jù)并沒有寫入,于是檢查了指令的執(zhí)行過程,最后發(fā)現(xiàn)在微程序的控制上有問題,當6116在寫時,373置成了高祖狀態(tài),因此才會寫入的是11111111,最后修改了微程序的執(zhí)行節(jié)拍,將其分開,然后發(fā)現(xiàn)結(jié)果正確!</p><p> 5.
72、2.6 故障7——執(zhí)行JUMP指令時,并沒有跳轉(zhuǎn)</p><p> 我們設計的指令中有兩條出了問題,另外一條便是JUMP指令了,無法跳轉(zhuǎn),從仿真圖上來看,應該是可以正常跳轉(zhuǎn)的,但是結(jié)果就是不對,這讓我和搭檔非常郁悶,單獨將芯片接出來檢測,發(fā)現(xiàn)手動控制可以實現(xiàn)直數(shù)功能,即芯片本身并沒有問題,但自動執(zhí)行的時候會出錯,仔細研究了161芯片后,我們發(fā)現(xiàn)關于跳轉(zhuǎn)的實現(xiàn)是要兩個信號控制一個是cp脈沖,一個控制開關,于是我們
73、討論是不是上升沿給的不是時候,于是將CP信號由本來的一個節(jié)拍延長到兩個節(jié)拍,讓其可以完全覆蓋到整個控制開關的變化,最后結(jié)果正確了</p><p><b> 5.3功能測試</b></p><p> 在本次課程設計中,我們能夠根據(jù)具體的運算式寫出系統(tǒng)運行的程序,一般要求所設計的機器指令中包含了運算式的所有運算要求,倘若沒有包含的話(如異或運算等等),需要重新寫控存C
74、M,操作比較麻煩,但是其實現(xiàn)思路非常簡單,只需通過兩個74LS244直接操作對2816進行寫入即可,寫完再調(diào)整2816為讀狀態(tài),便可實現(xiàn)后續(xù)功能。經(jīng)過測試,完全能夠?qū)崿F(xiàn)此項操作。</p><p> 下面就以本次課程設計中檢查時老師給我出的測試題目為例,分析程序設計的過程和方法。其余程序均可按照下述方法和步驟進行設計,不在贅述。</p><p> 題目:[(8+7非)加8] + 9異或6
75、乘2與6減7</p><p> 程序流程為:如表5.2所示</p><p><b> 表5.2</b></p><p> 內(nèi)存內(nèi)容為:如表5.3所示</p><p><b> 表5.3</b></p><p><b> 程序運行結(jié)果</b>&l
76、t;/p><p> 運行完成后,最后在AC里面的結(jié)果為 :1111 1111</p><p><b> 5.4實驗流程圖</b></p><p><b> 1、2月27周一:</b></p><p> 熟悉實驗要求,并閱讀相關資料開始準備。</p><p><b&g
77、t; 2、2月28周二:</b></p><p> 設計實驗圖,并完成運算器和存儲器部分的設計</p><p><b> 3、2月29周三:</b></p><p> 開始連線,完成了運算器部分的連線,并檢驗正確</p><p><b> 4、3月1 周四</b></p&
78、gt;<p> 開始設計控存和微指令</p><p><b> 5、3月2 周五</b></p><p><b> 對微指令進行修改</b></p><p> 6、3月3~4 周六周日</p><p> 開始設計時序電路部分</p><p><b
79、> 7、3月5 周一</b></p><p> 通過波形仿真對時序檢驗,并進行修改</p><p> 8、3月6~7 周二,周三</p><p> 將電路全部連接,進行排錯和優(yōu)化</p><p><b> 9、3月8日 周四</b></p><p><b>
80、 老師電路檢查</b></p><p><b> 6、設計總結(jié)與心得</b></p><p><b> 6.1課設總結(jié)</b></p><p> 基于對象的存儲是為了克服當前基于塊的存儲存在的諸多難題,在存儲接口和結(jié)構(gòu)層次的重要發(fā)展??梢愿鶕?jù)應用負載選擇優(yōu)化的存儲策略。作了如下幾點工作:</p>
81、;<p><b> 完成方案總結(jié):</b></p><p> 本次組成原理課程設計難度還是相對較大的,在老師的指導和幫助以及我們自己的努力下,最終成功的設計出了一臺基于微指令設計和FPGA的支持自有指令系統(tǒng)的簡單計算機系統(tǒng)。我們所設計的系統(tǒng)能在基于EDA的實驗平臺上運行一段基于自有指令的程序,并能夠根據(jù)設計的程序計算出正確的結(jié)果,且在JZYL—Ⅱ型計算機組成原理實驗臺的LE
82、D燈(或數(shù)碼管)上顯示出結(jié)果,此次設計的系統(tǒng)為全自動執(zhí)行!完成了本次組成原理課程設計的基本任務與要求,雖然沒有剩余時間去進行功能的擴展,但至少所設計的系統(tǒng)的各項指標均符合設計要求。 同時,在這個過程中,我們也確實通過努力、學習與設計,鍛煉了我們自身對于簡單計算機系統(tǒng)的設計、系統(tǒng)的故障分析與定位以及系統(tǒng)調(diào)式的能力,更進一步提高了我們分析和解決問題的能力。</p><p><b> 功能總結(jié):</b
83、></p><p> 在本次課程設計中,我們完成的設計工作和我們設計的系統(tǒng)具有的功能如下所示:</p><p> 具有準確無誤的數(shù)據(jù)通路,且在其基礎上具有指令和微指令控制的功能;</p><p> 設計了完成指定功能的各指令相對應的微命令;</p><p> 設計了時序列電路,能夠產(chǎn)生滿足指令周期和指令執(zhí)行所需要的兩級時序信號;
84、</p><p> 可以手動方式產(chǎn)生各指令執(zhí)行過程中所需要的微命令,控制指令的執(zhí)行;</p><p> 設計控存,將各指令的微程序存放在CM(用2816實現(xiàn))中,經(jīng)過適當?shù)臅r序控制,通過微程序可以完成自動控制指令的執(zhí)行功能;</p><p> 對該模型機系統(tǒng)中的運算器模塊功能和微程序邏輯控制電路部分利用QuartusⅡ 6.0軟件仿真功能進行仿真分析和功能驗證
85、,且將該部分電路下載到FPGA,并與適當?shù)耐鈬骷?包括部分芯片、輸入/輸出開關、LED顯示等)相配合,實現(xiàn)模型機的主機系統(tǒng);</p><p> 所設計的主機系統(tǒng)能支持自動和單步運行方式,能正確地執(zhí)行存放在主存中程序的功能,對主要的數(shù)據(jù)流和控制流通過LED適時顯示結(jié)果;</p><p> 所設計的模型機支持加、減運算等基本的算術運算指令,支持與、或、非等邏輯運算類指令,支持存儲器寫的回
86、存指令,支持寄存器間數(shù)據(jù)傳送的LOAD指令,支持跳轉(zhuǎn)指令等幾類指令;</p><p> 支持直接尋址、隱含尋址等幾種基本的尋址方式;</p><p> 能支持12條以上的指令;</p><p> 能運行由自己設計的CPU所支持的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確且能夠穩(wěn)定輸出結(jié)果;</p><p> 所設計的主機系統(tǒng)在運行期間和
87、修改程序期間不需要拆拔一根導線,完全可以通過開關和脈沖或控制信號控制。</p><p> 其他需要總結(jié)的內(nèi)容:</p><p> 在本次課程設計,我們采用的方案是微程序控制,且主、控存分開的方案,即采用微程序控制方式,實現(xiàn)主存儲器(MM)和微程序控制存儲器(CM)不共用一個存儲器的方式完成方案的設計;同時在實施的過程中,采用部分電路用FPGA方式下載、部分電路用硬件搭建的方式完成。在這
88、種微程序控制,且主、控存分開的方式中,我們所設計的主存8位專門用來存放機器指令和操作數(shù),控存16位專門用來存放微指令,兩者分開。此方案連線較多且復雜,同時要打入初試的數(shù)據(jù)比較麻煩,需要分別打入;但是在此方案中不論做什么操作,控制存儲器中的內(nèi)容永遠不需要改變(因為采用E2PROM存儲器2816,掉電不丟失數(shù)據(jù),同時默認設計的程序中沒有涉及到微程序中不包括的微指令操作),同時一般不需要擴展地址,內(nèi)存的地址單元是夠用的;在主存進行地址選擇也比
89、較簡單,做自動時與時序的配合也相對容易,而且容易理解。</p><p><b> 6.2課設心得</b></p><p> 這次組成原理課程設計確確實實讓我學到了很多課堂上學不到的東西,不僅是課本上的知識,同時也有很多自己動手才會明白的東西。通過這次實驗也確實加深了我對組成原理這門課的理解,對馮諾依曼體系結(jié)構(gòu)的計算機有了一定的認識,同時也學到了很多在組原課上沒有詳
90、細介紹過的知識,如數(shù)據(jù)通路、時序電路等,通過我們自己設計了一個簡單的計算機系統(tǒng),我們將這些知識完完整整的融匯在一起,應用了一遍,讓我有深刻的感觸,同時這次也接觸到了FPGA的下載,了解了一些相關的注意事項和操作,再者也讓我學會了Quartus的使用方法,學會使用這么一款強大的軟件確實是獲益匪淺啊。最后,這是一次對自身各方面能力有很大提高的實驗,自身的初步計算機系統(tǒng)分析和設計能力、分析、定位和排除故障的能力等得到了鍛煉。</p>
91、;<p> 以下也是我對這次試驗的一些小小的心得體會,也是我的切身感受:</p><p> 在開始實驗前一定要好好檢查芯片,不能盲目的開始,否則在電路連好后再去尋找問題所在是件很麻煩的事,或許會浪費比檢查芯片所需的更多的寶貴時間。</p><p> 同時要重新理解和回顧計算機組成原理實驗的前3個實驗,即:運算器組成實驗、半導體存儲實驗、數(shù)據(jù)通路實驗,如果要選擇用FPGA
92、的話也要學習實驗指導書中“FPGA及EDA開發(fā)環(huán)境介紹”部分的講解,只有好好復習了之前的知識才能最快的動手!</p><p> 實驗前要熟悉所有用到的芯片的功能和引腳職能,同時要熟悉該芯片的輸入輸出等具體內(nèi)容,免得每次都得查閱課本上的講解,詳細知道了用到的芯片的資料,這樣做起來會順利點,指導書上的那些邏輯表是遠遠不夠的。</p><p> 在用PFGA下載之前一定要記得修改相關的設置,
93、并修改序列號,否則會出現(xiàn)無法下載的情況!</p><p> 還有就是連線時候,最好不要兩個人同時在實驗臺上連接,這樣出現(xiàn)問題的幾率最大,因為兩個人的思維和連線方式及習慣都不一樣,所以可以兩人一個負責連線,一個負責報引腳號!</p><p> 最后還有一點就是實驗要保持冷靜,這個實驗的工程量還是相對比較巨大的,因此不出現(xiàn)錯誤應該說一般情況下是不可能的,我們也出現(xiàn)了很多錯誤,關鍵還是不要驚
94、慌,按照自己的思路來搜尋錯誤的根源,然后解決。</p><p> 總的來說,開學一個月,這個課設的完成確實是讓我最有成就感的一件事,對于在一定的時間內(nèi)完成到這種程度,我也確實感到驚訝,也對自己的成長感到自豪!雖然在這次實驗中,我們并沒有什么太大的亮點,也沒有做出來高級功能的擴展,但是我們還是靠著自己的努力一步步實現(xiàn)了任務目標,靠自己的力量解決一系列難題,這也是一件很讓人愉快的事。同時也很感謝老師們一直陪伴我們,
95、給與我們指導與幫助,讓我們能更有效率的完成這個實驗。</p><p> 最后也是對這次試驗的一個感慨,這次試驗確實讓我有了很大的提高,不只是知識層面,精神層面也有著飛躍,思考能力,發(fā)現(xiàn)錯誤能力,排錯糾錯能力,這才是我覺得學到的最寶貴的東西,希望在以后的學習生活中還能再接觸到相關的有趣知識,讓我能有更大的提高!</p><p><b> 參考文獻</b></p
96、><p> [1] 王曉蘭 周建國 秦磊華《計算機組成原理實驗及課程設計指導書》華中科技大學出版社 湖北武漢 2008</p><p> [2] 番松 潘明《現(xiàn)代計算機組成原理》科學技術出版社 北京2007</p><p> [3] 易小琳 朱文軍 魯鵬程《計算機組成原理實踐教程(基于EDA平臺)》北京航空航天大學出版社 北京2006</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 計算機組成原理課程設計---簡單計算機系統(tǒng)設計與實現(xiàn)
- 計算機組成原理課程設計--簡單計算機系統(tǒng)設計與實現(xiàn)
- 計算機組成原理課程設計報告--簡單計算機
- 計算機組成原理課程設計--簡單計算機的設計
- 計算機組成原理課程設計---簡單計算機的設計
- 計算機組成原理課程設計--計算機組成原理算法實現(xiàn)
- 計算機組成原理課程設計-- 模型計算機的設計與實現(xiàn)
- 計算機組成原理課程設計——模型計算機的設計與實現(xiàn)
- 計算機組成原理課程設計--基本模型計算機
- 計算機組成原理課程設計--模型計算機設計
- 《計算機組成原理》課程設計
- 計算機組成原理課程設計
- 計算機組成原理課程設計
- 計算機組成原理課程設計
- 計算機組成原理課程設計
- 計算機組成原理課程設計
- 計算機組成原理課程設計-概念模型計算機
- 計算機組成原理課程設計報告
- 計算機組成原理-課程設計報告
- 計算機組成原理課程設計報告
評論
0/150
提交評論