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

下載本文檔

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

文檔簡介

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

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

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

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

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

6、直讀16個數(shù)。讀出的數(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)四

7、、 實驗步驟實驗臺設置成FPGA-CPU附加外部RAM運行模式“011”。該調(diào)試模式要能夠?qū)崿F(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調(diào)試模式完全一樣。將設計在Quartus 下輸入,編譯后下載到TEC-CA上的FPGA中。首先按實驗臺上的CPU復位按鈕,使存儲器

8、地址寄存器復位為0,然后不斷觀察實驗臺上的指示燈,察看結(jié)果與預想的是否一致。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(

9、15 downto 0); -地址 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ù)(讀寫)、結(jié)束(狀態(tài))beginA <= counter;wdata <= "00000000001" &am

10、p; counter(4 downto 0);- 數(shù)據(jù)16bit的形成process(reset,clk)begin if reset = '0' thencounter <= x"0000"elsif clk'event and clk = '1' then - 計數(shù)if (start = '1') and (counter /= x"000f") then counter <= counter + '1'elsif (start = '1') and

11、(counter = x"000f") thencounter <= x"0000"end if;end if;end process;process(reset,clk)beginif reset = '0' thenstart <= '0'elsif clk'event and clk = '1' thenstart <= '1'end if;end process;process(reset,counter,clk)beginif reset = '0

12、' thenflag <= '0'elsif clk'event and clk = '1' thenif counter = x"000f" 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 flag = 

13、9;0' thenD <= wdata;FWR <= clk;elseD <= "ZZZZZZZZZZZZZZZZ"FWR <= '1'R <= D;end if;end if;end process; -增加flag引出信號,觀察他的變化。end behav; 五、實驗結(jié)果及分析仿真結(jié)果如下圖所示,分為兩個階段,第一個階段是寫入數(shù)據(jù)階段,經(jīng)過16個時鐘脈沖后,進入第二個階段;第二個階段是讀出數(shù)據(jù)階段,同樣經(jīng)歷16個時鐘脈沖,讀出的數(shù)據(jù)首先暫存在一個寄存器中,然后再送入數(shù)據(jù)總線。六、思考題如果從存儲器中讀出數(shù)據(jù)時不首先向

14、數(shù)據(jù)總線送出"ZZZZZZZZZZZZZZZZ",那么會發(fā)生什么問題?答:如果在從存儲器中讀出數(shù)據(jù)時不首先向數(shù)據(jù)總線送出高阻狀態(tài),那么讀狀態(tài)和寫狀態(tài)就可能會混淆重疊,從而造成錯誤。七、 實驗心得通過本次實驗,我更好地理解了計算機主存儲器的分類及作用,同時也更好地了解和掌握了ROM、RAM的讀寫方法。通過實驗,我可以將書本上的理論知識與實際的實驗內(nèi)容及結(jié)果結(jié)合起來,這讓我更好地掌握課堂上學習的知識。不過在實驗中也遇到了不少問題,幸運的是,在老師的指導與幫助下,我最終完成了實驗,希望以后會有更多的實驗機會。實驗二 運算器的設計與實現(xiàn) 加法器的設計一、實驗目的1、掌握基本的算術運

15、算和邏輯運算的運算規(guī)則和實現(xiàn)方法;2、掌握基本運算器的信息傳送通路;3、掌握運算器的工作原理,設計并實現(xiàn)具有定點、浮點運算功能的模塊。二、實驗原理運算器是既能實現(xiàn)算術運算又能完成邏輯運算的部件。算術運算主要包括加減乘除運算,邏輯運算主要包括與、或、非、異或和移位運算。運算器(ALU)通常有兩個數(shù)據(jù)輸入端(opr1和opr2),一個數(shù)據(jù)輸出端(result),運算模式控制信號(code)和標志位(cin,flag)等。下圖為運算器的邏輯框圖:圖2-1 運算器運算器包含加法器、減法器、乘法器、與門、或門、非門、異或門和移位器。各組成部件的原理如下所述。(本實驗中設計的運算器操作數(shù)為8位字長)。加法

16、器 從進位傳遞時間和門電路的扇入、扇出來考慮,將8位數(shù)據(jù)分為兩組,采取組內(nèi)并行、組間串行的設計方案。該加法器的設計框圖如下所示:圖2-2 8位的加法器其中,Gi=opr1(i) and opr2(i) (i=1,7),Gi 為第i位的本地進位,Pi=opr1(i) xor opr2(i)(i=1,7),P(i)為傳遞條件。4位先行加法器的邏輯圖如下所示:圖2-3 4位先行加法器邏輯圖于是根據(jù)邏輯圖可以得出4位先行加法器的邏輯表達式如下:Gi = opr1(i-1)opr2(i-1)Pi = opr1(i-1)opr2(i-1)S1 = P1C0C1 = G1 + P1C0 S2 = P2C1

