西安交通大學計算機組成原理實驗報告_第1頁
西安交通大學計算機組成原理實驗報告_第2頁
西安交通大學計算機組成原理實驗報告_第3頁
西安交通大學計算機組成原理實驗報告_第4頁
西安交通大學計算機組成原理實驗報告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、西安交通大學計算機組成原理實驗報告姓名:* 班級:物聯(lián)網(wǎng)* 學號:實驗一 存儲器的訪問與實現(xiàn)一、 實驗目的1、 理解計算機主存儲器的分類及作用;2、 掌握ROM、RAM的讀寫方法。二、 實驗原理存儲器按存取方式分,可分為隨機存儲器和順序存儲器。如果存儲器中的任何存儲單元的內容都可隨機存取,稱為隨機存儲器,計算機中的主存儲器都是隨機存儲器。如果存儲器只能按某種順序存取,則稱為順序存儲器,磁帶是順序存儲器,磁盤是半順序存儲器,它們的特點是存儲容量大,存取速度慢,一般作為外部存儲器使用。如果按存儲器的讀寫功能分,有些存儲器的內容是固定不變的,即只能讀出不能寫入,這種存儲器稱為只讀存儲器(ROM);既

2、能讀出又能寫入的存儲器,稱為隨機讀寫存儲器(RAM)。實際上真正的ROM基本上不用了,用的是光可擦除可編程的ROM(EPROM)和電可擦除可編程的ROM(EEPROM)。EEPROM用的越來越多,有取代EPROM之勢,比如容量很大的閃存(FLASH)現(xiàn)在用的就很廣泛,常說的U盤就是用FLASH做的。按信息的可保存性分,存儲器可分為非永久性記憶存儲器和永久性記憶存儲器。ROM、EPROM、EEPROM都是永久記憶存儲器,它們斷電后存儲內容可保存。RAM則是非永久性記憶存儲器,斷電后存儲器中存儲的內容丟失。隨機讀寫存儲器類型隨機存儲器按其元件的類型來分,有雙極存儲器和MOS存儲器兩類。在存取速度和

3、價格兩方面,雙極存儲器比MOS存儲器高,故雙極存儲器主要用于高速的小容量存儲體系。在MOS存儲器中,根據(jù)存儲信息機構的原理不同,又分為靜態(tài)隨機存儲器(SRAM)和動態(tài)隨機存儲器(DRAM)。靜態(tài)隨機存儲器采用雙穩(wěn)態(tài)觸發(fā)器來保存信息,只要不斷電,信息就不會丟失;動態(tài)隨機存儲器利用記憶電容來保存信息,使用時只有不斷地給電容充電才能使信息保持。靜態(tài)隨機存儲器的集成度較低,功耗也較大;動態(tài)隨機存儲器的集成度較高,功耗低?,F(xiàn)在計算機中,內存容量較大,常由動態(tài)隨機存儲器構成。靜態(tài)隨機存儲器靜態(tài)存儲器由存儲體、地址譯碼電路、讀寫電路和控制電路組成。一個40961位的SRAM的結構框圖如圖6-37所示。圖中,

4、A0A11為地址線,用來尋址存儲器中的某一個單元。DIN、DOUT為數(shù)據(jù)線,實現(xiàn)數(shù)據(jù)的輸入、輸出。W/R為讀寫控制信號線,用來實現(xiàn)讀寫操作控制。/CS為片選信號。圖6-37 SRAM結構框圖動態(tài)隨機存儲器動態(tài)隨機存儲器(DRAM)和SRAM一樣,也是由許多基本存儲電路按照行和列來組成的。DRAM是以MOS管柵極和襯底間電容上的電荷來存儲信息的。由于MOS管柵極上的電荷會因漏電而泄放,故存儲單元中的信息只能保持若干秒,為此DRAM必須附加刷新邏輯電路。另外,DRAM將地址分為行地址和列地址,并分時復用以減少引腳數(shù)目。常見的4164芯片即是DRAM。三、 實驗要求1、實驗設計目標設計一個能夠對實驗

5、臺上的存儲器讀寫的部件,滿足以下目標:(1)、一個16位的存儲器地址寄存器(MAR)。該寄存器在reset為低電平時清零,在時鐘clk的上升沿加1,地址寄存器在超過ox000f后下一個時鐘上升沿回到0。一個標志寄存器(flag),在reset為低電平時復位為0,當存儲器地址寄存器等于0x000f后,下一個時鐘clk的上升沿標志寄存器翻轉。(2)、在標志寄存器為0時執(zhí)行存儲器存數(shù)功能,從存儲器的0單元開始存16個16位數(shù)。按動一次單脈沖按鈕,存一次數(shù),存的數(shù)由內部產(chǎn)生,不由實驗臺開關輸入。(3)、當標志寄存器為1時,執(zhí)行從存儲器的0單元開始的讀數(shù)功能。按動一次單脈沖按鈕,讀一次數(shù),一直讀16個數(shù)

