版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 計(jì)算機(jī)組成原理課內(nèi)實(shí)驗(yàn)報(bào)告 實(shí)驗(yàn)二學(xué)生姓名 高君宇 專業(yè)班級 計(jì)算機(jī)15 學(xué) 號 2110505112 所在學(xué)院 電信學(xué)院 提交日期 2014年1月18日 實(shí)驗(yàn)二1. 實(shí)驗(yàn)?zāi)康模?)理解計(jì)算機(jī)主存儲器的分類及作用(2)掌握ROM、RAM的讀寫方法2. 實(shí)驗(yàn)要求1)實(shí)驗(yàn)設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)能夠?qū)?shí)驗(yàn)臺上的存儲器讀寫的部件,滿足以下目標(biāo):(1)一個(gè)16位的存儲器地址寄存器。該寄存器在reset為低電平時(shí)清零,在時(shí)鐘clk的上升沿加1,地址寄存器在超過ox000f后下一個(gè)時(shí)鐘上升沿回到0。(2)一個(gè)標(biāo)志寄存器,在reset為低電平時(shí)復(fù)位為0,當(dāng)存儲器地址寄存器等于0x000f后,下一個(gè)時(shí)鐘clk的上升
2、沿標(biāo)志寄存器翻轉(zhuǎn)。(3)在標(biāo)志寄存器為0時(shí)執(zhí)行存儲器存數(shù)功能,從存儲器的0單元開始存16個(gè)16位數(shù)。按動一次單脈沖按鈕,存一次數(shù),存的數(shù)由內(nèi)部產(chǎn)生,不由實(shí)驗(yàn)臺開關(guān)輸入。(4)當(dāng)標(biāo)志寄存器為1時(shí),執(zhí)行從存儲器的0單元開始的讀數(shù)功能。按動一次單脈沖按鈕,讀一次數(shù),一直讀16個(gè)數(shù)。讀出的數(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)存儲器地址
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。3. 實(shí)驗(yàn)原理存儲器按存取方式分,可分為隨機(jī)存儲器和順序存儲器。如果存儲器中的任何存儲單元的內(nèi)容都可隨機(jī)存取,稱為隨機(jī)存儲器,計(jì)算機(jī)中的主存儲器都是隨機(jī)存儲器。如果存儲器只能按某種順序存取,則稱為順序存儲器,磁帶是順序存儲器,磁盤是半順序存儲器,它們的特點(diǎn)是存儲容量大,存取速度慢,一般作為外部存儲器使用。如果按存儲器的讀寫功能分,有些存儲器的內(nèi)容是固定不變的,即只能讀出不能寫入,
4、這種存儲器稱為只讀存儲器(ROM);既能讀出又能寫入的存儲器,稱為隨機(jī)讀寫存儲器(RAM)。實(shí)際上真正的ROM基本上不用了,用的是光可擦除可編程的ROM(EPROM)和電可擦除可編程的ROM(EEPROM)。EEPROM用的越來越多,有取代EPROM之勢,比如容量很大的閃存(FLASH)現(xiàn)在用的就很廣泛,常說的U盤就是用FLASH做的。按信息的可保存性分,存儲器可分為非永久性記憶存儲器和永久性記憶存儲器。ROM、EPROM、EEPROM都是永久記憶存儲器,它們斷電后存儲內(nèi)容可保存。RAM則是非永久性記憶存儲器,斷電后存儲器中存儲的內(nèi)容丟失。TEC-CA實(shí)驗(yàn)臺上HM6116的使用在TEC-CA開
5、放式CPU實(shí)驗(yàn)教學(xué)系統(tǒng)實(shí)驗(yàn)臺上,有2片靜態(tài)存儲器器件HM6116。HM6116有8位數(shù)據(jù)總線和11位地址總線。2片HM6116構(gòu)成了2k X 16bits的靜態(tài)存儲器,與FPGA-CPU一起構(gòu)成了能夠運(yùn)行測試程序的計(jì)算機(jī)。圖6-41是FPGA-CPU和2片HM6116連接示意圖。圖6-41 FPGA-CPU和2片HM6116連接示意圖對于FPGA-CPU來說,實(shí)驗(yàn)臺上的2片HM6116的CS是接地的,因此不需要對它們的CS進(jìn)行控制。FPGA-CPU產(chǎn)生的16位存儲器地址A15A0只有11位地址A10A0送往2片HM6116,其余5位地址A15A11沒有使用。FPGA-CPU的16位存儲器數(shù)據(jù)總
6、線D15D0和2片HM6116相連,1片HM6116的I/O7I/O0接D7D0,另1片HM6116的I/O7I/O0接D15D8。FPGA-CPU輸出的存儲器控制信號FWR直接送2片HM6116的WE;FWR在實(shí)驗(yàn)臺經(jīng)過一個(gè)反相器反相后送2片HM6116的OE。因此FPGA-CPU只要在存儲器地址總線A10A0設(shè)置好地址,在數(shù)據(jù)總線D15D0上送出被寫數(shù)據(jù),然后在FWR上產(chǎn)生一個(gè)負(fù)脈沖,就能將數(shù)據(jù)寫入指定的存儲器單元;只要在存儲器地址總線A10A0設(shè)置好地址,然后使FWR為高電平,就能在數(shù)據(jù)總線D15D0上接收到從指定的存儲器單元讀出的數(shù)據(jù)。4.設(shè)計(jì)思路與源代碼library IEEE;us
7、e 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); -地址 R:out std_logic_vector(15 downto 0)- 寄存器 );end m
8、emory;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(reset,clk)begin if reset = 0 thencounter = x000
9、0;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 clkevent and clk = 1 thenstart = 1;end if;end process;p
10、rocess(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 flag = 0 thenD = wdata;FWR = clk;elseD = ZZZZZZZZZ
11、ZZZZZZZ;FWR = 1;R = D;end if;end if;end process; -增加flag引出信號,觀察他的變化。end behav; 5.實(shí)驗(yàn)步驟(1)實(shí)驗(yàn)臺設(shè)置成FPGA-CPU附加外部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í)鐘是單脈沖外,
12、其余都與單片機(jī)控制FPGA-CPU調(diào)試模式完全一樣。(2)將設(shè)計(jì)在Quartus 下輸入,編譯后下載到TEC-CA上的FPGA中。首先按實(shí)驗(yàn)臺上的CPU復(fù)位按鈕,使存儲器地址寄存器復(fù)位為0,然后不斷觀察實(shí)驗(yàn)臺上的指示燈,察看結(jié)果與預(yù)想的是否一致。6、實(shí)驗(yàn)現(xiàn)象:reset信號使整個(gè)運(yùn)行過程復(fù)位, clk脈沖有效是存入16個(gè)16位數(shù),標(biāo)志位變?yōu)?,按clk開始讀存儲器,此時(shí)可以通過觀察指示燈的亮滅情況得到輸出結(jié)果。7、實(shí)驗(yàn)小結(jié)本次實(shí)驗(yàn)中使我對Quartus有了更加充分的認(rèn)識,在實(shí)驗(yàn)過程中,仿真的時(shí)候波形不正確,其中一開始是仿真過程不熟悉導(dǎo)致,后來解決時(shí)通過調(diào)整延長了地址有效時(shí)間,讀取穩(wěn)定。 這說明
13、成功是需要不斷嘗試的! 計(jì)算機(jī)組成原理課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)三學(xué)生姓名 高君宇 專業(yè)班級 計(jì)算機(jī)15 學(xué) 號 2110505112 所在學(xué)院 電信學(xué)院 提交日期 2014年1月18日 實(shí)驗(yàn)三1、 實(shí)驗(yàn)?zāi)康模?)了解通用寄存器組的用途及對CPU的重要性。(2)掌握通用寄存器組的設(shè)計(jì)方法。(3) 掌握VHDL中層次結(jié)構(gòu)的設(shè)計(jì)特點(diǎn)和方法;學(xué)習(xí)和掌握component語句和port map語句。(4) 進(jìn)一步學(xué)習(xí)和掌握case語句及其他語句的用法,完成各種寄存器、譯碼器及選擇 器的設(shè)計(jì)和實(shí)現(xiàn)。2、實(shí)驗(yàn)要求1)實(shí)驗(yàn)設(shè)計(jì)目標(biāo)設(shè)計(jì)一個(gè)通用寄存器組,滿足以下要求:(1) 通用寄存器組中有4個(gè)16位的寄存器。(2)
14、當(dāng)復(fù)位信號reset = 0時(shí),將通用寄存器組中的4個(gè)寄存器清零。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)SR1.0對應(yīng)實(shí)驗(yàn)臺開關(guān)SA1、SA0。(4)DR1.0對應(yīng)實(shí)驗(yàn)臺開關(guān)SA3、SA2。(5)DRWr對應(yīng)實(shí)驗(yàn)臺開關(guān)SA5。(6)目的操作數(shù)用實(shí)驗(yàn)臺上的指示燈A15A0顯示,源操作數(shù)用實(shí)驗(yàn)臺上的指示燈R15R0顯示。3.實(shí)驗(yàn)原理通用寄存器組是CPU的重要組成部分。從存儲器取來的數(shù)據(jù)要放在通用寄存器中;從外部設(shè)備取來的數(shù)據(jù)除DMA方式外,要放在通用寄存器中。向存儲器輸出的數(shù)據(jù)也是
15、從通用寄存器中取出的;向外部設(shè)備輸出的數(shù)據(jù)除DMA方式外也是從通用寄存器中取出的。由于從通用寄存器組中取數(shù)據(jù)比從存儲器或者外部設(shè)備取數(shù)據(jù)速度快得多,因此參加算術(shù)運(yùn)算和邏輯運(yùn)算的數(shù)據(jù)一般是從通用寄存器組中取出的,它向算術(shù)邏輯單元ALU提供了進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算所需要的2個(gè)操作數(shù),同時(shí)又是運(yùn)算結(jié)果的暫存地。通用寄存器組內(nèi)寄存器的數(shù)目與CPU性能有關(guān),CPU性能越高,通用寄存器組內(nèi)的寄存器數(shù)目越多。由于算術(shù)邏輯運(yùn)算需要2個(gè)操作數(shù),因此通用寄存器組有2個(gè)讀端口,負(fù)責(zé)提供進(jìn)行算術(shù)邏輯單元需要的源操作數(shù)和目的操作數(shù)。通用寄存器組有1個(gè)寫端口,負(fù)責(zé)將運(yùn)算結(jié)果保存到指定的寄存器內(nèi)。根據(jù)通用寄存器組的功能要求
16、,一個(gè)只有4個(gè)16位寄存器的通用寄存器組的框圖如圖所示。6)4選1多路選擇器:*多路選擇器1從4個(gè)寄存器R0、R1、R2和R3的輸出Q15.0選擇1路送到DR_data1.0,給算術(shù)邏輯單元提供目的操作數(shù);選擇信號sel1.0接DR1.0。*多路選擇器2從4個(gè)寄存器R0、R1、R2和R3的輸出Q15.0選擇1路送到SR_data1.0,給算術(shù)邏輯單元提供源操作數(shù);選擇信號sel1.0接SR1.0。4、設(shè)計(jì)思路與源代碼設(shè)計(jì)思路:主要運(yùn)用層次結(jié)構(gòu)設(shè)計(jì)的方法,首先設(shè)計(jì)了底層的3個(gè)實(shí)體:16位寄存器,具有復(fù)位功能和允許寫功能;一個(gè)2-4譯碼器,對應(yīng)寄存器寫選擇;一個(gè)4選1多路開關(guān),負(fù)責(zé)1) then
17、if sel = 1 and write = 1 then q_output = d_input; end if; end if;end process;end a;2設(shè)計(jì)實(shí)體decoder2_to_4 library ieee;use ieee.std_logic_1164.all;entity decoder2_to_4 isport (sel : in std_logic_vector(1 downto 0);sel00 : out std_logic;sel01 : out std_logic;sel02 : out std_logic;sel03 : out std_logic );
18、end decoder2_to_4;architecture behavioral of decoder2_to_4 isbeginsel00= (not sel(1) and (not sel(0);sel01= (not sel(1) and sel(0) ;sel02= sel(1) and (not sel(0);sel03 out_put out_put out_put out_put reset, -該語句將底層芯片的引腳reset與頂層的 端口信號reset連接起來了; d_input = data, -頂層設(shè)計(jì)實(shí)體的外部輸入信號dataclk = clk, -頂層設(shè)計(jì)實(shí)體的外部
19、輸入信號clk write = wen, -頂層設(shè)計(jì)實(shí)體的外部輸入信號wen sel = sel00,q_output = reg00);Areg01: register_16 port map( -16位寄存器R1 reset = reset, -頂層設(shè)計(jì)實(shí)體的外部輸入信號reset d_input = data, -頂層設(shè)計(jì)實(shí)體的外部輸入信號data clk = clk , -頂層設(shè)計(jì)實(shí)體的外部輸入信號clk write = wen, -頂層設(shè)計(jì)實(shí)體的外部輸入信號wen sel = sel01,q_output = reg01 );Areg02: reggister_16 port map
20、 ( -16位寄存器R2 reset = reset, -頂層設(shè)計(jì)實(shí)體的外部輸入信號reset d_input = data, -頂層設(shè)計(jì)實(shí)體的外部輸入信號data clk = clk, -頂層設(shè)計(jì)實(shí)體的外部輸入信號clk write = wen , -頂層設(shè)計(jì)實(shí)體的外部輸入信號wen sel = sel02, q_output = reg02);Areg03: reggister_16 port map(-16位寄存器R3 reset = reset, -頂層設(shè)計(jì)實(shí)體的外部輸入信號reset d_input = data, -頂層設(shè)計(jì)實(shí)體的外部輸入信號data clk = clk, -頂層設(shè)
21、計(jì)實(shí)體的外部輸入信號clkwrite = wen, -頂層設(shè)計(jì)實(shí)體的外部輸入信號wren sel = sel03,q_output = regsel03 = sel03 );mux: mux_4_to_1 port map( -4選1多路器 input0 = reg00, input1 = reg01,input2 = reg02,input3 = reg03,sel = rd_port, -頂層設(shè)計(jì)實(shí)體的外部輸入信號rd_port out_put = data_out -頂層設(shè)計(jì)實(shí)體的輸出信號q_out );end struct;5、實(shí)驗(yàn)現(xiàn)象 在實(shí)驗(yàn)臺指示燈A15A0和R15R0上觀察各寄存
22、器的值如下所示。A15A0R15R0R0R1R2R3R0R1R2R3 (1)reset后00000000000000000000000000000000(2)R0寫入0x3333后33330000000000003333000000000000(3)R1寫入0x5555后33335555000000003333555500000000(4)R2寫入0xAAAA后33335555AAAA000033335555AAAA0000(5)R3寫入0xFFFF后FFFFFFFF 可以看到實(shí)驗(yàn)結(jié)果實(shí)現(xiàn)了寄存器的傳遞數(shù)據(jù)的功能。6、實(shí)驗(yàn)總結(jié) 本次的實(shí)驗(yàn)讓我對VHDL語言有了更加深刻的理解,軟件和硬件的邏輯等
23、價(jià)性在這種語言的描述中發(fā)揮的淋漓盡致!同時(shí)也使得我對于寄存器有了更加深刻的了解和認(rèn)識,對于寄存器的傳遞數(shù)據(jù)的功能,與cpu進(jìn)行直接的數(shù)據(jù)傳輸?shù)裙δ芰私飧由羁蹋趯?shí)驗(yàn)過程中自己對于寄存器的結(jié)構(gòu)以及作用有了一個(gè)很好地掌握!計(jì)算機(jī)組成原理課內(nèi)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)四學(xué)生姓名 高君宇 專業(yè)班級 計(jì)算機(jī)15 學(xué) 號 2110505112 所在學(xué)院 電信學(xué)院 提交日期 2014年1月18日 實(shí)驗(yàn)四:指令譯碼器一實(shí)驗(yàn)?zāi)康模?)理解指令譯碼器的作用和重要性。(2)學(xué)習(xí)設(shè)計(jì)指令譯碼器。二 實(shí)驗(yàn)要求1)實(shí)驗(yàn)設(shè)計(jì)目標(biāo)本實(shí)驗(yàn)要求根據(jù)實(shí)驗(yàn)CPU中使用的指令系統(tǒng)設(shè)計(jì)指令譯碼器,本實(shí)驗(yàn)指令譯碼器的設(shè)計(jì)相對比較簡單,節(jié)拍(t1、t2
24、和t3)因素只在存儲器讀寫時(shí)需要對存儲器地址分時(shí)使用時(shí)需要考慮,這里暫不考慮節(jié)拍脈沖t,也就是說微操作控制信號只是指令操作碼In和Bj的函數(shù):Cm = f(In,Bj)式中的In主要代表指令操作碼IR15.12,還有輔助操作碼(如算術(shù)邏輯指令時(shí)的IR2.0,我們這里要求只考慮指令操作碼IR15.12。Bj代表進(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é)果寫入目的寄存器
25、。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表示本條指令寫入目的寄存器的值來自讀存儲器。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_in
26、struct指示燈R4DRWr指示燈R5Mem_Write指示燈R6DW_intruct指示燈R7change_z 指示燈R8change_c指示燈R9sel_memdata指示燈R10三實(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à)很大。所以,硬連線控制器曾一
27、度被微程序控制器所取代。但是隨著新一代機(jī)器及VLSI技術(shù)的發(fā)展,這種控制器又得到了重視,如RISC機(jī)廣泛使用這種控制器。1. 組合邏輯控制器原理圖6-42 組合邏輯控制器的結(jié)構(gòu)方框圖圖6-42是組合邏輯控制器的結(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ù)。即Cm f ( In,Tk
28、,Bj )用這種方法設(shè)計(jì)控制器,需要根據(jù)每條指令的要求,讓節(jié)拍電位和時(shí)序脈沖有步驟地去控制機(jī)器的各有關(guān)部分,一步一步地執(zhí)行指令所規(guī)定的微操作,從而在一個(gè)指令周期內(nèi)完成一條指令所規(guī)定的全部操作。一般來說,組合邏輯控制器的設(shè)計(jì)步驟如下。(1)繪制指令流程圖為了確定指令執(zhí)行過程所需的基本步驟,通常是以指令為綱,按指令類型分類,將每條指令歸納成若干微操作,然后根據(jù)操作的先后次序畫出流程圖。(2)安排指令操作時(shí)間表指令流程圖的進(jìn)一步具體化,把每一條指令的微操作序列分配到各個(gè)機(jī)器周期的各個(gè)時(shí)序節(jié)拍信號上。要求盡量多的安排公共操作,避免出現(xiàn)互斥。(3)安排微命令表以指令流程圖為依據(jù),表示出在哪個(gè)機(jī)器周期的哪
29、個(gè)節(jié)拍有哪些指令要求哪些微命令。(4)進(jìn)行微操作邏輯綜合根據(jù)微操作時(shí)間表,將執(zhí)行某一微操作的所有條件(哪條指令、哪個(gè)機(jī)器周期、哪個(gè)節(jié)拍和脈沖等)都考慮在內(nèi),加以分類組合,列出各微操作產(chǎn)生的邏輯表達(dá)式,并加以簡化。(5)實(shí)現(xiàn)電路根據(jù)上面所得邏輯表達(dá)式,用硬件電路模塊來實(shí)現(xiàn)。四譯碼器的設(shè)計(jì)思路 1、設(shè)計(jì)指令系統(tǒng)首先要設(shè)計(jì)指令系統(tǒng)。ADD DR,SR指令編碼:0000 DR SR0000 0111功能:DR DR + SR, 影響C Z標(biāo)志。PC PC + 1。INC DR指令編碼:0001 DR SR0000 0111功能:DR DR + 1,影響C和Z標(biāo)志。PC PC + 1。SUB DR,SR
30、指令編碼:0010 DR SR0000 0111功能:DR DR SR,影響C和Z標(biāo)志。PC PC + 1DEC DR指令編碼:0011 DR SR0000 0111功能:DR DR 1,影響C和Z標(biāo)志。PC PC + 1。AND DR,SR指令編碼:0100 DR SR0000 0011功能:DR DR and SR,影響Z標(biāo)志。PC PC + 1。OR DR,SR指令編碼:0101 DR SR0000 0011功能:DR DR or SR,影響Z標(biāo)志。PC PC + 1。NOT DR指令編碼:0110 DR SR0000 0011功能:DR not DR,影響Z標(biāo)志。PC PC + 1。M
31、OV DR,SR指令編碼:0111 DR SR0000 0001功能:DR SR,不影響標(biāo)志位。PC PC + 1。JMP ADR指令編碼:1000 00000000 0000 ADR功能:PC ADR。JNC ADR 指令編碼:1001 0000ADR - -1功能:如果C=0,則PC ADR;如果C=1,則PC PC + 1。 JNZ ADR指令編碼:1010 0000ADR - -1功能:如果Z=0,則PC ADR;如果Z=1,則PC PC + 1。MVRD DR,DATA指令編碼:1100 DR 000000 0000 DATA功能:DR DATA。PC PC + 2。LDR DR,S
32、R指令編碼:1101 DR SR0000 0001功能:DR SR。PC PC + 1。STR SR,DR 指令編碼:1110 DR SR0000 0000功能:DR SR。PC PC + 1。NOP 指令編碼:0111 00000000 0000功能:PCPC+1新增指令:PUSH指令編碼:1110 DR SR0000 0000功能:向內(nèi)存中中寫入數(shù)據(jù),即壓棧操作。POP指令編碼:1101 DR SR0000 0001功能:從內(nèi)存中讀出數(shù)據(jù),即出棧操作。1、 op_code的擴(kuò)展,由原來3位變成5位,目的是為了PUSH和POP的引入。op_code(4 downto 2)為原來op_code
33、,op_code(1 downto 0)為IR(5 downto 4),后兩位區(qū)分STR和PUSH,LDR和POP指令。當(dāng)op_code(1 downto 0)為11時(shí),執(zhí)行對壓棧彈棧操作。2、 將PUSH和POP兩條指令與STR和LDR兩條指令相結(jié)合,容易發(fā)現(xiàn),PUSH和STR指令的區(qū)別在于,STR是從寄存器DR中提取內(nèi)存的地址,而PUSH是從另設(shè)的寄存器中提取的地址,同為對內(nèi)存的寫操作,兩者僅在t2階段的執(zhí)行有區(qū)別。而POP和LDR的區(qū)別也類似,POP是將棧頂指針減一所指的內(nèi)存地址中存放的數(shù)據(jù)放入寄存器中,而LDR是將SR寄存器中存的內(nèi)存地址中的數(shù)據(jù)放入寄存器中,同為對內(nèi)存的讀操作。五設(shè)計(jì)
34、方案1、一條指令執(zhí)行需要3拍時(shí)間t1 取指。在t2的上升沿,將從存儲器取出的指令寫入指令寄存器IR。t2根據(jù)指令寄存器IR的內(nèi)容進(jìn)行指令譯碼;根據(jù)指令譯碼得到的控制信號進(jìn)行運(yùn)算和其它操作。t3存儲器讀、寫操作;在t3的下降沿將運(yùn)算結(jié)果寫入目的寄存器,改變C標(biāo)志和Z標(biāo)志;在t3的下降沿,改變PC的值,為取下一條指令做好準(zhǔn)備。由于取指階段和存儲器讀寫階段都要訪問存儲器,速度較慢;而指令譯碼和運(yùn)算都由CPU本身完成,因此取指階段和存儲器讀寫階段各占一拍時(shí)間,指令譯碼和運(yùn)算共占一拍時(shí)間。實(shí)驗(yàn)CPU的總體構(gòu)成實(shí)驗(yàn)CPU由5部分組成:取指部分instru_fetch、指令譯碼部分decoder_unit、
35、執(zhí)行部分exe_unit、存儲器部分memory_unit和通用寄存器組fegfile。另外,還有一個(gè)程序包exe_cpu_components,將各低層設(shè)計(jì)實(shí)體作為元件存儲,供各設(shè)計(jì)實(shí)體使用。頂層設(shè)計(jì)實(shí)體exe_cpu完成5個(gè)組成部分的連接。六 實(shí)驗(yàn)步驟(1)實(shí)驗(yàn)臺設(shè)置成FPGA-CPU獨(dú)立調(diào)試模式REGSEL = 0、CLKSEL = 1、FDSEL = 0。使用實(shí)驗(yàn)臺上的單脈沖,即STEP_CLK短路子短接,短路子RUN_CLK斷開。(2)將設(shè)計(jì)在Quartus 下輸入,編譯后下載到TEC-CA上的FPGA中。(3)撥動實(shí)驗(yàn)臺上的開關(guān)SD5SD0,改變IR15.12、進(jìn)位標(biāo)志C和結(jié)果為0
36、標(biāo)志Z,觀察指示燈R10-R0顯示的控制信號,并填寫表6-28和表6-29。七 實(shí)驗(yàn)過程及結(jié)果譯碼器是控制器的一個(gè)重要組成部分。而要進(jìn)行譯碼器的設(shè)計(jì),首先應(yīng)有碼可譯,即須進(jìn)行指令系統(tǒng)的設(shè)計(jì)。由于采用硬布線系統(tǒng),故應(yīng)先在數(shù)據(jù)通路上排出每條指令的指令周期流程,并把流程中的每一步操作分解成微操作序列,然后為每一個(gè)微操作分配時(shí)間,列出微操作對應(yīng)的微命令操作時(shí)間表,寫出微命令的最簡邏輯表達(dá)式,最終用電路實(shí)現(xiàn)。實(shí)驗(yàn)時(shí),在原有指令的基礎(chǔ)上,按照實(shí)驗(yàn)要求,考慮了PUSH SR,POP DR,CALL ADDR和RET指令,并相應(yīng)設(shè)計(jì)了譯碼器。實(shí)驗(yàn)中遇到了困難主要是編寫的程序一直無法通過。經(jīng)過查閱了大量資料后,
37、終于編寫出正確的程序,完成了實(shí)驗(yàn)要求。加上附加的4條指令后,該實(shí)驗(yàn)中指令條數(shù)達(dá)到了17條。因此指令操作碼字段應(yīng)擴(kuò)展為5位,對應(yīng)地,IR也為5位。對應(yīng)指令的微操做系統(tǒng)已經(jīng)寫在上面的表格中。存儲指令譯碼分析以上圖為例,指令寄存器中的指令為1110111000000000(即STR R2 R3,存儲指令),譯出的Mem_Write為1表示本條指令有存儲器寫操作,存儲器的地址是源寄存器的內(nèi)容。譯出的操作碼op_code為1111(非算術(shù)操作),譯出的目的操作數(shù)寄存器DR為11(即R3),源操作數(shù)寄存器SR均為10(即R2),change_c和change_z等其他無關(guān)標(biāo)志均為無效。轉(zhuǎn)移指令譯碼分析以上
38、圖為例,指令寄存器中的指令為1010000001010101(即JNZ 55H,條件轉(zhuǎn)移指令),譯出的條件轉(zhuǎn)移標(biāo)志zj_instruct為1表示本條指令是條“JNZ ADR”指令,譯出的操作碼op_code為1111(非算術(shù)操作),譯出的條件轉(zhuǎn)移指令轉(zhuǎn)移地址所需要的16位相對地址r_sjmp_addr為0000000001010101(單獨(dú)測試此指令時(shí)PC為0)。change_c和change_z等其他無關(guān)標(biāo)志均為無效。運(yùn)算指令譯碼分析以上圖為例,指令寄存器中的指令為0000000010000111(即指令MUI R0,R0,令R0與R0相乘),譯出的操作碼op_code為1000(執(zhí)行單元的乘法的操
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024至2030年中國干粉式膠粘復(fù)合機(jī)數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國外衣行業(yè)投資前景及策略咨詢研究報(bào)告
- 2024至2030年中國親水型氨基硅油數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國丙酰苯胺數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024至2030年中國PVC無毒粒料數(shù)據(jù)監(jiān)測研究報(bào)告
- 2024年中國鞋口市場調(diào)查研究報(bào)告
- 2024年中國重負(fù)荷純油切削油市場調(diào)查研究報(bào)告
- 2024年中國珍珠眼貼膜市場調(diào)查研究報(bào)告
- 2024年中國大口徑中空纏繞管機(jī)組市場調(diào)查研究報(bào)告
- 2024年中國雙層小童毯市場調(diào)查研究報(bào)告
- (完整版)《春江花月夜》課件PPT
- 通信用閥控式密封鉛酸蓄電池
- 藍(lán)色卡通班委競選主題班會PPT模板
- 金融行業(yè)視頻監(jiān)控聯(lián)網(wǎng)解決方案
- 腳手架及模板工程安全培訓(xùn)課件
- 遺傳性痙攣性截癱duwanliang
- 上海教師招聘考試:中小學(xué)音樂學(xué)科專業(yè)知識考試真題及答案
- 武術(shù)劍術(shù)組合
- 隧道施工控制要點(diǎn)及措施ppt課件
- 公共衛(wèi)生科工作規(guī)劃[新].doc
- (完整)斷路器調(diào)試報(bào)告
評論
0/150
提交評論