西安交通大學(xué)計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告_第1頁
西安交通大學(xué)計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告_第2頁
西安交通大學(xué)計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告_第3頁
西安交通大學(xué)計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告_第4頁
西安交通大學(xué)計(jì)算機(jī)組成原理實(shí)驗(yàn)報(bào)告_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

8、臺上的指示燈,察看結(jié)果與預(yù)想的是否一致。1、 實(shí)驗(yàn)思路: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; -復(fù)位、時(shí)鐘 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; -開始計(jì)數(shù)(讀寫)、結(jié)束(狀態(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 - 計(jì)數(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í)驗(yàn)結(jié)果加法器設(shè)計(jì):第一操作數(shù)opr17.0對應(yīng)于實(shí)驗(yàn)臺上開關(guān)SD7SD0;第二操作數(shù)opr2 7.0對應(yīng)實(shí)驗(yàn)臺上開關(guān)SD15SD8;運(yùn)算結(jié)果result 15.

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

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

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

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

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

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

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

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

23、ct: out std_logic; /為1表示本條指令是“JMP ADR”指令 DRWr: buffer std_logic; /為1時(shí)寫DR寄存器 Mem_Write: out std_logic; /為1表示本指令有存儲器寫操作,存儲器的地址是目的寄存器中的內(nèi)容 DW_intruct: buffer std_logic; /為1表示指令是雙字指令 change_z: out std_logic; /為1表示本條指令可能改變Z標(biāo)志change_c: out std_logic; /為1表示本條指令可能改變C標(biāo)志sel_memdata: out std_logic /為1時(shí)存儲器的讀出數(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標(biāo)志change_c = (not IRH(3) and (not IRH(2); /00. 開頭操作碼的指令改變c標(biāo)志c_z_j_flag = (zj_instruct and (not z) or (cj_instruct and (not c);/條件轉(zhuǎn)移DRWr_proc: process(IRH)beginif IRH(3) = 0 then /算術(shù)邏輯指令,000,001,010,011,DRWr為1,將結(jié)果存入目的寄存器 DRWr = 1;elsif IRH(2) = 1 and IRH(1) = 0 then /MVRD DR,DATA;LDR DR,SRDRWr = 1; /110,111,DRWr為1,將結(jié)果存入目的寄存器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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論