計(jì)算機(jī)組成原理課程設(shè)計(jì)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
計(jì)算機(jī)組成原理課程設(shè)計(jì)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
計(jì)算機(jī)組成原理課程設(shè)計(jì)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
計(jì)算機(jī)組成原理課程設(shè)計(jì)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
計(jì)算機(jī)組成原理課程設(shè)計(jì)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩58頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、題 目:基于微程序控制器的簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí):cs0907學(xué) 號(hào):u200915075姓 名:劉珂男電 話: 郵 件: 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí) 驗(yàn) 臺(tái):38 臺(tái) 同組:陳克完成日期:2012-03-04 周日下午指導(dǎo)教師:劉景寧 吳非 譚志虎 孫百勇課程設(shè)計(jì)課程設(shè)計(jì)任務(wù)書(shū)任務(wù)書(shū)一、設(shè)計(jì)題目基于微程序控制器的簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)基于微程序控制器的簡(jiǎn)單計(jì)算機(jī)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)二、設(shè)計(jì)內(nèi)容設(shè)計(jì)模型機(jī)系統(tǒng)的總體結(jié)構(gòu)、指令系統(tǒng)和時(shí)序信號(hào)。在對(duì)該模型機(jī)系統(tǒng)中的部件功能利用eda 軟件的仿真功能進(jìn)行仿真分析和功能驗(yàn)證的基礎(chǔ)上,將部分電路下載到 fpga

2、,并與適當(dāng)?shù)耐鈬骷嗯浜?,?shí)現(xiàn)模型機(jī)的整機(jī)系統(tǒng)。要求所設(shè)計(jì)的整機(jī)系統(tǒng)能支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存中的程序的功能,對(duì)主要的數(shù)據(jù)流和控制流通過(guò) led 適時(shí)顯示信息。三、設(shè)計(jì)要求1)支持算術(shù)運(yùn)算、邏輯運(yùn)算、存儲(chǔ)器讀寫、寄存器間數(shù)據(jù)傳送等幾類指令;2)支持立即數(shù)尋址、直接尋址、隱含尋址、寄存器尋址等幾種基本數(shù)據(jù)尋址方式和順序?qū)ぶ贰⑻S尋址方式;3)支持 10 條以上的指令;4)能運(yùn)行由自己設(shè)計(jì)的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確。四、設(shè)計(jì)流程1)根據(jù)課程設(shè)計(jì)指導(dǎo)書(shū)的要求,制定出設(shè)計(jì)方案;2)畫出模型計(jì)算機(jī)系統(tǒng)的原理框圖和器件連接圖,分析器件連接圖中各器件不同引腳的功能,哪

3、些可以固定連接,哪些需要通過(guò)微程序來(lái)控制,以及這些控制信號(hào)的有效形式;3)畫出各指令的指令周期流程圖和所需要的控制信號(hào);4)設(shè)計(jì)出實(shí)現(xiàn)指令功能的微程序控制器或硬布線控制器;5)布線、調(diào)試、驗(yàn)收;6)課程設(shè)計(jì)報(bào)告和總結(jié)。五、成績(jī)?cè)u(píng)定 成績(jī)?cè)u(píng)定根據(jù)考勤、課程設(shè)計(jì)的過(guò)程、課程設(shè)計(jì)的效果、課程設(shè)計(jì)報(bào)告質(zhì)量等進(jìn)行綜合評(píng)定;其中設(shè)計(jì)過(guò)程和結(jié)果占 70%,課程設(shè)計(jì)報(bào)告占 30%;課程設(shè)計(jì)的成績(jī)?cè)u(píng)定等級(jí)為不及格、及格、中、良好、優(yōu)秀五級(jí);對(duì)基本功能進(jìn)行擴(kuò)展或設(shè)計(jì)具有非常鮮明的特征和一定程度的創(chuàng)新,可根據(jù)實(shí)際情況加分。六、設(shè)計(jì)報(bào)告要求 課程設(shè)計(jì)報(bào)告主要內(nèi)容包括:設(shè)計(jì)題目、設(shè)計(jì)目的、設(shè)備器材、設(shè)計(jì)原理及內(nèi)容、設(shè)計(jì)

4、步驟、遇到的問(wèn)題及解決方法、設(shè)計(jì)總結(jié)、參考文獻(xiàn)等。要求在適當(dāng)位置配合相應(yīng)的實(shí)驗(yàn)原理圖、數(shù)據(jù)通路圖、微程序流程圖、實(shí)驗(yàn)接線圖、微指令代碼表等圖表進(jìn)行說(shuō)明。總結(jié)部分主要寫設(shè)計(jì)工作簡(jiǎn)介以及設(shè)計(jì)體會(huì)。應(yīng)做到文理通順,內(nèi)容正確完整,書(shū)寫工整,裝訂整齊。課程設(shè)計(jì)報(bào)告采用計(jì)算機(jī)組成原理專用設(shè)計(jì)報(bào)告模板,a4 紙雙面打印,除框圖外需附下載的設(shè)計(jì)圖以及微指令控制點(diǎn)圖。七、時(shí)間安排 課程設(shè)計(jì)的總體時(shí)間為 2 周,具體安排如下:1)第 1 天:到實(shí)驗(yàn)室布置任務(wù)和集中講解。2)第 2 天:學(xué)生自己設(shè)計(jì),選擇并熟悉自己所要的芯片。3)第 3 天:領(lǐng)導(dǎo)線和芯片,進(jìn)行芯片功能測(cè)試,在此基礎(chǔ)上修改完善原設(shè)計(jì)方案。4)第 4

5、天到第 10 天:實(shí)驗(yàn)室調(diào)試、驗(yàn)收。八、主要參考文獻(xiàn)1 秦磊華,王小蘭. 計(jì)算機(jī)組成原理實(shí)驗(yàn)指導(dǎo)及課程設(shè)計(jì)指導(dǎo)書(shū)(基于 eda 平臺(tái)). 武漢:華中科技大學(xué)出版社,2010 年.2 秦磊華,吳非,莫正坤.計(jì)算機(jī)組成原理. 北京:清華大學(xué)出版社,2011 年.3 david a.patterson(美).計(jì)算機(jī)組成與設(shè)計(jì)硬件/軟件接口(原書(shū)第 3 版).北京:機(jī)械工業(yè)出版社. 2007 年.4 袁春風(fēng)編著. 計(jì)算機(jī)組成與系統(tǒng)結(jié)構(gòu). 北京:清華大學(xué)出版社,2011 年.目 錄1 課程設(shè)計(jì)概述課程設(shè)計(jì)概述 .71.1 課設(shè)目的 .71.2 設(shè)計(jì)任務(wù) .71.3 設(shè)計(jì)要求 .82 實(shí)驗(yàn)原理與環(huán)境實(shí)驗(yàn)原

6、理與環(huán)境.92.1 實(shí)驗(yàn)原理 .92.2 實(shí)驗(yàn)環(huán)境 .93 總體方案設(shè)計(jì)總體方案設(shè)計(jì).103.1 需求分析 .103.2 硬件設(shè)計(jì) .103.3 軟件設(shè)計(jì) .164 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn).184.1 選用芯片 .184.2 硬件實(shí)現(xiàn) .244.3 軟件實(shí)現(xiàn) .305 實(shí)驗(yàn)過(guò)程與調(diào)試實(shí)驗(yàn)過(guò)程與調(diào)試.485.1 仿真 xxx.485.2 主要故障與調(diào)試 .495.3 功能測(cè)試 .515.4 實(shí)驗(yàn)流程圖 .536 設(shè)計(jì)總結(jié)與心得設(shè)計(jì)總結(jié)與心得.556.1 課設(shè)總結(jié) .556.2 課設(shè)心得 .57參考文獻(xiàn)參考文獻(xiàn).59 1 1、課程設(shè)計(jì)概述、課程設(shè)計(jì)概述1.11.1 課設(shè)目的課設(shè)目的計(jì)算機(jī)組成