6、。讀出的數(shù)據(jù)送入一個16位信號R15.0暫存。提示:當需要從存儲器讀取數(shù)據(jù)時,首先將ZZZZZZZZZZZZZZZZ賦值給數(shù)據(jù)總線,然后才能讀取存儲器中的數(shù)據(jù)。2、頂層設計實體的引腳要求引腳要求對應關系如下:(1) clk對應實驗臺上的時鐘(單脈沖)。(2) reset對應實驗臺上的CPU復位信號CPU_RST。(3) 存儲器地址總線A15.0對應實驗臺上的指示燈A15A0。(4) 存儲器數(shù)據(jù)總線D15.0對應實驗臺上的數(shù)據(jù)指示燈D15D0。(5) 16位信號R15.0對應實驗臺上的指示燈R15R0。(6) 存儲器讀寫信號FWR對應實驗臺上的FWR。(7)四、 實驗步驟實驗臺設置成FPGA-C

7、PU附加外部RAM運行模式“011”。該調試模式要能夠實現(xiàn)模擬FPGA-CPU對實驗臺存儲器的存數(shù)、取數(shù)功能。即REGSEL = 0、CLKSEL = 1、FDSEL = 1。使用實驗臺上的單脈沖,即STEP_CLK短路子短接,短路子RUN_CLK斷開。由于當FDSEL=0時,指示燈D15D0顯示的是開關SD15SD0的值,因此開關FDSEL必須為1。這種方式除了FPGA-CPU的時鐘是單脈沖外,其余都與單片機控制FPGA-CPU調試模式完全一樣。將設計在Quartus 下輸入,編譯后下載到TEC-CA上的FPGA中。首先按實驗臺上的CPU復位按鈕,使存儲器地址寄存器復位為0,然后不斷觀察實驗

8、臺上的指示燈,察看結果與預想的是否一致。1、 實驗思路:2、源代碼library IEEE;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity memory isport(reset,clk: in std_logic; -復位、時鐘 FWR: out std_logic; -RAM的讀寫 D: inout std_logic_vector(15 downto 0);-數(shù)據(jù)A: out std_logic_vector(15 downto 0); -地址

9、R:out std_logic_vector(15 downto 0)- 寄存器 );end memory;architecture behav of memory issignal counter:std_logic_vector(15 downto 0);signal wdata: std_logic_vector(15 downto 0);signal start, flag : std_logic; -開始計數(shù)(讀寫)、結束(狀態(tài))beginA = counter;wdata = 00000000001 & counter(4 downto 0);- 數(shù)據(jù)16bit的形成process

10、(reset,clk)begin if reset = 0 thencounter = x0000;elsif clkevent and clk = 1 then - 計數(shù)if (start = 1) and (counter /= x000f) then counter = counter + 1;elsif (start = 1) and (counter = x000f) thencounter = x0000;end if;end if;end process;process(reset,clk)beginif reset = 0 thenstart = 0;elsif clkeven

11、t and clk = 1 thenstart = 1;end if;end process;process(reset,counter,clk)beginif reset = 0 thenflag = 0;elsif clkevent and clk = 1 thenif counter = x000f thenflag = not flag;end if;end if;end process;process(reset,counter,clk,start,flag,wdata,D)beginif reset = 0 thenFWR = 1;elsif start = 1 thenif fl