17、C2 = G2 + P2C1 = G2 + P2G1 + P2P1C0 S3 = P3C2 C3 = G3 + P3C2 = G3 + P3 G2 + P3 P2G1 + P3P2P1C0 S4 = P4C3 C4 = G4 + P4C3 = G4 + P4G3 + P4P3G2 + P4P3 P2G1 + P4P3P2P1C0四、實驗內(nèi)容由于時間關系,第二次實驗老師要求我們只需要做加法器,所以實驗內(nèi)容主要是設計一個基本的加法器。頂層設計實體的引腳對應關系:(1)運算控制信號set對應實驗臺上開關SA0;(2)低位向高位的進位或者借位信號cin對應實驗臺上開關SA1;(3)操作碼code2.0

18、對應實驗臺上開關SA5SA2;(4)第一操作數(shù)opr17.0對應于實驗臺上開關SD7SD0;(5)第二操作數(shù)opr2 7.0對應實驗臺上開關SD15SD8;(6)運算結(jié)果result 15.0對應實驗臺上指示燈A7A0; (7)運算結(jié)果標志位flag對應實驗臺上指示燈 A8。注: 運算器模塊框圖:運算器(ALU)通常有兩個數(shù)據(jù)輸入端(opr1和opr2),一個數(shù)據(jù)輸出端(result),運算模式控制信號(code)和標志位( cin , flag)等。下圖為運算器的邏輯框圖:圖2-1 運算器· 運算器包含加法器(含用先行進位的構(gòu)成的加法器)、減法器、乘法器、與門、或門、非門、異或門和