7、原理是計(jì)算機(jī)專業(yè)的核心專業(yè)基礎(chǔ)課,也是作為計(jì)算機(jī)專業(yè)的學(xué)生應(yīng)該要好好掌握的重要學(xué)科。課程設(shè)計(jì)屬于設(shè)計(jì)型實(shí)驗(yàn),不僅鍛煉學(xué)生簡(jiǎn)單計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)能力,考驗(yàn)同學(xué)的創(chuàng)新思維,而且通過(guò)進(jìn)行設(shè)計(jì)及實(shí)現(xiàn),進(jìn)一步提高分析和解決問(wèn)題的能力。再者,組成原理課設(shè)也是對(duì)學(xué)生們一個(gè)學(xué)期的學(xué)習(xí)成果的檢驗(yàn)和鞏固,也是同學(xué)們提高分析、定位、排錯(cuò)能力的一次機(jī)會(huì)。1.21.2 設(shè)計(jì)任務(wù)設(shè)計(jì)任務(wù)計(jì)算機(jī)系統(tǒng)設(shè)計(jì)的總體目標(biāo)是設(shè)計(jì)模型機(jī)系統(tǒng)的總體結(jié)構(gòu)、指令系統(tǒng)和時(shí)序信號(hào)。在對(duì)該模型機(jī)系統(tǒng)中的部件功能利用 eda 軟件的仿真功能進(jìn)行仿真分析和功能驗(yàn)證的基礎(chǔ)上,將部分電路下載到 fpga,并與適當(dāng)?shù)耐鈬骷?包括部分芯片、輸入/輸出開(kāi)關(guān)、l

8、ed 顯示等)相配合,實(shí)現(xiàn)模型機(jī)的主機(jī)系統(tǒng)。要求所設(shè)計(jì)的主機(jī)系統(tǒng)能支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存中程序的功能,對(duì)主要的數(shù)據(jù)流和控制流通過(guò) led 適時(shí)顯示信息。具體如下:具體如下:設(shè)計(jì)微程序控制器或硬布線控制器或基于微程序和硬布線相結(jié)合方式的 cpu 控制器;利用所設(shè)計(jì)的 cpu 組成一臺(tái)功能完整的模型機(jī)并基于實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn).要求部分功能利用 fpga 實(shí)現(xiàn),部分功能用芯片連接實(shí)現(xiàn);所設(shè)計(jì)的模型機(jī)支持加法減運(yùn)算等基本的算術(shù)運(yùn)算指令、支持邏輯運(yùn)算類指令、支持存儲(chǔ)器讀寫指令、支持寄存器間數(shù)據(jù)傳送等幾類指令、支持定點(diǎn)數(shù)的溢出判斷;支持立即數(shù)尋址、直接尋址、隱含尋址、間接尋址(寄存器尋址

9、)等幾種基本的尋址方式;能支持 10 條以上的指令;能運(yùn)行由自己設(shè)計(jì)的 cpu 所支持的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確;根據(jù)課程設(shè)計(jì)指導(dǎo)書(shū)和本次課程設(shè)計(jì)的具體要求,制定出設(shè)計(jì)方案。確定 cpu 的基本結(jié)構(gòu)是采用總線方式還是采用專用通路方式;畫出自己所設(shè)計(jì)計(jì)算機(jī)系統(tǒng)的原理框圖和器件連接圖,分析器件連接圖中各器件不同引腳的功能,哪些可以固定連接,哪些需要通過(guò)微程序來(lái)控制,以及這些控制信號(hào)的有效形式;畫出各指令的指令周期流程圖和所需要的控制信號(hào);布線、調(diào)試、驗(yàn)收; 鼓勵(lì)完成上述基本功能的基礎(chǔ)上進(jìn)行適當(dāng)擴(kuò)展,比如支持流水線、支持其他尋址方式等。1.31.3 設(shè)計(jì)要求設(shè)計(jì)要求根據(jù)理論課程所學(xué)的

10、至少,設(shè)計(jì)出簡(jiǎn)單計(jì)算機(jī)系統(tǒng)的總體方案,結(jié)合各單元實(shí)驗(yàn)積累和課堂上所學(xué)知識(shí),選擇適當(dāng)芯片,設(shè)計(jì)簡(jiǎn)單的計(jì)算機(jī)系統(tǒng),具體要求如下: 利用各單元實(shí)驗(yàn)和課堂上所學(xué)知識(shí),選擇適當(dāng)?shù)男酒O(shè)計(jì)簡(jiǎn)單的計(jì)算機(jī)系統(tǒng); 在完成數(shù)據(jù)通路設(shè)計(jì)并驗(yàn)證數(shù)據(jù)通路功能的基礎(chǔ)上增加指令和微指令控制的功能; 以手動(dòng)方式產(chǎn)生各指令執(zhí)行過(guò)程中所需要的微命令,控制指令的執(zhí)行; 以自己所設(shè)計(jì)的計(jì)算機(jī)系統(tǒng)為硬件環(huán)境,設(shè)計(jì)出完成指定功能的各指令周期流程圖,并設(shè)計(jì)出相應(yīng)的微命令; 設(shè)計(jì)時(shí)序列電路,產(chǎn)生滿足指令周期和指令執(zhí)行所需要的多級(jí)時(shí)序信號(hào);設(shè)計(jì)控存,將各指令的微程序存放在 cm 中,經(jīng)過(guò)適當(dāng)?shù)臅r(shí)序控制,通過(guò)微程序自動(dòng)控制指令的執(zhí)行(當(dāng)采用微

11、程序控制器時(shí))。2 2、實(shí)驗(yàn)原理與環(huán)境、實(shí)驗(yàn)原理與環(huán)境2.1 實(shí)驗(yàn)原理計(jì)算機(jī)組成原理,數(shù)字邏輯, fpga(field programmable gate array)現(xiàn)場(chǎng)可編程門陣列 、quartus 仿真等2.2 實(shí)驗(yàn)環(huán)境jzylii 型計(jì)算機(jī)組成原理試驗(yàn)臺(tái),windows xp 系統(tǒng),512m 內(nèi)存電腦電腦一臺(tái),quartus ii 6.0 版軟件,導(dǎo)線若干。3、總體方案設(shè)計(jì)3.1 需求分析在這次計(jì)算機(jī)系統(tǒng)設(shè)計(jì)中,我們需要根據(jù)計(jì)算機(jī)的各個(gè)部件先畫出總的框圖,然后在框圖的基礎(chǔ)上選擇適當(dāng)?shù)男酒瑢?shí)現(xiàn)各自的功能,主要先實(shí)現(xiàn)運(yùn)算器部分,保證運(yùn)算的正確性,然后設(shè)計(jì)存儲(chǔ)部分,選擇主存和控存是合并還是分

