簡單CPU系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)_第1頁
簡單CPU系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)_第2頁
簡單CPU系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)_第3頁
簡單CPU系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)_第4頁
簡單CPU系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩25頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

數(shù)字電路合實(shí)驗(yàn)報(bào)告簡單統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)1設(shè)計(jì)的于

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告2系統(tǒng)設(shè)計(jì)思路易CPU系統(tǒng)主要由指令存儲(chǔ)可以通過撥碼和按鍵讀及讀/寫存總體框圖系統(tǒng)總體框圖單CPU系在quartusII的CPU的ACC于ALU部件

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告系統(tǒng)狀態(tài)轉(zhuǎn)移圖

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告錄入指令開始執(zhí)行指令指令執(zhí)行結(jié)束,等待再次執(zhí)行或等待錄入指有S1為CPU即錄入的指令S2:在這一狀態(tài)CPU執(zhí)行完求解最大公約數(shù)的程序框圖設(shè)a,b

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告開始a<=a-b成立成立

判斷是成立?不成立判斷:是成立?不成立a、交換

為所最大公約數(shù)。程序結(jié)束

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告分塊設(shè)計(jì)2.3.1

DIV(

分頻)DIV將電路板所提供的時(shí)鐘分頻,產(chǎn)生C工作所需要的鐘以及數(shù)碼管掃描所需要的時(shí)鐘。2.3.2

MCU(

控制)MCU用來產(chǎn)生系統(tǒng)內(nèi)部所有寄存器、運(yùn)算單元所需的控制信號(hào),以及執(zhí)行各條指令所需要的微操作。它是整個(gè)系統(tǒng)設(shè)計(jì)的核心所在。2.3.3

ALU

算術(shù)邏輯運(yùn)算單ALU完成數(shù)據(jù)的算術(shù)和邏輯運(yùn)算。ALU5輸入端和2個(gè)輸出端,其中一個(gè)操作數(shù)固定來自累加器acc具體編程時(shí)可用變量或信號(hào)表示另一個(gè)操作數(shù)來自端口mbr_in通過數(shù)據(jù)總線接到寄存器MBR加運(yùn)算的操作數(shù)在ALU中進(jìn)行規(guī)定的操作運(yùn)算,運(yùn)算結(jié)束后方面將結(jié)果送至累加器同時(shí)將操作結(jié)果的特征狀態(tài)送標(biāo)志寄存器。

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告2.3.4

MAR(

地址寄存)MAR存放著要被讀取或?qū)懭氲膬?nèi)存單元地址其中讀操作時(shí)從內(nèi)存讀。而寫操作時(shí),CPU把數(shù)據(jù)寫入內(nèi)存。2.3.5

MBR(

緩沖寄存)MBR放了將要存儲(chǔ)到內(nèi)存的數(shù)據(jù)或者從內(nèi)存中讀取的最新數(shù)據(jù)MBR接到系統(tǒng)總線中的地址總線。2.3.6

