組成原理-邏輯電路控制器CPU的設(shè)計(jì)_第1頁(yè)
組成原理-邏輯電路控制器CPU的設(shè)計(jì)_第2頁(yè)
組成原理-邏輯電路控制器CPU的設(shè)計(jì)_第3頁(yè)
組成原理-邏輯電路控制器CPU的設(shè)計(jì)_第4頁(yè)
組成原理-邏輯電路控制器CPU的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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、 摘 要本次計(jì)算機(jī)組成原理課程設(shè)計(jì)課題是邏輯電路控制器CPU的設(shè)計(jì)。利用maxplus來(lái)實(shí)現(xiàn)計(jì)算機(jī)組成原理課程及實(shí)驗(yàn)中所學(xué)到的實(shí)驗(yàn)原理和編程思想,硬件設(shè)備自擬,設(shè)計(jì)控制器CPU的邏輯電路圖,用邏輯電路圖實(shí)現(xiàn)了一系列的指令功能,最終達(dá)到將理論與實(shí)踐相聯(lián)系。本次設(shè)計(jì)在maxplus中完成存數(shù)據(jù)、取數(shù)據(jù)、加指令的CPU程序,用電路圖實(shí)現(xiàn)了相關(guān)功能,設(shè)計(jì)maxplus的指令系統(tǒng)(包括存數(shù)據(jù)、取數(shù)據(jù)、加指令的CPU程序),形成具有一定功能的完整的電路圖。關(guān)鍵詞:maxplus、全加器、寄存器、邏輯電路圖目 錄1.實(shí)驗(yàn)軟件maxplus11.1 maxplus簡(jiǎn)介11.2 maxplus的使用說(shuō)明12.設(shè)

2、計(jì)目標(biāo)43.系統(tǒng)設(shè)計(jì)43.1 四位二進(jìn)制加法器43.2 寄存器53.3計(jì)數(shù)器63.4 微指令集電路圖設(shè)計(jì)73.5 CPU程序設(shè)計(jì)流程圖84.程序?qū)崿F(xiàn)84.1 仿真電路圖84.2 仿真結(jié)果95.總結(jié)與體會(huì)11參考文獻(xiàn)111.實(shí)驗(yàn)軟件maxplus1.1 maxplus簡(jiǎn)介Altera公司的MAX+PLUS的全稱是Multiply Array matrix and Programmable Logic User System。MAX+PLUS支持所有的CPLD和25萬(wàn)門以內(nèi)的FLEX和ACEX系列FPGA。它集設(shè)計(jì)輸入、編譯、仿真、綜合、編程(配置)于一體,帶有豐富的設(shè)計(jì)庫(kù),并有詳細(xì)的聯(lián)機(jī)幫助功能

3、,且許多操作與Windows下的操作方法完全一樣,是一個(gè)集成化的、易學(xué)易用的PLD開(kāi)發(fā)平臺(tái)。用MAX+PLUS進(jìn)行設(shè)計(jì)的一般過(guò)程,設(shè)計(jì)輸入、編譯、功能仿真、設(shè)計(jì)實(shí)現(xiàn)、時(shí)序仿真、下載、硬件檢查,在對(duì)上述過(guò)程中有錯(cuò)誤的進(jìn)行設(shè)計(jì)修改。1.2 maxplus的使用說(shuō)明邏輯設(shè)計(jì)的輸入:指定項(xiàng)目名稱,在“File”菜單中選擇ProjectName打開(kāi)“Project Name”對(duì)話框;選擇適當(dāng)?shù)尿?qū)動(dòng)器和目錄,然后鍵入項(xiàng)目名;點(diǎn)擊“OK”。建立原理圖設(shè)計(jì)文件,第一步打開(kāi)原理圖編輯器,在管理器窗口的“File”菜單中選擇“New”;選擇“Graphic Editor File”和“.gdf”項(xiàng);點(diǎn)擊“OK”。

4、第二步輸入元件和模塊,原理圖編輯窗口空白處雙擊鼠標(biāo)左鍵或者在“Symbol”菜單中選擇“Enter Symbol”,便打開(kāi)了“Enter Symbol”對(duì)話框;選擇適當(dāng)?shù)膸?kù)及所需的器件(模塊);點(diǎn)擊“確定”。第三步放置輸入、輸出引腳,在“Symbol Name”框中鍵入input或output。第四步連線,將電路圖中的兩個(gè)端口相連,將鼠標(biāo)指向一個(gè)端口,鼠標(biāo)箭頭會(huì)自動(dòng)變成“+”;一直按住鼠標(biāo)左鍵拖至另一個(gè)端口;放開(kāi)左鍵,則會(huì)在兩個(gè)端口間產(chǎn)生一根連線。輸入/輸出引腳和內(nèi)部連線命名,輸入/輸出引腳命名的方法是在引腳的“PIN-NAME”位置雙擊鼠標(biāo)左鍵,然后鍵入信號(hào)名。內(nèi)部連線的命名方法是:選中連線