12、開(kāi),然后設(shè)計(jì)對(duì)應(yīng)的微指令,用手動(dòng)操作檢驗(yàn)后,進(jìn)行設(shè)計(jì)時(shí)序電路,轉(zhuǎn)成自動(dòng)執(zhí)行。3.2 硬件設(shè)計(jì)3.2.1 總體設(shè)計(jì)本次我們采用的方案是微程序控制,且主、控存分開(kāi)的方案,即采用微程序控制方式,實(shí)現(xiàn)主存儲(chǔ)器(mm)和微程序控制存儲(chǔ)器(cm)不共用一個(gè)存儲(chǔ)器的方式完成方案的設(shè)計(jì)。同時(shí)在實(shí)施的過(guò)程中,采用部分電路用 fpga 方式下載、部分電路用硬件搭建的方式完成,其中運(yùn)算器和存儲(chǔ)器部分由硬件搭線完成,主存使用6116 芯片實(shí)現(xiàn),控存與主存分開(kāi),使用 2816 芯片實(shí)現(xiàn),然后時(shí)序控制部分選擇用fpga 方式下載,最后匯總在一起,形成實(shí)現(xiàn)所有功能的整體計(jì)算機(jī)系統(tǒng)??傮w結(jié)構(gòu)圖如圖 3.1 所示。dr2(37

13、3)181181ac(373)dr1(373)down244up244mm(6116)pc(161)244cm(2816)cm(2816)pc(395)ir(373)157輸 出 控 制 信 號(hào)圖 0.1 總體結(jié)構(gòu)圖3.2.2 運(yùn)算通路由 181 作運(yùn)算,373 鎖存組合成的電路,其中包括了 ac,dr1,dr2 等設(shè)計(jì)如圖 3.2 所示幾點(diǎn)說(shuō)明(包括選擇芯片的理由及引腳連接情況):dr2(373)181181ac(373)dr1(373)down244up244mm(6116)244157圖 0.2 運(yùn)算器圖圖 0.3 存儲(chǔ)器圖3.2.4 選擇電路 如圖 3.4 所示為方便置數(shù),直接讓指令的

14、數(shù)據(jù)部分與 161 的輸入相連圖 0.4 選擇通路圖3.2.5 時(shí)序控制:通過(guò)各種控制點(diǎn)設(shè)計(jì)而出如圖 3.5 所示pc(161)157圖 0.5 時(shí)序控制圖3.3 軟件設(shè)計(jì)3.3.1 機(jī)器指令系統(tǒng)設(shè)計(jì)機(jī)器指令系統(tǒng)設(shè)計(jì)本次指令設(shè)計(jì)格式遵循常見(jiàn)指令格式設(shè)計(jì)原則,機(jī)器指令共占 8 位,其中高四位為操作碼 op,低四位為操作數(shù)地址 addr,見(jiàn)下表描述:74 位30 位opaddr指令尋址方式設(shè)計(jì)順序?qū)ぶ罚焊鶕?jù) pc(74ls161)計(jì)數(shù)器自動(dòng)增 1,順序讀取下一條指令;跳躍尋址:根據(jù) pc(74ls161)的 pc-set 功能,依照跳躍指令內(nèi)容往計(jì) 數(shù)器中預(yù)置打入數(shù)據(jù),從而跳轉(zhuǎn)到相應(yīng)地址。操作數(shù)尋

15、址方式設(shè)計(jì)寄存器尋址:利用 ac(74ls373)寄存器進(jìn)行尋址;直接尋址:根據(jù)指令中的 addr 所指向的地址得到主存相應(yīng)數(shù)據(jù);隱含尋址:利用 ac(74ls373)寄存器,對(duì)于需要雙操作數(shù)的機(jī)器指令只提供一個(gè)操作數(shù),另一操作數(shù)隱含在 ac 中。3.3.23.3.2 微指令設(shè)計(jì)微指令設(shè)計(jì)微指令設(shè)計(jì)思想:此次設(shè)計(jì)共決定選取 12 條指令,分別是取址公操作、store 存儲(chǔ)指令、load 導(dǎo)入指令、jump 跳轉(zhuǎn)指令、加、減、與、或、非、地址非、異或等運(yùn)算指令,以及最后的停機(jī)指令。指令采用雙周期、自動(dòng)執(zhí)行。微指令設(shè)計(jì)方案:根據(jù)具體的電路原理決定采取 16 個(gè)微程序控制點(diǎn),然后通過(guò)對(duì)各個(gè)控制點(diǎn)的值

16、來(lái)實(shí)現(xiàn)對(duì)微指令的編碼(即各個(gè)控制點(diǎn)的值取 0 或 1) ,不同的指令所對(duì)應(yīng)的各個(gè)控制點(diǎn)的編碼會(huì)有不同。微指令設(shè)計(jì)流程:因?yàn)槭孪缺仨毚_定好電路才能得出各個(gè)控制點(diǎn),因此根據(jù)完整的電路的各個(gè)可控信號(hào)確定了 16 個(gè)控制點(diǎn),在這個(gè)過(guò)程中,實(shí)際有的控制點(diǎn)不止 16個(gè),因此我們采取了一些措施,部分控制點(diǎn)合并,另外一些改成了直接采用節(jié)拍控制,最終將控制點(diǎn)的數(shù)目控制在了 16 個(gè),然后設(shè)計(jì)了取址公操作部分各個(gè)控制點(diǎn)的值,形成了取址公操作的編碼,然后在此基礎(chǔ)上修改各個(gè)控制點(diǎn)的值,形成了一個(gè)大概的指令編碼表,然后在實(shí)踐中檢驗(yàn)、糾錯(cuò)、修改,最后得到完整的微指令設(shè)計(jì)表。微程序設(shè)計(jì)微程序設(shè)計(jì) 對(duì)于每條指令都設(shè)計(jì)了相應(yīng)的

17、匯編程序來(lái)進(jìn)行檢驗(yàn),將匯編程序設(shè)計(jì)好,然后改寫成計(jì)算機(jī)所能識(shí)別的二進(jìn)制形式,事先將二進(jìn)制程序存入內(nèi)存的芯片中,然后開(kāi)始執(zhí)行檢驗(yàn)即可。對(duì)于各條指令的微程序要考慮到指令的控制點(diǎn)編碼,以及控制它的地址,還有內(nèi)存中的存儲(chǔ)數(shù)據(jù)的部分。將微程序分為兩段,一段是所執(zhí)行的操作,另一段是操作數(shù)。而每一行代碼又可分為 3 部分,比如我們?cè)O(shè)計(jì)的微程序地址四位,數(shù)據(jù)八位,指令八位,因此我們的程序中,前四位二進(jìn)制數(shù)字表示程序執(zhí)行的地址,即 pc 計(jì)數(shù)器的內(nèi)容,后八位是指令,指令的前四位對(duì)應(yīng)的是操作碼,需送入控存譯碼,進(jìn)而得到具體操作,后四位是數(shù)據(jù)地址,返送回內(nèi)存讀取數(shù)據(jù)。各個(gè)指令所對(duì)應(yīng)的微程序具體還是不同的,在后面會(huì)有