RAM(隨機(jī)存取存儲(chǔ)

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告RAM有著相對獨(dú)立的輸入輸出管腳,在本系統(tǒng)設(shè)計(jì)中它作為內(nèi)存使用。它不是CPU內(nèi)部的寄存器不屬于PU一部分。但要測試所設(shè)計(jì)C的性能,需要把R加進(jìn)系統(tǒng)設(shè)計(jì)中。2.3.7

(數(shù)碼管顯示

)SMG負(fù)責(zé)將運(yùn)算結(jié)果轉(zhuǎn)化為碼形式,然后用數(shù)碼館顯示。3

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告于CPU執(zhí)rst

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告44.1

(

分頻器)libraryieee;ieee.std_logic_unsigned.all;entityDIVport(clk_in:instd_logic;clk_out1:outstd_logic;clk_out2:outstd_logic);endDIV;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告DIVis0);process(clk_in,tmp)if(clk_in'eventandclk_in='1')thenendif;endprocess;endbehave;4.2

(

控制器)libraryieee;ieee.std_logic_unsigned.all;entityMCU

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告port(std_logic;std_logic;std_logic_vector(10downto);endvariabledownto0):="00000";if(start='1')thenstatus:="00001";casewhen"00001"=>ctr<="00010000000";status:=status+1;when"00010"=>ctr<="00001000000";status:=status+1;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告--DECODINGcaseopcodewhen"0001"=>status:="00100";ctr<="00100000000";--MBR<-ACCwhen"0010"=>status:="00101";ctr<="00010000000";--Loadwhen"0011"=>status:="00111";ctr<="00010000000";--Addwhen"0100"=>status:="01001";ctr<="00010000000";--MBR<-RAMwhen"0101"=>status:="11111";ctr<="00000000011";--SHL--ACC<-ACC<<1when"0110"=>status:="11111";ctr<="00000000100";--SHR--ACC<-ACC>>1when"0111"=>status:="01011";ctr<="00010000000";--Andwhen"1000"=>status:="01101";ctr<="00010000000";--Orwhen"1001"=>status:="11111";ctr<="00000000111";--Not--ACC<-NOTACC

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告when"1010"=>status:="00001";ctr<="00000000000";when"1011"=>if(cmp='0')then--JumpZelseendif;when"1100"=>status:="11111";ctr<="10000000000";--Smgwhen"1111"=>status:="00000";ctr<="00000000000";--Haltendwhen"00100"=>ctr<="01000000000";status:="11111";--RAM<-MBRwhen"00101"=>ctr<="00000011111";status:=status+1;--Load--BR<-MBR;ACC<-0when"00110"=>ctr<="00000000001";status:="11111";

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告when"00111"=>ctr<="00000010000";status:=status+1;--Add--BR<-MBRwhen"01000"=>ctr<="00000000001";status:="11111";when"01001"=>ctr<="00000010000";status:=status+1;--BR<-MBRwhen"01010"=>ctr<="00000000010";status:="11111";--ACC<-ACC-BRwhen"01011"=>ctr<="00000010000";status:=status+1;--And--BR<-MBRwhen"01100"=>ctr<="00000000101";status:="11111";--ACC<-ACCANDBRwhen"01101"=>ctr<="00000010000";status:=status+1;--Or--BR<-MBRwhen"01110"=>ctr<="00000000110";status:="11111";--ACC<-ACCORBRwhen"01111"=>ctr<="00000010000";status:=status+1;when"10000"=>ctr<="00000001000";status:="11111";--ACC<-ACC*BRwhen"11111"=>ctr<="00000100000";status:="00001";

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告when"00000"=>ctr<="00000000000";status:="00000";endendif;endprocess;endbehave;4.3

(

算術(shù)邏輯運(yùn)算單元

)(

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告br:

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告or

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告4.4

(

地址寄存器

)libraryieee;ieee.std_logic_unsigned.all;entityMARport(std_logic;rst:instd_logic;mbr_low:indownto0);add:instd_logic;std_logic_vector(70));endMAR;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告MARprocess(clk,rst)variablepc:std_logic_vector(7downtovariablemar_mid:std_logic_vector(7downto0);if(clk'eventandclk='1')thenpc:="00000000";mar_mid:="00000000";mar_mid:=mbr_low;pc:=pc+1;elsenull;endif;endif;mar<=mar_mid;endprocess;endbehave;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告4.5

(

緩沖寄存器

)libraryieee;ieee.std_logic_unsigned.all;entityport(std_logic;ram_in:instd_logic_vector(11downto0);acc_in:instd_logic_vector(110);acc_e:inrst:instd_logic;std_logic_vector(110));

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告endprocess(clk,rst)if(clk'eventandclk='1')thenmbr<="000000000000";elsif(acc_e='1')thenmbr<=ram_in;elsenull;endif;endif;endprocess;endbehave;4.6

(

隨機(jī)存取存儲(chǔ)器

)

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告libraryieee;ieee.std_logic_unsigned.all;entityRAMport(std_logic;w_r:instd_logic;code_e:instd_logic;mbr_in:instd_logic_vector(110);mar_in:instd_logic_vector(70);ram_in:instd_logic_vector(70);ram_out:outstd_logic_vector(110);downto0));endRAM;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告RAMprocess(clk_ram)tableto20)ofdowntovariablevariablerange031:=0;variablej:std_logic:='0';variableif(clk_ram'eventif(code_e='1'andcode_e1='0'8):=ram_in(3downto0);4)<="1000";0)<=ram(i)(11downto8);j:='1';elsif(code_e='1'ram(i)(7downto0):=ram_in(70);ram_outt<=ram(i)(7j:='0';

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告elsif(w_r='1')thenram(conv_integer(mar_in)):=mbr_in;elsif(w_r='0')thenram_out<=ram(conv_integer(mar_in));elsenull;endif;endif;endprocess;endbehave;4.7

(碼管顯示

)

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告(0)0to0to9;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告10;

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)實(shí)驗(yàn)報(bào)告012

北京郵電大學(xué)數(shù)字電路與邏輯設(shè)計(jì)

溫馨提示

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

評論

0/150

提交評論