5、,然后鍵入信號(hào)名。第六步保存文件,在“File”菜單中選擇“Save As”(若該文件已有,則選“Save”)或在工具欄點(diǎn)擊按鈕,如是第一次保存,需輸入文件名。建立一個(gè)默認(rèn)的符號(hào)文件,在層次化設(shè)計(jì)中,如果當(dāng)前編輯的文件不是頂層文件,則往往需要為其產(chǎn)生一個(gè)符號(hào),將其打包成一個(gè)模塊,以便在上層電路設(shè)計(jì)時(shí)加以引用。建立一個(gè)符號(hào)文件的方法是,在“File”菜單中選擇“Create Default Symbol”項(xiàng)即可。編譯網(wǎng)表提?。篗AX+PLUS的編譯器包括兩大功能:編譯和設(shè)計(jì)實(shí)現(xiàn)。編譯的作用是檢查設(shè)計(jì)輸入中有無(wú)描述性錯(cuò)誤,若無(wú)描述性錯(cuò)誤,則提取出電路網(wǎng)表(Netlist);若有描述性錯(cuò)誤,則給出出

6、錯(cuò)信息(包括出錯(cuò)位置、錯(cuò)誤性質(zhì)),并有聯(lián)機(jī)幫助功能幫助用戶改正錯(cuò)誤。運(yùn)行編譯器的方法是,在“MAX+PLUS”菜單中選“Compiler”選項(xiàng)或直接在工具欄中點(diǎn)擊按鈕。啟動(dòng)編譯器后首先進(jìn)行“編譯與電路網(wǎng)表提取”工作。做完這一工作后編譯器便停下來(lái)等待用戶的指示。如果編譯中未發(fā)現(xiàn)錯(cuò)誤,則可以接著做“設(shè)計(jì)實(shí)現(xiàn)”的工作。設(shè)計(jì)實(shí)現(xiàn)包括數(shù)據(jù)庫(kù)生成器(Database Builder)、邏輯綜合器(Logic Synthesizer)、邏輯劃分器(Partitioner)、設(shè)配器(Fitter)、時(shí)序仿真網(wǎng)表文件提取器(Timing SNF Extractor)和編程數(shù)據(jù)匯編器(Assembler)等步驟。

7、選項(xiàng)設(shè)置,編譯器有很多選項(xiàng)設(shè)置,但并不是每一項(xiàng)都需要用戶去設(shè)置,有些設(shè)置編譯器可自動(dòng)選擇(如器件選擇、引腳分配等),而其他的設(shè)置往往有默認(rèn)值。在“Assign”菜單中選“Device”項(xiàng),然后選擇器件的系列和型號(hào),型號(hào)可設(shè)為“Auto”,編譯器自動(dòng)選擇;器件引腳分配,在原理圖編輯窗口中,選中某個(gè)輸入或輸出信號(hào),按鼠標(biāo)右鍵,在彈出菜單中選“Pin/Location/Chip”,然后選引腳號(hào)。運(yùn)行“設(shè)計(jì)實(shí)現(xiàn)”,按上述方法做好必要的設(shè)置后,在編譯器窗口中按“Start”就可以連續(xù)執(zhí)行后續(xù)的設(shè)計(jì)步驟,產(chǎn)生的數(shù)據(jù)文件的擴(kuò)展名會(huì)出現(xiàn)在各個(gè)執(zhí)行框的下方。仿真驗(yàn)證:仿真分功能仿真和時(shí)序仿真兩種,兩種仿真的做法

8、是一樣的,由編譯時(shí)生成的仿真網(wǎng)表文件類型決定仿真的類型。仿真過(guò)程分三步,首先要建立波形文件,確定需要觀察的信號(hào),設(shè)計(jì)輸入波形,設(shè)定一些時(shí)間和顯示參數(shù)。其次才是運(yùn)行仿真程序。最后是根據(jù)仿真結(jié)果(波形)分析電路功能正確與否。建立波形文件,第一步打開(kāi)原理圖編輯器,在管理器窗口的“File”菜單中選擇“New”或直接在工具欄上點(diǎn)擊按鈕,打開(kāi)“New”列表框;選擇“Waveform Editor File”和“.scf”項(xiàng),按“OK”。第二步設(shè)定時(shí)間參數(shù),從“File”菜單中選擇“End Time”項(xiàng),鍵入仿真結(jié)束時(shí)間,按“OK”;在“Options”菜單中選擇“Grid Time”項(xiàng),鍵入時(shí)間顯示網(wǎng)格