18、詳細(xì)說(shuō)明。4、詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 所選用芯片1.74ls181系統(tǒng)使用了2片181芯片作為alu,用于8位的運(yùn)算器,負(fù)責(zé)執(zhí)行階段的各種運(yùn)算。181芯片引腳圖及引腳說(shuō)明如error! reference source not found.表 4.1 74181 芯片引腳及其引腳說(shuō)明2、74ls157如圖 4.2 所示表 4.2 74167 芯片引腳及其引腳說(shuō)明3、74ls161如圖 4.3 所示表 4.3 74161 芯片引腳及其引腳說(shuō)明4、74ls395如圖 4.4 所示表 4.4 74181 芯片引腳及其引腳說(shuō)明5、6116如圖 4.5 所示表 4.5 6116 芯片引腳及其引腳說(shuō)明6、2

19、816如圖 4.6 所示表 4.6 2816 芯片引腳及其引腳說(shuō)明7、74ls244如圖 4.7 所示表 4.7 74ls244 芯片引腳及其引腳說(shuō)明8、74ls373如圖 4.8 所示表 4.8 74181 芯片引腳及其引腳說(shuō)明4.2 硬件實(shí)現(xiàn)4.2.1 硬件原理圖本次我們采用的方案是微程序控制,且主、控存分開(kāi)的方案,即采用微程序控制方式,實(shí)現(xiàn)主存儲(chǔ)器(mm)和微程序控制存儲(chǔ)器(cm)不共用一個(gè)存儲(chǔ)器的方式完成方案的設(shè)計(jì)。同時(shí)在實(shí)施的過(guò)程中,采用部分電路用 fpga 方式下載、部分電路用硬件搭建的方式完成,其中運(yùn)算器和存儲(chǔ)器部分由硬件搭線完成,主存使用6116 芯片實(shí)現(xiàn),控存與主存分開(kāi),使用

20、 2816 芯片實(shí)現(xiàn),然后時(shí)序控制部分選擇用fpga 方式下載,最后匯總在一起,形成實(shí)現(xiàn)所有功能的整體計(jì)算機(jī)系統(tǒng)。具體的電路設(shè)計(jì)圖如圖 4.9 所示:s3s04d83d742d21d4q 3q 2q 1q9852gnd108d187d17 146d135d8q 7q 6q 5q19 16 15 12vcc20373b318b220 23b12b0 f1 f0 10 9m12 a319a221 23a12a0 f3 f213 11 vcc124alu1814d83d742d21d4q 3q 2q 1q9852gnd108d187d17 146d135d8q 7q 6q 5q19 16 15 12

21、vcc 3734d83d742d21d4q 3q 2q 1q9852gnd108d187d17 146d135d8q 7q 6q 5q19 16 15 12vcc 373ia38ia264ia12ia0ya3ya2ya1ya012141618gnd10ib311ib21316ib117ib0yb3vn2yb1yb09753vcc120回存244ia38ia264ia12ia0ya3ya2ya1ya012141618gnd10ib311ib21316ib117ib0yb3vn2yb1yb09753vcc120輸入244a35a267a18a0i/04i/03i/02i/0113 11 109gn

22、d12a71a623a54a4i/08i/07i/06i/0517 16 15 14vcc 6116d25d367cep8gndq2q3cetpe1211109 mr1cp23d04d1vcvtcq0q116151413 161a310a2136a13a0 yb ya 7 4gnd8 b311b2145b12b0 yd yc9 12 vcc116ls157a310a2136a13a0 yb ya 7 4gnd8 b311b2145b12b0 yd yc9 12 vcc1 ls157ia38ia264ia12ia0ya3ya2ya1ya012141618gnd10ib311ib21316ib11

23、7ib0yb3vn2yb1yb09753vcc120輸入244a35a267a18a0i/04i/03i/02i/0113 11 109gnd12a71a623a54a4i/08i/07i/06i/0517 16 15 14vcc202816ia38ia264ia12ia0ya3ya2ya1ya012141618gnd10ib311ib21316ib117ib0yb3vn2yb1yb09753vcc120輸入244a35a267a18a0i/04i/03i/02i/0113 11 109gnd12a71a623a54a4i/08i/07i/06i/0517 16 15 14vcc202816a

24、310a2136a13a0 yb ya 7 4gnd8 b311b2145b12b0 yd yc9 12 vcc116ls157d25d367pe8gndq3q3cpoe1211109gnd mr1ds23d04d1vcvq0q1q216151413 395a310a2136a13a0 yb ya 7 4gnd8 b311b2145b12b0 yd yc9 12 vcc1 ls1574d83d742d21d4q 3q 2q 1q9852gnd108d187d17 146d135d8q 7q 6q 5q19 16 15 12vcc 373輸入主存內(nèi)容&000&000&000b318b220 23

25、b12b0 f1 f0 10 9m12 a319a221 23a12a0 f3 f213 11 vcc124alu181&000&000t4t3t2mt4t4t4結(jié)果顯示燈開(kāi)關(guān)圖 4.9 系統(tǒng)總框架引腳圖4.2.2 運(yùn)算通路實(shí)現(xiàn)運(yùn)算器部分電路是采用硬件連線實(shí)現(xiàn)的,但是原價(jià)努力圖還是用 quartus 設(shè)計(jì)的,并且為了檢驗(yàn)其正確性,也進(jìn)行了仿真.設(shè)計(jì)圖如 4.10 所示:圖 4.10 運(yùn)算器電路的圖4.2.3 存儲(chǔ)器部分實(shí)現(xiàn)此部分通路中,主要為一片 6116 做主存,其 io 輸出數(shù)據(jù)通過(guò)一片 373 緩沖然后經(jīng)過(guò)一片157 選擇高四位送給作為寄存器的 395 芯片,然后送入作為控存的 2816

26、 芯片中,低四位作為數(shù)據(jù)地址傳回內(nèi)存,讀取操作數(shù)。如圖 4.11 所示圖 4.11 存儲(chǔ)器電路引腳圖4.2.4 選擇電路的實(shí)現(xiàn)采用了 157 芯片作為選擇控制,從 161 芯片或者是作為 ir 的 373 芯片的兩個(gè)輸出中選擇一個(gè)作為其輸出。如圖 4.12 所示圖 4.12 選擇通路電路引腳圖4.2.5 時(shí)序電路的實(shí)現(xiàn)根據(jù)具體的控制信號(hào)得出的時(shí)序電路圖,用 16 個(gè)控制點(diǎn)與節(jié)拍信號(hào)作為輸入,通過(guò)各種邏輯門實(shí)現(xiàn)邏輯運(yùn)算,最后將其輸出作為控制開(kāi)關(guān)的信號(hào)來(lái)實(shí)現(xiàn)各條指令。如圖 4.13 所示圖 4.13 時(shí)序電路圖4.3 軟件實(shí)現(xiàn)軟件實(shí)現(xiàn)4.3.1 機(jī)器指令系統(tǒng)實(shí)現(xiàn)本次指令設(shè)計(jì)格式遵循常見(jiàn)指令格式設(shè)計(jì)

27、原則,機(jī)器指令共占 8 位,其中高四位為操作碼 op,低四位為操作數(shù)地址 addr指令尋址方式設(shè)計(jì)順序?qū)ぶ罚焊鶕?jù) pc(74ls161)計(jì)數(shù)器自動(dòng)增 1,順序讀取下一條指令;跳躍尋址:根據(jù) pc(74ls161)的 pc-set 功能,依照跳躍指令內(nèi)容往計(jì) 數(shù)器中預(yù)置打入數(shù)據(jù),從而跳轉(zhuǎn)到相應(yīng)地址。操作數(shù)尋址方式設(shè)計(jì)寄存器尋址:利用 ac(74ls373)寄存器進(jìn)行尋址;直接尋址:根據(jù)指令中的 addr 所指向的地址得到主存相應(yīng)數(shù)據(jù);隱含尋址:利用 ac(74ls373)寄存器,對(duì)于需要雙操作數(shù)的機(jī)器指令只提供一個(gè)操作數(shù),另一操作數(shù)隱含在 ac 中。1 指令格式本次指令設(shè)計(jì)格式遵循常見(jiàn)指令格式設(shè)