19、移位器等及浮點運算模塊;運算器模塊中也可以加入寄存器組(Register file) · 本實驗中設計的運算器操作數(shù)可以分別為8/16/32位字長(32位字長運算可以只進行仿真分析)五、實驗源代碼8位加法器LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY adder8 ISPORT (a : IN std_logic_vector(7 DOWNTO 0);b : IN std_logic_vector(7 DOWNTO 0);cin : IN std_logic;cout : OUT std_logic;sum : OUT std_log

20、ic_vector(7 DOWNTO 0);END adder8;ARCHITECTURE ripple OF adder8 ISCOMPONENT fulladderPORT(a, b, CarryIn : INSTD_LOGIC;Sum, CarryOut : OUTSTD_LOGIC);END COMPONENT;SIGNAL carry : std_logic_vector(7 DOWNTO 1);BEGINf0: fulladder PORT MAP (a => a(0), b => b(0),CarryIn => cin, Sum => sum(0), Ca

21、rryOut => 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(2), CarryOut => carry(3);f3: fulladder PORT MAP (a => a(3), b =>

22、; 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), CarryOut => ca

23、rry(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;六、實驗結(jié)果加法器設計:第一操作數(shù)opr17.0對應于實驗臺上開關SD7SD0;第二操作數(shù)opr2 7

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

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

26、代。但是隨著新一代機器及VLSI技術的發(fā)展,這種控制器又得到了重視,如RISC機廣泛使用這種控制器。 .圖1 組合邏輯控制器的結(jié)構(gòu)方框圖圖1是組合邏輯控制器的結(jié)構(gòu)方框圖。邏輯網(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é)拍電位

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

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

29、令時的IR2.0,我們這里要求只考慮指令操作碼IR15.12。Bj代表進位標志C和結(jié)果為0標志Z。要求產(chǎn)生的微操作控制信號如下:op_code 控制ALU進行8種運算操作的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)標志。change_c 為1表示本條指令可能改變

30、c(進位)標志。sel_memdata 為1表示本條指令寫入目的寄存器的值來自讀存儲器。2、頂層設計實體的引腳要求引腳要求的對應關系如下:(1)指令IR15.12對應實驗臺開關SD3SD0進位C對應實驗臺開關SD4結(jié)果為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

31、;use ieee.std_logic_1164.all;use 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表示結(jié)果為0標志op_code: out std_logic_vector(2 downto 0); /控制ALU進行8種運算操作的3位編碼 c_z_j_flag: out

32、std_logic; /為1表示需要操作轉(zhuǎn)移 lj_instruct: out std_logic; /為1表示本條指令是“JMP ADR”指令 DRWr: buffer std_logic; /為1時寫DR寄存器 Mem_Write: out std_logic; /為1表示本指令有存儲器寫操作,存儲器的地址是目的寄存器中的內(nèi)容 DW_intruct: buffer std_logic; /為1表示指令是雙字指令 change_z: out std_logic; /為1表示本條指令可能改變Z標志change_c: out std_logic; /為1表示本條指令可能改變C標志sel_memd

33、ata: out std_logic /為1時存儲器的讀出數(shù)據(jù)作為寫入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 (no

34、t IRH(1) or (not IRH(3) and IRH(2) and IRH(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);/條件轉(zhuǎn)移DRWr_proc: process(IRH)beginif IRH(3) = '0' then /算術邏輯指令,000,001,0

35、10,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 <= '0'end if;end process;M_instruct:process(IRH)begincase IRH(3 downto 0) iswhen "1000" | &quo

36、t;1100" => -jmp addr;mvrd dr,dataMem_Write <= '0'DW_intruct <= '1'when "1110" => - str sr,drMem_Write <= '1'DW_intruct <= '0'when others =>Mem_Write <= '0'DW_intruct <= '0'end case;end process;ALUOP_CODE_PROC:P

37、ROCESS(IRH) /算術邏輯單元begin if IRH(3) = '0' then -000,001,010,011op_code <= IRH(2 downto 0);elseop_code <= "111"end if;end process;Jinstruct_PROC:process(IRH)begin case IRH(3 downto 0) iswhen "1000" => -jmp adr /功能:PC<-ADR 無條件轉(zhuǎn)移zj_instruct <= '0'cj_ins

38、truct <= '0'lj_instruct <= '1'when "1001" => -jnc addr /條件轉(zhuǎn)移zj_instruct <= '0'cj_instruct <= '1'lj_instruct <= '0'when "1010" => -jnz addr zj_instruct <= '1'cj_instruct <= '0'lj_instruct <= '

39、;0'when others =>zj_instruct <= '0'cj_instruct <= '0'lj_instruct <= '0'end case;end process;end behav;五、實驗步驟(可選兩種設備操作)1、使用TEC-CA-I實驗箱的操作:(1)實驗臺設置成FPGA-CPU獨立調(diào)試模式REGSEL = 0、CLKSEL = 1、FDSEL = 0。使用實驗臺上的單脈沖,即STEP_CLK短路子短接,短路子RUN_CLK斷開。(2)將設計在Quartus 下輸入,編譯后下載到TEC-

40、CA上的FPGA中。(3)撥動實驗臺上的開關SD5SD0,改變IR15.12、進位標志C和結(jié)果為0標志Z,觀察指示燈R10-R0顯示的控制信號,并填寫下表2、使用XJECA實驗板的操作:(1)輸入信號(指令操作碼):IR15.12、OP2.0(2)輸出信號:指示燈顯示微操作信號(下表的后8項)填寫下表。表一 指令譯碼器實驗(C=0且Z=0)指令IR15.12OP2.0c_z_j_flaglj_instructDRWrMem_WriteDW_intructchange_zchange_csel_memdataADD DR,SR000000000100110INC DR00011000010011

41、0SUB DR,SR001001000100110DEC DR001111000100110AND DR,SR010000100100100OR DR,SR010110100100100NOT DR011001100100100MOV DR,SR011111100100000JMP ADR100011101000000JNC ADR100111110000000JNZ ADR101011110000000MVRD DR,DATA110011100100000LDR DR,SR110111100100001STR SR,DR111011100010000表二 指令譯碼器實驗(C=0且Z=1或者C

42、=1且Z=0或者C=1且Z=1)指令IR15.12OP2.0c_z_j_flaglj_instructDRWrMem_WriteDW_intructchange_zchange_csel_memdataADD DR,SR000000000100110INC DR000100100100110SUB DR,SR001001000100110DEC DR001101100100110AND DR,SR010010000100100OR DR,SR010110100100100NOT DR011011000100100MOV DR,SR110011100101001JMP ADR100011101001000JNC ADR100111100000000JNZ ADR101011100000000MVRD DR,DATA110011100101001LDR DR,SR110111100100001STR SR,DR111011100010000由上表可知,C和Z只影響與標志位有關的指令的結(jié)果。其中指令JNC ADR和JNZ ADR有條件轉(zhuǎn)移,所以當C和Z的取值變化時,會影響實驗結(jié)果。對于其他指令,C和Z的取值發(fā)生變化時結(jié)果不變。對于JNC

溫馨提示

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

評論

0/150

提交評論