9、間距,按“OK”。第三步確定需觀察的信號(hào),在“Node”菜單中或在波形圖編輯窗口空白處單擊鼠標(biāo)右鍵選擇“Enter Nodes From SNF”(SNF指仿真網(wǎng)表文件)項(xiàng),打開(kāi)“Enter Nodes From SNF”對(duì)話框;在“Type”框中選擇信號(hào)類別,最常用的是“Input”和“Output”(輸入、輸出);點(diǎn)“List”按鈕,將所選類別的所有信號(hào)均列于“Available Nodes & Groups”框;從“Available Nodes & Groups”框中選擇信號(hào),然后按“=>”箭頭,使所選信號(hào)名進(jìn)入“Selected Nodes & Grou

10、ps”框;選擇“OK”,所選信號(hào)將出現(xiàn)在波形圖編輯窗口中;根據(jù)需要編輯輸入波形,編輯窗口左側(cè)一列按鈕非常有用;在“File”菜單中選擇“Save As”或在工具欄點(diǎn)擊按鈕,如是第一次保存,需輸入文件名。運(yùn)行仿真程序,在“MAX+PLUS”菜單中選“Simulator”選項(xiàng)或直接在工具欄中點(diǎn)擊按鈕,出現(xiàn)仿真對(duì)話框;按“Start”開(kāi)始仿真;仿真結(jié)果后,按“Open SCF”,在波形編輯窗口中將顯示出仿真結(jié)果(波形)。仿真結(jié)果分析。底層圖編輯:通過(guò)底層圖編輯器可以觀察和控制底層(物理)設(shè)計(jì)的細(xì)節(jié),細(xì)節(jié)包括兩個(gè)內(nèi)容:引腳分配和邏輯單元分配,打開(kāi)底層圖編輯器的方法是,在“MAX+PLUS”菜單中選“F

11、loorplan Editor”選項(xiàng)或直接在工具欄中點(diǎn)擊按鈕。器件外觀視圖,在底層圖編輯界面下,從“Layout”菜單中選擇“Device View”就可以顯示出器件的所有引腳及其功能。如果在“Lauout”菜單中選擇“Last Compilation Floorplan”或點(diǎn)擊底層圖編輯窗口左側(cè)的相應(yīng)按鈕,則顯示最新一次經(jīng)過(guò)編譯的引腳分配情況。已分配過(guò)的引腳呈彩色,未分配過(guò)的引腳呈白色。如果在“Layout”菜單中選擇“Current Assignment Floorplan”或點(diǎn)擊底層圖編輯窗口左側(cè)的相應(yīng)按鈕,就可以重新進(jìn)行引腳分配。但是,重新分配的結(jié)果必須經(jīng)過(guò)編譯才能生效。器件內(nèi)部視圖,

12、在底層圖編輯界面下,從“Layout”菜單中選擇“LAB View”就可以顯示出器件的所有邏輯單元和引腳。如果在“Layout”菜單中選擇“Last Compilation Floorplan”或點(diǎn)擊底層圖編輯窗口左側(cè)的相應(yīng)按鈕,則顯示最新一次經(jīng)過(guò)編譯的邏輯單元和引腳分配情況。已分配過(guò)的單元及引腳呈彩色,未分配過(guò)的單元及引腳呈白色。如果在“Layout”菜單中選擇“Current Assignments Floorplan”或點(diǎn)擊底層圖編輯窗口左側(cè)的相應(yīng)按鈕,就可以對(duì)邏輯單元和引腳進(jìn)行重新分配。但是,重新分配的結(jié)果必須經(jīng)過(guò)編譯才能生效。下載:經(jīng)過(guò)編譯和設(shè)計(jì)實(shí)現(xiàn)后生成3個(gè)不同用途的編程文件:*.