28、計(jì)原則,機(jī)器指令共占 8 位,其中高四位為操作碼 op,低四位為操作數(shù)地址 addr,見(jiàn)表 4.14 描述:74 位30 位opaddr表 4.14 系統(tǒng)指令格式指令格式編碼及其格式說(shuō)明如表 4.15 所示:指令全稱指令地址指令功能load addr0001取操作數(shù)指令,將 addr 所指向的內(nèi)存單元中的操作數(shù)取出,然后打入 ac 中store addr0010回存指令,將計(jì)算結(jié)果回存打入地址 addr 所指向的內(nèi)存單元 mm 中jmp addr0011跳轉(zhuǎn)指令,使程序跳轉(zhuǎn)到地址 addr 所指向的單元,然后讀取下一條指令(依賴 pc)add addr0100加法指令,實(shí)現(xiàn)(ac)加(addr

29、) ,且將結(jié)果打入 acsub addr0101減法指令,實(shí)現(xiàn)(ac)減(addr) ,且將結(jié)果打入 acand addr0110與指令,實(shí)現(xiàn)(ac)&(addr) ,且將結(jié)果打入 acor addr 0111或指令,實(shí)現(xiàn)(ac)&(addr) ,且將結(jié)果打入 acnot addr1000取反指令,實(shí)現(xiàn),且將結(jié)果打入 acnot1001取反指令,實(shí)現(xiàn),且將結(jié)果打入 aca 異或 b1010異或指令,實(shí)現(xiàn)(ac)異或(addr) ,且將結(jié)果打入 aca 加 a1011乘 2 指令,實(shí)現(xiàn)(ac)加(ac) ,且將結(jié)果打入 acend1100結(jié)束指令,程序終止運(yùn)行表 4.15 指令格式說(shuō)明表2、指令

30、周期流程圖如下圖 4.16 所恨死圖 4.16 指令流程圖具體的指令流程1、load 指令,如圖 4.17 所示rdbusbusldacar 清零pcmmrd、ldir;iraar開(kāi)始pc+1pcirbmm取指公操作m1m24.17 load 指令流程圖2、 store 指令,如圖 4.18 所示m1ar 清零pcmmrd、ldir;iraar開(kāi)始pc+1pcirbmm傳數(shù) alddr2busbuswr取指公操作m2圖 4.18 store 指令流程圖3、 jmp 指令如圖 4.19 所示ar 清零pcmmrd、ldiriraar開(kāi)始pc+1pcirbpc取指公操作m1m2圖 4.19 jmp

31、 指令流程圖4、end 指令如圖 4.20 所示m2ar 清零pcmmrd、ldir;iraar開(kāi)始pc+1pcstop停止m1圖 4.20 end 指令流程圖5、add 指令如圖 4.21 所示注:所有的雙操作數(shù)運(yùn)算指令均和 add 相同m1ldacar 清零pcmmrd、ldir;iraar開(kāi)始pc+1pcirbmmrdbusbuslddr1addlddr2取指公操作m2圖 4.21 add 指令流程圖6、not (a)指令如圖 4.22 所示注:所有單操作數(shù)指令均同此,如 a 加 am2ar 清零pcmmrd、ldir;iraar開(kāi)始pc+1pcnot alodr2ldac取指公操作m1

32、圖 4.22 not(a) 指令流程圖4.3.2 微指令實(shí)現(xiàn)1、 控制信號(hào)選擇 運(yùn)算器部分:如表 4.23 所示 名稱功能所屬芯片dr2_g使能端,控制 dr2 是否為鎖狀態(tài)74ls373dr2_ctrldr2 輸出控制74ls373m運(yùn)算器運(yùn)算控制74ls181s0運(yùn)算器運(yùn)算控制74ls181s1運(yùn)算器運(yùn)算控制74ls181s2運(yùn)算器運(yùn)算控制74ls181s3運(yùn)算器運(yùn)算控制74ls181ac_g使能端,控制 ac 是否為鎖狀態(tài)74ls373dr1_g使能端,控制 dr1 是否為鎖狀態(tài)74ls373up_244上行 244 輸出控制端74ls244down_244下行 244 輸出控制端74l

33、s373表 4.23 運(yùn)算器部分控制點(diǎn)選擇 主、控存部分:如表 4.24 所示名稱功能所屬芯片we控制主存 mm 的讀寫狀態(tài)cmos 靜態(tài) ram 6116ir_g使能端,控制 ir 是否為鎖狀態(tài)74ls373s1控制選擇 ir 的 ira(高)或irb(b)74ls157pc_ 控制 pc 的預(yù)置功能74ls161pc_cp控制 pc 的時(shí)鐘,實(shí)現(xiàn)計(jì)數(shù)功能74ls161ar_cp控制 ar 的時(shí)鐘,實(shí)現(xiàn)裝入數(shù)據(jù)74ls395ar_控制 ar 的清零端74ls395表 4.24 主控存部分控制點(diǎn)選擇 默認(rèn)部分:如表 4.25 所示名稱狀態(tài)功能所屬芯片ac_ctrll(常接低)ac 輸出控制有效

34、74ls373dr1_ctrll(常接低)dr1 輸出控制有效74ls373ir_ctrll(常接低)ir 輸出控制有效74ls373mm_l(常接低)輸出控制6116mm_l(常接低)片選有效6116157_l(常接低)使能有效74ls157pc_或開(kāi)關(guān)手自動(dòng)控制清零74ls161pc_cep/cet與 pc_ 連接協(xié)同控制74ls161ar_peh(常接高)置數(shù)功能有效74ls395cm_l(常接低)片選有效2816cm_ h(常接高)常讀狀態(tài)2816表 4.25 默認(rèn)部分控點(diǎn) h/l 控制 時(shí)序部分: stop ,控制時(shí)序停止2、指令周期設(shè)計(jì)每條指令包含兩個(gè)機(jī)器周期,其中第一個(gè)用于取指令

35、,用 m1 標(biāo)識(shí),第二個(gè)用于執(zhí)行指令,用 m2 標(biāo)識(shí);每個(gè)機(jī)器周期包含 4 個(gè) t 周期,分別為 t1、t2、t3、t4,對(duì)于所有的指令,設(shè)計(jì)了取指公操作,則其第一個(gè)機(jī)器周期都一樣,即進(jìn)行取指公操作,第二個(gè)機(jī)器周期則執(zhí)行對(duì)應(yīng)的指令功能。3、時(shí)序產(chǎn)生設(shè)計(jì)選擇 jzyl型計(jì)算機(jī)組成原理實(shí)驗(yàn)臺(tái)左半邊的時(shí)序電路部分,通過(guò)其中的t1、t2、t3、t4 來(lái)作為時(shí)序控制中的 t1t4,同時(shí)通過(guò)一片正沿 雙 d 觸發(fā)器74ls74 和一片反相器 74ls04 作為產(chǎn)生時(shí)序控制中所需的 m1 與 m2(其中 =m2) ;其時(shí)序部分的接線如下:t1、t2、t3、t4:接邏輯控制電路的輸入;start:接脈沖 p1