12、ag = 0 thenD = wdata;FWR = clk;elseD = ZZZZZZZZZZZZZZZZ;FWR = 1;R a(0), b = b(0),CarryIn = cin, Sum = sum(0), CarryOut = carry(1);f1: fulladder PORT MAP (a = a(1), b = b(1),CarryIn = carry(1), Sum = sum(1), CarryOut = carry(2);f2: fulladder PORT MAP (a = a(2), b = b(2),CarryIn = carry(2), Sum = sum(

13、2), CarryOut = carry(3);f3: fulladder PORT MAP (a = a(3), b = b(3),CarryIn = carry(3), Sum = sum(3), CarryOut = carry(4);f4: fulladder PORT MAP (a = a(4), b = b(4),CarryIn = carry(4), Sum = sum(4), CarryOut = carry(5);f5: fulladder PORT MAP (a = a(5), b = b(5),CarryIn = carry(5), Sum = sum(5), Carry

14、Out = carry(6);f6: fulladder PORT MAP (a = a(6), b = b(6),CarryIn = carry(6), Sum = sum(6), CarryOut = carry(7);f7: fulladder PORT MAP (a = a(7), b = b(7),CarryIn = carry(7), Sum = sum(7), CarryOut = cout);END ripple;六、實驗結果加法器設計:第一操作數(shù)opr17.0對應于實驗臺上開關SD7SD0;第二操作數(shù)opr2 7.0對應實驗臺上開關SD15SD8;運算結果result 15.

15、0對應實驗臺上指示燈A7A0。通過開關SD7SD0表示第一操作數(shù),開關SD15SD8表示第二操作數(shù),相加在指示燈A7A0上即可得到結果。七、實驗心得通過這次實驗,我對基本的算術運算和邏輯運算的運算規(guī)則和實現(xiàn)方法的掌握加深了。除此之外,通過實驗,我基本掌握運算器的工作原理,我還學習了如何用運算器實現(xiàn)信息傳送通路。這次實驗我們主要學習了加法器的設計與實現(xiàn)。起初大家都還不熟悉,所以從一位加法器開始做起,慢慢地熟悉起來之后,可以做到八位了。在此,我很感謝姜老師在實驗過程中對我的幫助,因為有老師的幫助我才可以在規(guī)定時間里完成實驗,并收獲了不少知識!實驗三 指令譯碼器(硬連線控制器)的設計與實現(xiàn)一、 實驗

16、目的1、理解指令譯碼器的作用和重要性;2、理解控制器中指令與微操作的關系;3、學習設計指令譯碼器。二、 實驗原理指令譯碼器是計算機控制器中最重要的部分。所謂組合邏輯控制器就是指指令譯碼電路是由組合邏輯實現(xiàn)的。組合邏輯控制器又稱硬連線控制器,是早期設計計算機的一種方法。這種控制器中的控制信號直接由各種類型的邏輯門和觸發(fā)器等組合產(chǎn)生。這樣,一旦控制部件構成后,除非重新設計和物理上對它重新連線,否則要想增加新的功能是不可能的。結構上的這種缺陷使得硬連線控制器的設計和調試變得非常復雜而且代價很大。所以,硬連線控制器曾一度被微程序控制器所取代。但是隨著新一代機器及VLSI技術的發(fā)展,這種控制器又得到了重

17、視,如RISC機廣泛使用這種控制器。 .圖1 組合邏輯控制器的結構方框圖圖1是組合邏輯控制器的結構方框圖。邏輯網(wǎng)絡的輸入信號來源有三個:(1)指令操作碼譯碼器的輸出In;(2)來自時序發(fā)生器的節(jié)拍電位信號Tk;(3)來自執(zhí)行部件的反饋信號Bj。邏輯網(wǎng)絡的輸出信號就是微操作控制信號,用來對執(zhí)行部件進行控制。組合邏輯控制器的基本原理,可描述為:某一微操作控制信號Cm是指令操作碼譯碼器的輸出In、時序信號(節(jié)拍電位信號Tk)和狀態(tài)條件信號Bj的邏輯函數(shù)。即Cmf(In,Tk,Bj)用這種方法設計控制器,需要根據(jù)每條指令的要求,讓節(jié)拍電位和時序脈沖有步驟地去控制機器的各有關部分,一步一步地執(zhí)行指令所規(guī)

18、定的微操作,從而在一個指令周期內完成一條指令所規(guī)定的全部操作。一般來說,組合邏輯控制器的設計步驟如下。(1)繪制指令流程圖為了確定指令執(zhí)行過程所需的基本步驟,通常是以指令為線索,按指令類型分類,將每條指令歸納成若干微操作,然后根據(jù)操作的先后次序畫出流程圖。(2)安排指令操作時間表指令流程圖的進一步具體化,把每一條指令的微操作序列分配到各個機器周期的各個時序節(jié)拍信號上。要求盡量多的安排公共操作,避免出現(xiàn)互斥。(3)安排微命令表以指令流程圖為依據(jù),表示出在哪個機器周期的哪個節(jié)拍有哪些指令要求哪些微命令。(4)進行微操作邏輯綜合根據(jù)微操作時間表,將執(zhí)行某一微操作的所有條件(哪條指令、哪個機器周期、哪

19、個節(jié)拍和脈沖等)都考慮在內,加以分類組合,列出各微操作產(chǎn)生的邏輯表達式,并加以簡化。(5)實現(xiàn)電路根據(jù)上面所得邏輯表達式,用邏輯門電路的組合或大規(guī)模集成電路來實現(xiàn)。三、實驗內容1、設計目標根據(jù)提供的指令集(附件1),設計CPU的指令譯碼器,本實驗指令譯碼器的設計相對簡單,因為節(jié)拍(t1、t2和t3)信號只在存儲器讀寫時需要對存儲器地址分時使用時需要考慮,所以這里暫不考慮節(jié)拍脈沖t,也就是說微操作控制信號只是指令操作碼In和Bj的函數(shù):Cm = f(In,Bj)式中的In主要代表指令操作碼IR15.12,還有輔助操作碼(如算術邏輯指令時的IR2.0,我們這里要求只考慮指令操作碼IR15.12。B

20、j代表進位標志C和結果為0標志Z。要求產(chǎn)生的微操作控制信號如下:op_code 控制ALU進行8種運算操作的3位編碼。c_z_j_flag 為1表示需要條件轉移。lj_instruct 為1表示本條指令是條“JMP ADR”指令。DRWr 為1表示在t3的下降沿將本條指令的執(zhí)行結果寫入目的寄存器。Mem_Write 為1表示本條指令有存儲器寫操作,存儲器的地址是目的寄存器的內容。DW_intruct 為1表示本條指令是雙字指令。change_z 為1表示本條指令可能改變z(結果為0)標志。change_c 為1表示本條指令可能改變c(進位)標志。sel_memdata 為1表示本條指令寫入目的

21、寄存器的值來自讀存儲器。2、頂層設計實體的引腳要求引腳要求的對應關系如下:(1)指令IR15.12對應實驗臺開關SD3SD0進位C對應實驗臺開關SD4結果為0標志Z對應實驗臺開關SD5(2)控制信號對應如下:op_code2.0指示燈R2、R1、R0 c_z_j_flag指示燈R3lj_instruct指示燈R4DRWr指示燈R5Mem_Write指示燈R6DW_intruct指示燈R7change_z 指示燈R8change_c指示燈R9sel_memdata 指示燈R10四、實驗源程序及注釋指令譯碼器:library ieee;use ieee.std_logic_1164.all;use

22、 ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;-實體的定義部分entity instruction_decoder isport (IRH: in std_logic_vector(3 downto 0); /指令操作碼IR15.12c,z: in std_logic; /c表示進位標志,z表示結果為0標志op_code: out std_logic_vector(2 downto 0); /控制ALU進行8種運算操作的3位編碼 c_z_j_flag: out std_logic; /為1表示需要操作轉移 lj_instru

23、ct: out std_logic; /為1表示本條指令是“JMP ADR”指令 DRWr: buffer std_logic; /為1時寫DR寄存器 Mem_Write: out std_logic; /為1表示本指令有存儲器寫操作,存儲器的地址是目的寄存器中的內容 DW_intruct: buffer std_logic; /為1表示指令是雙字指令 change_z: out std_logic; /為1表示本條指令可能改變Z標志change_c: out std_logic; /為1表示本條指令可能改變C標志sel_memdata: out std_logic /為1時存儲器的讀出數(shù)據(jù)作

24、為寫入DR的數(shù)據(jù) );end instruction_decoder;architecture behav of instruction_decoder issignal zj_instruct, cj_instruct: std_logic;beginsel_memdata = IRH(3) and IRH(2) and (not IRH(1);-110.開頭操作碼的指令change_z = (not IRH(3) and (not IRH(2) or (not IRH(3) and IRH(2) and (not IRH(1) or (not IRH(3) and IRH(2) and I

25、RH(1) and (not IRH(0);/10. 010. 0110開頭操作碼的指令改變z標志change_c = (not IRH(3) and (not IRH(2); /00. 開頭操作碼的指令改變c標志c_z_j_flag = (zj_instruct and (not z) or (cj_instruct and (not c);/條件轉移DRWr_proc: process(IRH)beginif IRH(3) = 0 then /算術邏輯指令,000,001,010,011,DRWr為1,將結果存入目的寄存器 DRWr = 1;elsif IRH(2) = 1 and IRH(1) = 0 then /MVRD DR,DATA;LDR DR,SRDRWr = 1; /110,111,DRWr為1,將結果存入目的寄存器elseDRWr -jmp addr;mvrd dr,dataMem_Write = 0;DW_intruct - str sr,drMem_Write = 1;DW_intruct Mem_Write = 0;DW_intruct = 0;e

溫馨提示

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

評論

0/150

提交評論