13、POF、*.SOF、*.JED。*.POF文件用于Classic與MAX系列CPLD的編程。*.SOF文件用于對(duì)FLEX系列FPGA進(jìn)行直接配置。打開(kāi)編程窗口,在“MAX+PLUS”菜單中選“Programmer”選項(xiàng)或直接在工具欄中點(diǎn)擊按鈕。硬件連接,在編程界面下,從“Options”菜單中選擇“Hardware Setup”;在“Hardware Setup”對(duì)話框中選擇“ByteBlaster”或“BitBlaster”;用下載電纜將PC機(jī)并口(若選“ByteBlaster”)或串口(若選“BitBlaster”)與電路板上的PLD連接起來(lái)(通過(guò)接插件)。請(qǐng)注意:這一步工作最好在關(guān)斷PC

14、機(jī)和電路板電源的情況下進(jìn)行,可以在開(kāi)機(jī)前預(yù)先接好。選擇編程文件,缺省情況下,編程文件已根據(jù)當(dāng)前項(xiàng)目名選好,并顯示在編程窗口的右上角。如果發(fā)現(xiàn)文件名不對(duì),可在“File”菜單中點(diǎn)“Select Programming File”項(xiàng)進(jìn)行選擇。下載,在編程窗口中按“Program”(對(duì)CPLD或配置用EPROM,此時(shí)文件為*.POF)或“Configure”(對(duì)FPGA,此時(shí)文件為*.SOF)。2.設(shè)計(jì)目標(biāo) 本課程設(shè)計(jì)要求實(shí)現(xiàn)機(jī)器指令要求實(shí)現(xiàn)指令:LD(取數(shù)),ST(存數(shù)),ADD(算術(shù)加法);利用maxplus對(duì)于設(shè)計(jì)的微指令集用電路圖進(jìn)行實(shí)現(xiàn),并分析結(jié)果是否正確,3.系統(tǒng)設(shè)計(jì)3.1 四位二進(jìn)制加

15、法器全加器是用門電路實(shí)現(xiàn)兩個(gè)二進(jìn)制數(shù)相加并求出和的組成和電路的數(shù)字電路。除本位兩個(gè)數(shù)相加外,還要加上從低位來(lái)的進(jìn)位數(shù)。被加數(shù)Ai加數(shù)Bi從低位向本位進(jìn)位Ci-1作為電路的輸入,全加和Si與向高位的進(jìn)位Ci作為電路的輸出。能實(shí)現(xiàn)全加運(yùn)算功能的電路稱為全加電路。全加器的邏輯功能表如表1所列。本次課程設(shè)計(jì)中的四位二進(jìn)制加法器是由四個(gè)全加器組成,四位加法器邏輯電路圖如圖1所示。信號(hào)輸入端信號(hào)輸出端AiBiCiSiC00000000110010101001001101101011100111111表1 全加器的邏輯功能表 圖1 74183四位全加器 3.2 寄存器寄存器是CPU的組成部分,寄存器是有限存

16、儲(chǔ)容量的高速存儲(chǔ)部件,它們可用來(lái)暫存指令、數(shù)據(jù)和地址。在CPU的控制部件中,包含的寄存器有指令寄存器(IR)和程序計(jì)數(shù)器(PC)。在CPU的算術(shù)及邏輯部件中,包含的寄存器有累加器(ACC)。本次設(shè)計(jì)采用的74373M寄存器邏輯電路圖如圖2所示。圖2 74373M寄存器3.3計(jì)數(shù)器計(jì)數(shù)是一種最簡(jiǎn)單基本的運(yùn)算,計(jì)數(shù)器就是實(shí)現(xiàn)這種運(yùn)算的邏輯電路,計(jì)數(shù)器在數(shù)字系統(tǒng)中主要是對(duì)脈沖個(gè)數(shù)進(jìn)行計(jì)數(shù),以實(shí)現(xiàn)測(cè)量、計(jì)數(shù)、和控制的功能,同時(shí)兼有分頻功能,計(jì)數(shù)器是由基本的計(jì)數(shù)單元和一些控制門所組成,計(jì)數(shù)單元?jiǎng)t由一系列具有存儲(chǔ)信息功能的各類觸發(fā)器構(gòu)成,這些觸發(fā)器有RS觸發(fā)器、T觸發(fā)器、D觸發(fā)器及JK觸發(fā)器等。計(jì)數(shù)器在數(shù)