36、;stop:接微指令設(shè)計(jì)中的第一位 c0;clk:接某一頻率控點(diǎn);sel:接地,持續(xù)產(chǎn)生 t1、t2、t3、t4;m1、m2:接邏輯控制電路的輸入。如圖 4.26 所示clkt47404qm1m274ls74d 觸發(fā)器clrd圖 4.26 雙周期實(shí)現(xiàn)4、微指令流程設(shè)計(jì) :取指公操作:處于 m1 內(nèi)(其中表內(nèi) l 為低,h 為高) ;如表 4.27t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1ar 清零r_395=lt2t2pcmms1=lt3t3rd;ldir;pc+1pc; =h;ir_g=h;pc_cp=() ;t4t4iraars2=l,ar_(

37、)表 4.27 取指公操作設(shè)計(jì)流程 :load 指令(m1 同取指公操作,只列出 m2 的設(shè)計(jì)):如表 4.28t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1irbmms2=s1=ht2t2rd;busbus;ldac; =h;up_244=l;ac_g=h;t3t3空空t4t4空空表 4.28 load 指令設(shè)計(jì)流程 :store 指令(m1 同取指公操作,只列出 m2 的設(shè)計(jì)):如表 4.29t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1irbmms2=s1=ht2t2空空t3t3傳操作數(shù) a;lddr2;

38、(s3,s2,s1,s0,m, )=(lllllh) ;dr2_g=h,dr2_ctrl=l;t4t4dr2out;busbus;wr;dr2_g=l,dr2_ctrl=l;down_244=l; =l;表 4.29 store 指令設(shè)計(jì)流程 :jmp 指令(m1 同取指公操作,只列出 m2 的設(shè)計(jì)):如表 4.30t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1irbpcpc_ =l(pc_cep/cet=l)t2t2空空t3t3空空t4t4空空表 4.30 jmp 指令設(shè)計(jì)流程 :add 指令(m1 同取指公操作,只列出 m2 的設(shè)計(jì)):如表 4.3

39、1注:所有雙操作數(shù)指令(sub,and,fab,not d,等)流程均同 add,區(qū)別只是(s3,s2,s1,s0,m, )序列值不同而已,此處不再贅述,類比即可。t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1irbmms2=s1=ht2t2rd;busbus;lddr1; =h;up_244=l;dr1_g=h;t3t3add;lddr2;(s3,s2,s1,s0,m, )=(hllhlh) ;dr2_g=h,dr2_ctrl=l;t4t4dr2out;ldac;dr2_g=l,dr2_ctrl=l;ac_g=h;表 4.31 add 指令設(shè)計(jì)流 :

40、not(a)指令(m1 同取指公操作,只列出 m2 的設(shè)計(jì)):如表 4.32注:所有單操作數(shù)指令(乘 2 等)流程均同該指令,區(qū)別只是(s3,s2,s1,s0,m, )序列值不同而已,此處不再贅述,類比即可。t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1空空t2t2空空t3t3not a;lddr2;(s3,s2,s1,s0,m, )=(llllhl) ;dr2_g=h,dr2_ctrl=l;t4t4dr2out;ldac;dr2_g=l,dr2_ctrl=l;ac_g=h;表 4.32 not(a)指令設(shè)計(jì)流 :end 指令(m1 同取指公操作,只列

41、出 m2 的設(shè)計(jì)):如表 4.33t t 節(jié)拍節(jié)拍功能或所需數(shù)據(jù)流向功能或所需數(shù)據(jù)流向所需控制信號(hào)值所需控制信號(hào)值t1t1stopc0(stop)=1t2t2空空t3t3空空t4t4空空表 4.33 end 指令設(shè)計(jì)流5、邏輯表達(dá)式 因?yàn)楹芏喾?hào)無(wú)法直接打出(如作為非的上劃線等),在這里直接用紙質(zhì)上的截圖來(lái)作為參考:4.3.3 微程序的設(shè)計(jì) :微指令格式:如表 4.34微指令共設(shè)計(jì)了 16 位,并且全部投入使用,共有 16 位微指令控制信號(hào),微地址為 4 位,可以存放 16 位微指令,滿足使用需求,具體設(shè)計(jì)如下:序列c15c14c13c12c11c10c9c8c7c6c5c4c3c2c1c0功

42、能stopload161_置數(shù)dr2_contdr2_gac_gdr1_gdown_244up_244s3s2s1s0mcn6116-we有效值001100011xxxxxx0表 4.34 微指令格式設(shè)計(jì) :控制存儲(chǔ)器內(nèi)容:如表 4.35指令存入主存和控存中,如下所示指令地址c15stopc14loadc13161_置數(shù)c12dr2_contc11dr2_gc10ac_gc9dr1_gc8down_244c7up_244c6s3c5s2c4s1c3s0c2mc1cnc06116_we取址00000 011000110000010load00010111010100000010store0010

43、0010100010000011jmp00110001000110000010add01000010111101001010sub01010010111100110000and01100010111101011110或01110010111101110110notd10000010111100101110not10010010110110000110異或10100010111100110110乘 210110010111111100010end11001011000100000010表 4.35 存儲(chǔ)的指令表4.3.4 測(cè)試程序1、檢測(cè)邏輯運(yùn)算(1+2-2)&3load 1 0000 0001

44、 0101加 2 0001 0100 0110減 2 0010 0101 0111and 3 0011 0110 1000end 0100 1100 1111操作數(shù) a =1 0101 0000 0001操作數(shù) b =2 0110 0000 0010操作數(shù) c =2 0111 0000 0010操作數(shù) d =3 1000 0000 0011最后結(jié)果為 12、檢測(cè) store/jumpload 0000 0001 1100store 0001 0010 1111jump 0010 0011 0111 store 0111 0010 1110end 1000 1100 1111地址原來(lái)存的數(shù) 11

45、00 1010 1010 1110 0000 0000 1111 0000 0000指令執(zhí)行完后 地址存的新數(shù)據(jù):1100 1010 10101110 1010 10101111 1010 1010并且成功看到 pc 數(shù)值的變化,即完成了跳轉(zhuǎn)! 5、實(shí)驗(yàn)過(guò)程與調(diào)試5.1 仿真實(shí)驗(yàn)中的時(shí)序電路部分采用了波形仿真,主要用于檢驗(yàn)電路能否實(shí)現(xiàn)預(yù)期的效果,出現(xiàn)問(wèn)題也主要是根據(jù)波形仿真去發(fā)現(xiàn)錯(cuò)誤然后改正,對(duì)于時(shí)序電路的仿真圖 5.1所示:圖 5.1 時(shí)序仿真圖5.2 主要故障與調(diào)試5.2.1 故障 1雙周期運(yùn)行不正常解決:當(dāng)初在時(shí)序設(shè)計(jì)中,我們決定采用的是雙周期來(lái)實(shí)現(xiàn)指令,并且在波形仿真時(shí)得到了完全正確的

