計算機組成原理實驗報告_第1頁
計算機組成原理實驗報告_第2頁
計算機組成原理實驗報告_第3頁
計算機組成原理實驗報告_第4頁
計算機組成原理實驗報告_第5頁
已閱讀5頁,還剩11頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上計算機組織與體系結構實 驗 報 告評 語:成績教 師: 年 月 日班 級: _學 號: _姓 名: _實驗地點: E-區 311 _實驗時間: 第三批 實驗一 存儲器實驗1FPGA中LPM_ROM定制與讀出實驗一實驗目的1、掌握FPGA中lpm_ROM的設置,作為只讀存儲器ROM的工作特性和配置方法。2、用文本編輯器編輯mif文件配置ROM,學習將程序代碼以mif格式文件加載于lpm_ROM中;3、在初始化存儲器編輯窗口編輯mif文件配置ROM;4、驗證FPGA中mega_lpm_ROM的功能。二實驗原理ALTERA的FPGA中有許多可調用的LPM (Library

2、Parameterized Modules)參數化的模塊庫,可構成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存儲器結構。CPU中的重要部件,如RAM、ROM可直接調用他們構成,因此在FPGA中利用嵌入式陣列塊EAB可以構成各種結構的存儲器,lpm_ROM是其中的一種。lpm_ROM有5組信號:地址信號address 、數據信號q 、時鐘信號inclock、outclock、允許信號memenable,其參數都是可以設定的。由于ROM是只讀存儲器,所以它的數據口是單向的輸出端口,ROM中的數據是在對FPGA現場配置時,通過配置文件一起寫入存儲單元的。圖3-1

3、-1中的lpm_ROM有3組信號:inclk輸入時鐘脈沖;q23.0lpm_ROM的24位數據輸出端;a5.0lpm_ROM的6位讀出地址。實驗中主要應掌握以下三方面的內容: lpm_ROM的參數設置; lpm_ROM中數據的寫入,即LPM_FILE初始化文件的編寫; lpm_ROM的實際應用,在GW48_CP+實驗臺上的調試方法。三實驗步驟(1)用圖形編輯,進入mega_lpm元件庫,調用lpm_rom元件,設置地址總線寬度address和數據總線寬度q,分別為6位和24位,并添加輸入輸出引腳,如圖3-1-1設置和連接。(2)設置圖3-1-1為工程。(3)在設置lpm_rom數據參數選擇項l

4、pm_file的對應窗口中(圖3-1-2),用鍵盤輸入lpm_ROM配置文件的路徑(rom_a.mif),然后設置在系統ROM/RAM讀寫允許,以便能對FPGA中的ROM在系統讀寫。(4) 用初始化存儲器編輯窗口編輯lpm_ROM配置文件(文件名.mif)。這里預先給出后面將要用到的微程序文件:rom_a.mif 。rom_a.mif中的數據是微指令碼(圖3-1-3)。(5)全程編譯。(6)下載SOF文件至FPGA,改變lpm_ROM的地址a5.0,外加讀脈沖,通過實驗臺上的數碼管比較讀出的數據是否與初始化數據(rom_a.mif中的數據)一致。圖3-1-1 lpm_ROM的結構圖圖3-1-2

5、 設置在系統ROM/RAM讀寫允許四、實驗結果 通過電路板1,2鍵的輸入和模式鍵的選擇進行操作驗證 實驗二 運算器實驗1算術邏輯運算實驗一實驗目的1. 了解簡單運算器的數據傳輸通路。2. 驗證運算功能發生器的組合功能。3. 掌握算術邏輯運算加、減、與的工作原理。4. 驗證實驗臺運算的8位加、減、與、直通功能。5. 按給定數據,完成幾種指定的算術和邏輯運算。二實驗內容1實驗原理算術邏輯單元ALU的數據通路如圖2-1所示。其中運算器ALU181根據74LS181的功能用VHDL硬件描述語言編輯而成,構成8位字長的ALU。參加運算的兩個8位數據分別為A7.0和B7.0,運算模式由S3.0的16種組合

6、決定,而S3.0的值由4位2進制計數器LPM_COUNTER產生,計數時鐘是Sclk(圖2-1);此外,設M=0,選擇算術運算,M=1為邏輯運算,CN為低位的進位位;F7.0為輸出結果,CO為運算后的輸出進位位。兩個8位數據由總線IN7.0分別通過兩個電平鎖存器74373鎖入,ALU功能如表2-1所示。表2-1ALU181的運算功能選擇端高電平作用數據S3 S2 S1 S0M=HM=L 算術操作邏輯功能Cn=L(無進位)Cn=H(有進位)0 0 0 00 0 0 1加10 0 1 0+10 0 1 1減1(2的補碼)0 1 0 0加10 1 0 1加加+10 1 1 00 1 1 11 0 0