17、字系統(tǒng)中應(yīng)用廣泛,如在電子計(jì)算機(jī)的控制器中對(duì)指令地址進(jìn)行計(jì)數(shù),以便順序取出下一條指令,在運(yùn)算器中作乘法、除法運(yùn)算時(shí)記下加法、減法次數(shù),又如在數(shù)字儀器中對(duì)脈沖的計(jì)數(shù)等等。本次設(shè)計(jì)將兩個(gè)計(jì)數(shù)器組合成一個(gè)控制器,采用兩個(gè)D觸發(fā)器構(gòu)成一個(gè)二位二進(jìn)制計(jì)數(shù)器,寄存器邏輯電路圖連接如下圖3 所示,k為時(shí)鐘輸入端,Q1、Q2為兩位的二進(jìn)制輸出。圖3 7474計(jì)數(shù)器3.4 微指令集電路圖設(shè)計(jì)微指令電路圖由一個(gè)74183四位全加器,12個(gè)74373M寄存器,一個(gè)7474計(jì)數(shù)器,4個(gè)控制加減法的異或門組成。b0、b1、b2、b3為四位被減數(shù)由低到高的四個(gè)輸入端,a0、a1、a2、a3為減數(shù)的四個(gè)輸入端,s0、s1、

18、s2、s3為四個(gè)輸出端。m為加減法控制端,分別與減數(shù)的四個(gè)輸入端進(jìn)行異或操作并分別輸入到四個(gè)全加器的輸入端A,k為計(jì)數(shù)器的時(shí)鐘輸入端。 四位被減數(shù)輸入端的四個(gè)寄存器的存數(shù)據(jù)控制端G端連接到計(jì)數(shù)器的Q1輸出端,四位減數(shù)輸入端的四個(gè)寄存器的存數(shù)據(jù)控制端G和四位差的輸出端的四個(gè)寄存器的村數(shù)據(jù)控制端G串聯(lián)連接到計(jì)數(shù)器的Q2端口。寄存器的OEN端均接地。實(shí)現(xiàn)控制器CPU邏輯電路圖如圖4 所示。圖4 指令集電路圖3.5 CPU程序設(shè)計(jì)流程圖開(kāi)始設(shè)計(jì)程序指令集設(shè)計(jì)取數(shù),存數(shù),算數(shù)加法畫(huà)出電路圖Maxplus進(jìn)行仿真結(jié)束編譯建立工程圖5 CPU程序設(shè)計(jì)流程圖 4.程序?qū)崿F(xiàn)4.1 仿真電路圖 按照系統(tǒng)分析中得到

19、的指令集,在maxplus實(shí)驗(yàn)軟件中新建指令系統(tǒng),生成.gdf文件。在maxplus實(shí)驗(yàn)軟件中新建.gdf文件,畫(huà)出電路圖,進(jìn)行“Compiler”編譯,進(jìn)行仿真操作如圖6所示。 圖6 對(duì)電路圖進(jìn)行仿真4.2 仿真結(jié)果編譯過(guò)后進(jìn)行仿真Simulator,設(shè)置m為持續(xù)高電平0,k端為時(shí)鐘信號(hào)clock。B、A端設(shè)置了三組四位二進(jìn)制數(shù)據(jù)。(1) S=B-A=0001 + 0010=0011運(yùn)算仿真結(jié)果如下圖7所示,觀察仿真結(jié)果S端s3s2s1s0為結(jié)果的反碼0010,在加0001得到正確結(jié)果0011。圖7 仿真結(jié)果(1)(2)S=B+A=0001+0011 =0100運(yùn)算仿真結(jié)果如下圖8所示,觀察

20、仿真結(jié)果S端s3s2s1s0為結(jié)果的反碼0011,在加0001得到正確結(jié)果0100。圖8 仿真結(jié)果(2)(3)S=B+A =0111+0110= 1101 運(yùn)算仿真結(jié)果如下圖8所示,觀察仿真結(jié)果S端s3s2s1s0為結(jié)果的反碼1100,在加0001得到正確結(jié)果1101。 圖7 仿真之后結(jié)果通過(guò)maxplus的“Simulator”進(jìn)行仿真微程序指令系統(tǒng),執(zhí)行程序電路圖,驗(yàn)證設(shè)計(jì)的指令集是否存在不當(dāng)之處。5.總結(jié)與體會(huì)本次課程設(shè)計(jì)要求我們?cè)O(shè)計(jì)邏輯電路的控制器CPU,在maxplus中設(shè)計(jì)電路圖(包括算術(shù)加,存數(shù)據(jù),取數(shù)據(jù)指令),設(shè)計(jì)的目的是讓我們?cè)黾幼约旱膭?dòng)手能力,真正的達(dá)到理論與實(shí)際的結(jié)合。由于

溫馨提示

  • 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)論