46、結(jié)果,但是在下載后具體連線檢驗(yàn)時(shí),發(fā)現(xiàn)了問(wèn)題,雙周期的運(yùn)行并不對(duì),m1 周期比 m2 周期長(zhǎng)很多,準(zhǔn)確是 m2 很短,然后我們仔細(xì)對(duì)比后,發(fā)現(xiàn)是 m2 沒(méi)有實(shí)現(xiàn)完整的 4 個(gè)節(jié)拍,經(jīng)過(guò)一系列排錯(cuò),發(fā)現(xiàn)是時(shí)序電路的信號(hào)有問(wèn)題,t0 節(jié)拍并不靈敏,單獨(dú)用燈檢測(cè)是發(fā)現(xiàn) t0 節(jié)拍的燈并不是藍(lán)紅交錯(cuò)的閃爍,而是藍(lán)一下,然后暗了,后來(lái)?yè)Q了一個(gè)節(jié)拍,發(fā)現(xiàn)雙周期待運(yùn)行正常了!5.2.2 故障 2 ac 累加器顯示燈有信號(hào)沖突當(dāng)我們連接完整個(gè)運(yùn)算器部分,然后檢測(cè)電路的正確性時(shí),發(fā)現(xiàn)了 ac 的接出燈的紅燈很暗,而藍(lán)燈很正常,因此認(rèn)為產(chǎn)生了信號(hào)沖突,于是開(kāi)始對(duì)整個(gè)電路進(jìn)行檢查,發(fā)現(xiàn)電路連接正常,并且 373 的

47、使能端和 244 的高阻端控制也很正確,但是信號(hào)沖突一直存在著,即使是換過(guò)一些數(shù)據(jù)結(jié)果也會(huì)出現(xiàn)相應(yīng)的情況,最后檢測(cè)芯片時(shí),發(fā)現(xiàn)時(shí) 181 芯片的輸入端有信號(hào)輸出,于原來(lái)的輸入產(chǎn)生了沖突,最后問(wèn)老師才知道 181 芯片在通電時(shí)偶爾會(huì)出現(xiàn)這樣的情況,換了 181 芯片后問(wèn)題終于得到了解決!5.2.3 故障 3 load 指令導(dǎo)致其他指令運(yùn)行不正確我們?cè)O(shè)計(jì)指令時(shí),因?yàn)榈玫降目刂泣c(diǎn)數(shù)目超過(guò)了 16,所以有一些控制點(diǎn)選擇了接到節(jié)拍信號(hào)上,所以隨著節(jié)拍信號(hào),一些開(kāi)關(guān)也是隨之每條指令都會(huì)打開(kāi),我們的 load 指令的微程序控制便是因?yàn)檫B接的節(jié)拍,導(dǎo)致了一些運(yùn)算指令因?yàn)?373 的使能和 244 的高阻打開(kāi)的

48、不是時(shí)候而出現(xiàn)了一系列問(wèn)題,最后重新合并了一些控制結(jié)點(diǎn),將 load 單獨(dú)做了一個(gè)控制位才使問(wèn)題解決!5.2.4 故障 4quartus 無(wú)法編譯原理圖在設(shè)計(jì)完原理圖,用 quartus 編譯時(shí),發(fā)現(xiàn)有錯(cuò)誤,發(fā)現(xiàn)是因?yàn)橐呀?jīng)過(guò)了使用期限,因此無(wú)法正常使用,最后發(fā)現(xiàn)了兩個(gè)辦法解決問(wèn)題:第一、使用教程中的破解方法生成一個(gè) license。dat 文件進(jìn)行破解,具體操作見(jiàn)教程;第二種方法較簡(jiǎn)單,就是直接修改計(jì)算機(jī)的時(shí)間,向前調(diào)一段很長(zhǎng)的時(shí)間,這樣軟件可以正常進(jìn)行編譯了。5.2.5 故障 5fpga 下載出問(wèn)題在設(shè)計(jì)完時(shí)序電路后用 fpga 進(jìn)行下載,但是出現(xiàn)了一些問(wèn)題,修改過(guò)原理圖后還是無(wú)法將其下載進(jìn)

49、去,實(shí)際運(yùn)行的還是原來(lái)的原理圖,這讓我們百思不得其解,老師對(duì)這個(gè)也不是很拿手,最后細(xì)心的同學(xué)提示是 quartus 中下載要修改一些文件,比如 q6.0&dsp&mega 這個(gè)文件,就要將文件中的序列號(hào)改成我們主機(jī)中 quartus 的序列號(hào),這樣才能正常下載。5.2.6 故障 6執(zhí)行 store 指令時(shí),數(shù)據(jù)無(wú)法正常寫入在依次檢查各條指令的執(zhí)行情況時(shí),發(fā)現(xiàn)有兩條指令的執(zhí)行有問(wèn)題,其中之一就是 store 指令,發(fā)現(xiàn)數(shù)據(jù)無(wú)法正常寫入,例如本來(lái)想向 0000 地址寫入數(shù)據(jù)10001001,但是在檢查時(shí)發(fā)現(xiàn) 0000 地址存的并不是 100001001,而是 11111111,而后發(fā)現(xiàn)無(wú)論往該地址

50、存什么數(shù)據(jù),結(jié)果都是 11111111 不變,于是我們覺(jué)得是數(shù)據(jù)并沒(méi)有寫入,于是檢查了指令的執(zhí)行過(guò)程,最后發(fā)現(xiàn)在微程序的控制上有問(wèn)題,當(dāng)6116 在寫時(shí),373 置成了高祖狀態(tài),因此才會(huì)寫入的是 11111111,最后修改了微程序的執(zhí)行節(jié)拍,將其分開(kāi),然后發(fā)現(xiàn)結(jié)果正確! 5.2.6 故障 7執(zhí)行 jump 指令時(shí),并沒(méi)有跳轉(zhuǎn)我們?cè)O(shè)計(jì)的指令中有兩條出了問(wèn)題,另外一條便是 jump 指令了,無(wú)法跳轉(zhuǎn),從仿真圖上來(lái)看,應(yīng)該是可以正常跳轉(zhuǎn)的,但是結(jié)果就是不對(duì),這讓我和搭檔非常郁悶,單獨(dú)將芯片接出來(lái)檢測(cè),發(fā)現(xiàn)手動(dòng)控制可以實(shí)現(xiàn)直數(shù)功能,即芯片本身并沒(méi)有問(wèn)題,但自動(dòng)執(zhí)行的時(shí)候會(huì)出錯(cuò),仔細(xì)研究了 161 芯片

51、后,我們發(fā)現(xiàn)關(guān)于跳轉(zhuǎn)的實(shí)現(xiàn)是要兩個(gè)信號(hào)控制一個(gè)是 cp 脈沖,一個(gè)控制開(kāi)關(guān),于是我們討論是不是上升沿給的不是時(shí)候,于是將 cp 信號(hào)由本來(lái)的一個(gè)節(jié)拍延長(zhǎng)到兩個(gè)節(jié)拍,讓其可以完全覆蓋到整個(gè)控制開(kāi)關(guān)的變化,最后結(jié)果正確了5.3 功能測(cè)試在本次課程設(shè)計(jì)中,我們能夠根據(jù)具體的運(yùn)算式寫出系統(tǒng)運(yùn)行的程序,一般要求所設(shè)計(jì)的機(jī)器指令中包含了運(yùn)算式的所有運(yùn)算要求,倘若沒(méi)有包含的話(如異或運(yùn)算等等) ,需要重新寫控存 cm,操作比較麻煩,但是其實(shí)現(xiàn)思路非常簡(jiǎn)單,只需通過(guò)兩個(gè) 74ls244 直接操作對(duì) 2816 進(jìn)行寫入即可,寫完再調(diào)整 2816 為讀狀態(tài),便可實(shí)現(xiàn)后續(xù)功能。經(jīng)過(guò)測(cè)試,完全能夠?qū)崿F(xiàn)此項(xiàng)操作。下面就