7、 0加11 0 0 1加11 0 1 0加11 0 1 11 1 0 0*1 1 0 1加11 1 1 0加11 1 1 1注1、* 表示每一位都移至下一更高有效位, “+”是邏輯或,“加”是算術加注2、在借位減法表達上,表2-1與標準的74181的真值表略有不同。三實驗步驟(1)設計ALU元件在Quartus II 環境下,用文本輸入編輯器Text Editor輸入ALU181.VHD算術邏輯單元文件,編譯VHDL文件,并將ALU181.VHD文件制作成一個可調用的原理圖元件。其中VHDL語言如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IE

8、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY ALU181 IS PORT ( S : IN STD_LOGIC_VECTOR(3 DOWNTO 0 ); A : IN STD_LOGIC_VECTOR(7 DOWNTO 0); B : IN STD_LOGIC_VECTOR(7 DOWNTO 0); F : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); M : IN STD_LOGIC; CN : IN STD_LOGIC; CO : OUT STD_LOGIC );END ALU181;ARCHITECTURE behav OF ALU181 IS

9、SIGNAL A9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL B9 : STD_LOGIC_VECTOR(8 DOWNTO 0);SIGNAL F9 : STD_LOGIC_VECTOR(8 DOWNTO 0);BEGIN A9 <= '0' & A ; B9 <= '0' & B ; PROCESS(M,CN,A9,B9) BEGIN CASE S IS WHEN "0000" => IF M='0' THEN F9<=A9 + CN ; ELSE F

10、9<=NOT A9; END IF; WHEN "0001" => IF M='0' THEN F9<=(A9 or B9) + CN ; ELSE F9<=NOT(A9 OR B9); END IF; WHEN "0010" => IF M='0' THEN F9<=(A9 or (NOT B9)+ CN ; ELSE F9<=(NOT A9) AND B9; END IF; WHEN "0011" => IF M='0' THEN F9

11、<= "" - CN ; ELSE F9<="" END IF; WHEN "0100" => IF M='0' THEN F9<=A9+(A9 AND NOT B9)+ CN ; ELSE F9<=NOT (A9 AND B9); END IF; WHEN "0101" => IF M='0' THEN F9<=(A9 or B9)+(A9 AND NOT B9)+CN ; ELSE F9<=NOT B9; END IF; WHEN

12、"0110" => IF M='0' THEN F9<=(A9 - B9) - CN ; ELSE F9<=A9 XOR B9; END IF; WHEN "0111" => IF M='0' THEN F9<=(A9 or (NOT B9) - CN ; ELSE F9<=A9 and (NOT B9); END IF; WHEN "1000" => IF M='0' THEN F9<=A9 + (A9 AND B9)+CN ; ELSE

13、 F9<=(NOT A9)and B9; END IF; WHEN "1001" => IF M='0' THEN F9<=A9 + B9 + CN ; ELSE F9<=NOT(A9 XOR B9); END IF; WHEN "1010" => IF M='0' THEN F9<=(A9 or(NOT B9)+(A9 AND B9)+CN ; ELSE F9<=B9; END IF; WHEN "1011" => IF M='0' TH

14、EN F9<=(A9 AND B9)- CN ; ELSE F9<=A9 AND B9; END IF; WHEN "1100" => IF M='0' THEN F9<=(A9 + A9) + CN ; ELSE F9<= "" END IF; WHEN "1101" => IF M='0' THEN F9<=(A9 or B9) + A9 + CN ; ELSE F9<=A9 OR (NOT B9); END IF; WHEN "1110&q

15、uot; => IF M='0' THEN F9<=(A9 or (NOT B9) +A9) + CN ; ELSE F9<=A9 OR B9; END IF; WHEN "1111" => IF M='0' THEN F9<=A9 - CN ; ELSE F9<=A9 ; END IF; WHEN OTHERS => F9<= "" ; END CASE; END PROCESS; F<= F9(7 DOWNTO 0) ; CO <= F9(8) ;END be

16、hav;(2)以原理圖方式建立頂層文件工程選擇圖形方式。根據圖2-1輸入實驗電路圖,從Quartus II的基本元件庫中將各元件調入圖形編輯窗口、連線,添加輸入輸出引腳。將所設計的圖形文件ALU.bdf保存到原先建立的文件夾中,將當前文件設置成工程文件,以后的操作就都是對當前工程文件進行的。(3)器件選擇選擇Cyclone系列,在Devices中選擇器件EP1C6QC240C8。編譯,引腳鎖定,再編譯。引腳鎖定后需要再次進行編譯,才能將鎖定信息確定下來,同時生成芯片編程/配置所需要的各種文件。(4)芯片編程Programming(可以直接選擇光盤中的示例已完成的設計進行驗證實驗)打開編程窗口。

17、將配置文件ALU.sof下載進GW48系列現代計算機組成原理系統中的FPGA中。(5)選擇實驗系統的電路模式是NO.0,驗證ALU的運算器的算術運算和邏輯運算功能根據表2-1,從鍵盤輸入數據A7.0和B7.0,并設置S3.0、M、Cy,驗證ALU運算器的算術運算和邏輯運算功能,記錄實驗數據。圖2-1 算術邏輯單元ALU實驗原理圖四實驗過程(1)按圖2-1所示,在本驗證性示例中用數據選擇開關(鍵3控制)的高/低電平選擇總線通道上的8位數據進入對應的74373中;即首先將鍵3輸入高電平,用鍵2、鍵1分別向A7.0 置數(55H),這時在數碼管4/3上顯示輸入的數據(55H);然后用鍵3輸入低電平,

18、再用鍵2、鍵1分別向B7.0置數(AAH),這時在數碼管2/1上顯示輸入的數據(AAH);這時表示在圖2-1中的兩個74373鎖存器中分別被鎖入了加數55H和被加數AAH。可雙擊圖2-1的ALU181元件,了解其VHDL描述。(2)設定鍵8為低電平,即M=0(允許算術操作),鍵6控制時鐘SCLK,可設置表2-1的S3.0=0 F?,F連續按動鍵6,設置操作方式選擇S3.0=9(加法操作),使數碼管8顯示9,以驗證ALU的算術運算功能: 當鍵7設置cn=0(最低位無進位)時,數碼管7/6/5=0FF(55H+AAH=0FFH);當鍵7設置cn=1(最低位有進位)時,數碼管7/6/5=100(55H

19、+AAH+1=100H);(3)若設定鍵8為高電平,即M=1,鍵KEY6控制時鐘SCLK,設置S3.0=0F,KEY7設置cn=0或cn=1,驗證ALU的邏輯運算功能,并記錄實驗數據。 (4) 驗證ALU181的算術運算和邏輯運算功能,ALU181模塊功能可參照表2-1。五、實驗結果表2-2S3 S2 S1 S0A7.0B7.0算術運算 M=0邏輯運算(M=1)cn=0(無進位)cn=1(有進位)0000AA55F=( AA ) F=( AB ) F=( 55 ) 0001AA55F=( FF ) F=( 00 ) F=( 00 ) 0010AA55F=( AA ) F=( AB ) F=(

20、55 ) 0011AA55F=( 00 ) F=( FF ) F=( 00 ) 0100FF01F=( FD ) F=( FE ) F=( FE ) 0101FF01F=( FD ) F=( FE ) F=( FE ) 0110FF01F=( FE ) F=( FD ) F=( FE ) 0111FF01F=( FF ) F=( FE ) F=( FE ) 1000FFFFF=( FE ) F=( FF ) F=( 00 ) 1001FFFFF=( FE ) F=( FF ) F=( FF ) 1010FFFFF=( FE) F=( FF ) F=( FF ) 1011FFFFF=( FF )

21、 F=( FE ) F=( FF ) 11005501F=( AA ) F=( AB ) F=( 01 ) 11015501F=( AA ) F=( AB ) F=( FF ) 11105501F=( 54 ) F=( 55 ) F=( 55 ) 11115501F=( 55 ) F=( 54 ) F=( 55 ) 六、實驗心得掌握了運算器的傳輸和計算方法。 實驗三 時序與數據通路實驗 節拍脈沖發生器時序電路實驗 在計算機中,機器指令的執行一般分三個階段:取指令、分析指令、執行指令。每一階段的執行都需要耗費一定的時間。到目前為止,無論采用什么樣的控制器結構(如流水、矩陣等),上述三個階段都不能

22、完全并行,總是有一定的執行順序。如何控制這個順序,安排各階段的執行時間,決定何時那些部件動作等等,都由控制器中的時序電路部件來控制使其周而復始的、有條不紊的工作。這一單元實驗內容就是設計控制器中的時序電路部件。一.實驗目的 (1)掌握節拍脈沖發生器的設計方法和工作原理. (2)理解節拍脈沖發生器的工作原理.二.實驗原理單步節拍發生電路圖所示的單步運行電路。該電路每當RST1出現一個負脈沖后,僅輸出一組T1、T2、T3、T4節拍信號,直到RST1出現下一個負脈沖,波形如圖所示。示例工程文件是T5.bdf。硬件實驗驗證方法如圖所示,下載T5.SOF 文件,選擇實驗模式1,Clock0接4Hz(選擇

23、范圍是1Hz-50MH),鍵8控制RST1。每出現一個負脈沖,發光管1、2、3、4分別顯示T1、T2、T3、T4的輸出電平一次節拍脈沖發生器的工作原理圖T1T4以及CLK1 ,RST1的工作波形如圖,示例工程文件是T4.bdf.硬件實驗驗證方法如圖4-1-1所示,選擇實驗模式1,Clock0接4Hz,鍵8控制RST1,高電平時可以看到,發光管1,2,3,4分別顯示T1,T2,T3,T4的輸出電平 實驗四 微控制器實驗 程序計數器PC與地址寄存器AR實驗一.實驗目的 1.掌握地址單元的工作原理. 2.掌握的兩種工作方式,加1計數和重裝計數器初值的實現方法. 3.掌握地址寄存器從程序計數器獲得數據

24、和從內部總線獲得數據的實現方法.二.實驗原理 地址單元主要有三部分組成:地址寄存器和多路開關. 程序計數器PC用以指出下一條指令在主存中的存放地址,CPU正是根據PC的內容去存取指令的.因程序中指令是順序執行的,所以PC有自增的功能.在LDPC信號的作用下可以預置計數器的初值.當LDPC為高電平時,計數器裝入data 端輸入的數據.aclr是計數器的清0端,高電平有效(高電平清零);aclr為低電平時,允許計數器正常計數.程序計數器電路圖地址寄存器AR(74273)鎖存訪問內存SRM的地址.273中的地址來自兩個渠道.一是程序計數器PC的輸出,通常是下一條指令的地址;二是來自于內部數據總線的數

25、據,通常是被訪問操作數的地址.為了實現對兩路輸入數據的切換,在FPGA的內部通過總線多路開關BUSMUX進行選擇.LDAR與多路選擇器的sel相連,當LDAR為低電平,選擇程序計數器的輸出;當LDAR為高電平時,選擇內部數據總線的數據.程序計數器仿真波形三.實驗步驟 1.按照圖42-1程序計數器的原理圖編輯,輸入電路,實驗臺選擇模式0.對輸入原理圖進行編譯,引腳鎖定,并下載到實驗臺.示例工程文件是PC_unit.bdf.硬件實驗方法實驗驗證.實驗說明:(1).下載pc_unit.sof;(2).用模式鍵選模式”0”,再按一次右側的復位鍵;(3).用鍵2和鍵1可輸入8位總線數據B7.0,CLR(

26、鍵5)按2次(01-0),產生一正脈沖,高電平清零;LDAR(鍵6)=0時,BUSMUX輸出程序計數器PC的值;LDAR=1時,BUSMUX輸出B7.0總線數據.LDPC(鍵7):程序計數器PC預置控制端,當LDPC=1時,將B7.0總線數據裝入程序計數器PC;當LDPC=0時,程序計數器PC處于計數激動工作狀態,對T4進行計數;T4(鍵8):程序計數器PC的計數器PC的計數時鐘CLK,鍵8按動兩次產生一個計數脈沖.2.通過B7.0設置程序計數器的預加載數據.當LDPC=0時,觀察程序計數器自動加1的功能;LDPC=1時,觀察程序計數器加載輸出情況.示例操作:1. 所有鍵置0,鍵2/1輸入A5

27、;按鍵5PC計數器清零(010);2. 連續按動鍵8次,可以從數碼8/7上看到AR的輸出,即PC值;3. 按鍵61,選通直接輸出總線上的數據A5作為PC值,按鍵8,產生一個脈沖上升沿,即可看到AR(顯示在數碼8/7)的輸出為A5;4. 使鍵6=0,仍選通PC計數器輸出,這時鍵2/1輸入86,按鍵7產生一個上升脈沖(010),即用LDPC將86加載進PC計數器;連續按動鍵8,可以發現AR的輸出在86上累加輸出:86、87、88等。四、實驗結果 結果用電路板調試觀測。五、實驗心得本次試驗掌握節拍脈沖發生器的設計方法和工作原理.理解節拍脈沖發生器的工作原理.掌握地址單元的工作原理及其兩種工作方式,加

28、1計數和重裝計數器初值的實現方法.掌握地址寄存器從程序計數器獲得數據和從內部總線獲得數據的實現方法。實驗五 總線控制器實驗一實驗目的1理解總線的概念及特性。 2掌握總線傳輸控制特性。二實驗原理1總線的基本概念總線是多個系統部件之間進行數據傳輸的公共通路,是構成計算機系統的骨架。借助總線連接,計算機在系統各部件之間實現傳送地址、數據和控制信息的操作。所謂總線就是指能為多個功能部件服務的一組公用信息線。數據輸入開關地址寄存器AR存儲器RAM數碼管LED寄存器R0SW-BLDARCSW/RLED-BW/RR0-BLDR0總線圖5-1 總線實驗傳輸框圖2實驗原理實驗所用總線實驗傳輸框圖如圖5-1所示。

29、它將幾種不同的設備掛在總線上,有存儲器、輸入設備、輸出設備、寄存器。這些設備在傳統的系統中需要有三態輸出控制,然而在FPGA的內部沒有三態輸出控制結構,因此必須采用總線輸出多路開關結構加以控制。按照傳輸要求恰當有序地控制它們,就可以實現總線信息傳輸。三實驗內容(1)實驗電路如圖5-2所示。與總線連接的基本部件有:輸入設備input可輸入8位數據、數據寄存器、雙端口SRAM存儲器容量為256×8B、地址寄存器AR和輸出寄存器out可接LED數碼管 圖5-2 總線控制實驗線路圖寫使能WE=1允許寫,WE=0禁止寫,允許讀;inclock為數據DATA鎖存時鐘。圖5-4是總線控制的時序仿真

30、波形圖。圖5-3 總線控制的時序仿真波形圖1實驗要求根據掛在總線上的幾個基本部件,設計一個簡單的流程。(1)輸入設備將數據送入寄存器R0。(2)輸入設備將另一個數據打入地址寄存器AR。(3)將寄存器R0中的數據寫到當前地址的存儲器中。(4)將當前地址的存儲器中的數用數碼管顯示。2實驗步驟(4)、工程文件是BUS-4.bdf,下載BUS-4.sof到實驗臺的FPGA中;(5)、實驗內容1,根據圖5-4完成實驗操作:選擇實驗模式“0”;再按一次右側的復位鍵(用一接線將實驗板上鍵9的輸入端插針與適配板上FPGA的第P196針相連,以便能用鍵9控制OUT鎖存器的時鐘;):初始狀態;1、鍵4、鍵3控制設

31、備選擇端:sel1.0=00(鍵4/鍵3=00,);2、此時由鍵2/鍵1輸入的數據(26H,顯示于數碼管2/1)直接進入BUS(數碼管8/7顯示),鍵5、6、7為低電平;3、鍵8=1(允許RAM寫入)完成圖5-4所示的操作:4、鍵5發正脈沖(0-1-0),將數據打入寄存器R0;5、鍵2/鍵1再輸入數據(如37H);6、鍵6發正脈沖(0-1-0),將數據打入地址寄存器AR;7、鍵2/鍵1再輸入數據(如48H);8、鍵7發正脈沖(0-1-0),將數據寫入RAM(此時必須鍵8輸出1,注意此時進入RAM的數據48H是放在地址37H單元的);9、鍵2/鍵1再輸入數據(如59H);10、鍵9發正脈沖(0-1-0),將數據寫入寄存器OUT(數碼管6/5將顯示此數);11、鍵4、鍵3分別選擇sel1.0=00、01、10、11,從數碼管8/7上觀察被寫入的各寄存器中的數據。(6)、實驗內容2:先將數據28H寫入RAM的地址(4AH),再將數據1BH送進R0,最后將剛才寫入RAM中地址(4AH)的數據讀出送到OUT口。依據總線電路圖5-3,操作如下:1、用一接線將實驗板上鍵9的輸入端插針與適配板上FPGA的第P196針相連,以便能用鍵9控制OUT鎖存器的時鐘;鍵3、4、5、6、7、8都為低電平,使鍵4/

溫馨提示

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

評論

0/150

提交評論