52、以本次課程設(shè)計(jì)中檢查時(shí)老師給我出的測(cè)試題目為例,分析程序設(shè)計(jì)的過(guò)程和方法。其余程序均可按照下述方法和步驟進(jìn)行設(shè)計(jì),不在贅述。題目:(8+7 非)加 8 + 9 異或 6 乘 2 與 6 減 7程序流程為:如表 5.2 所示地址順序所執(zhí)行的指令0開(kāi)始1load 82fab 73add 84或 95異或 66乘 27與 68減 79end表 5.2內(nèi)存內(nèi)容為:如表 5.3 所示內(nèi)存地址內(nèi)存數(shù)據(jù)解釋00000000 0000開(kāi)始00010001 1010load 800101101 1011fab 700110100 1010add 801000111 1100或 901011010 1101異或

53、601101011 1110乘 201110110 1101與 610000101 1011減 710011100 1110end10100000 1000操作數(shù) 810110000 0111操作數(shù) 711000000 1001操作數(shù) 911010000 0110 操作數(shù) 611100000 0010 操作數(shù) 21111表 5.3程序運(yùn)行結(jié)果運(yùn)行完成后,最后在 ac 里面的結(jié)果為 :1111 11115.4 實(shí)驗(yàn)流程圖1、2 月 27 周一:熟悉實(shí)驗(yàn)要求,并閱讀相關(guān)資料開(kāi)始準(zhǔn)備。2、2 月 28 周二:設(shè)計(jì)實(shí)驗(yàn)圖,并完成運(yùn)算器和存儲(chǔ)器部分的設(shè)計(jì)3、2 月 29 周三:開(kāi)始連線,完成了運(yùn)算器部分

54、的連線,并檢驗(yàn)正確4、3 月 1 周四開(kāi)始設(shè)計(jì)控存和微指令5、3 月 2 周五對(duì)微指令進(jìn)行修改6、3 月 34 周六周日開(kāi)始設(shè)計(jì)時(shí)序電路部分7、3 月 5 周一通過(guò)波形仿真對(duì)時(shí)序檢驗(yàn),并進(jìn)行修改 8、3 月 67 周二,周三將電路全部連接,進(jìn)行排錯(cuò)和優(yōu)化 9、3 月 8 日 周四老師電路檢查6、設(shè)計(jì)總結(jié)與心得6.1 課設(shè)總結(jié)基于對(duì)象的存儲(chǔ)是為了克服當(dāng)前基于塊的存儲(chǔ)存在的諸多難題,在存儲(chǔ)接口和結(jié)構(gòu)層次的重要發(fā)展。可以根據(jù)應(yīng)用負(fù)載選擇優(yōu)化的存儲(chǔ)策略。作了如下幾點(diǎn)工作:1)完成方案總結(jié):本次組成原理課程設(shè)計(jì)難度還是相對(duì)較大的,在老師的指導(dǎo)和幫助以及我們自己的努力下,最終成功的設(shè)計(jì)出了一臺(tái)基于微指令設(shè)

55、計(jì)和 fpga 的支持自有指令系統(tǒng)的簡(jiǎn)單計(jì)算機(jī)系統(tǒng)。我們所設(shè)計(jì)的系統(tǒng)能在基于 eda 的實(shí)驗(yàn)平臺(tái)上運(yùn)行一段基于自有指令的程序,并能夠根據(jù)設(shè)計(jì)的程序計(jì)算出正確的結(jié)果,且在 jzyl型計(jì)算機(jī)組成原理實(shí)驗(yàn)臺(tái)的 led 燈(或數(shù)碼管)上顯示出結(jié)果,此次設(shè)計(jì)的系統(tǒng)為全自動(dòng)執(zhí)行!完成了本次組成原理課程設(shè)計(jì)的基本任務(wù)與要求,雖然沒(méi)有剩余時(shí)間去進(jìn)行功能的擴(kuò)展,但至少所設(shè)計(jì)的系統(tǒng)的各項(xiàng)指標(biāo)均符合設(shè)計(jì)要求。 同時(shí),在這個(gè)過(guò)程中,我們也確實(shí)通過(guò)努力、學(xué)習(xí)與設(shè)計(jì),鍛煉了我們自身對(duì)于簡(jiǎn)單計(jì)算機(jī)系統(tǒng)的設(shè)計(jì)、系統(tǒng)的故障分析與定位以及系統(tǒng)調(diào)式的能力,更進(jìn)一步提高了我們分析和解決問(wèn)題的能力。2)功能總結(jié):在本次課程設(shè)計(jì)中,我們

56、完成的設(shè)計(jì)工作和我們?cè)O(shè)計(jì)的系統(tǒng)具有的功能如下所示: 具有準(zhǔn)確無(wú)誤的數(shù)據(jù)通路,且在其基礎(chǔ)上具有指令和微指令控制的功能; 設(shè)計(jì)了完成指定功能的各指令相對(duì)應(yīng)的微命令; 設(shè)計(jì)了時(shí)序列電路,能夠產(chǎn)生滿足指令周期和指令執(zhí)行所需要的兩級(jí)時(shí)序信號(hào); 可以手動(dòng)方式產(chǎn)生各指令執(zhí)行過(guò)程中所需要的微命令,控制指令的執(zhí)行; 設(shè)計(jì)控存,將各指令的微程序存放在 cm(用 2816 實(shí)現(xiàn))中,經(jīng)過(guò)適當(dāng)?shù)臅r(shí)序控制,通過(guò)微程序可以完成自動(dòng)控制指令的執(zhí)行功能; 對(duì)該模型機(jī)系統(tǒng)中的運(yùn)算器模塊功能和微程序邏輯控制電路部分利用quartus 6.0 軟件仿真功能進(jìn)行仿真分析和功能驗(yàn)證,且將該部分電路下載到 fpga,并與適當(dāng)?shù)耐鈬骷?包括部分芯片、輸入/輸出開(kāi)關(guān)、led 顯示等)相配合,實(shí)現(xiàn)模型機(jī)的主機(jī)系統(tǒng); 所設(shè)計(jì)的主機(jī)系統(tǒng)能支持自動(dòng)和單步運(yùn)行方式,能正確地執(zhí)行存放在主存中程序的功能,對(duì)主要的數(shù)據(jù)流和控制流通過(guò) led 適時(shí)顯示結(jié)果; 所設(shè)計(jì)的模型機(jī)支持加、減運(yùn)算等基本的算術(shù)運(yùn)算指令,支持與、或、非等邏輯運(yùn)算類指令,支持存儲(chǔ)器寫的回存指令,支持寄存器間數(shù)據(jù)傳送的load 指令,支持跳轉(zhuǎn)指令等幾類指令; 支持直接尋址、隱含尋址等幾種基本的尋址方式; 能支持 12 條以上的指令; 能運(yùn)行由自己設(shè)計(jì)的 cpu 所支持的指令系統(tǒng)構(gòu)成的一段程序,程序執(zhí)行功能正確且能夠穩(wěn)定輸出結(jié)果; 所設(shè)計(jì)的主機(jī)系統(tǒng)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論