第一篇:組成原理實驗總結報告
2010-2011-1
計算機組成原理實驗報告
課程名稱 : 學院(系): 專 業(yè) : 班 級 : _ 指導教師 : 學 號 : 姓 名 : _ ___
計算機組成原理實驗
計算機科學與技術學院
計算機科學與技術 _ 計科082 __ 寧愛華 2008311020 __
通過本實驗課程訓練,我熟悉了典型計算機的基本結構、基本組成和基本功能,掌握了計算機主要組成部件工作原理的基本分析與設計方法,使我對典型計算機系統(tǒng)的分析、設計、開發(fā)與使用能力得到訓練與提高,在同時學習計算機組成原理這門課程的同時,也加深了對本專業(yè)課程的學習理解程度。當然,也對計算機各主要組成部件相互間的有機聯(lián)系有了較全面的理解;鍛煉了實驗技能、創(chuàng)新能力、科研能力及解決實際問題方面的能力。
總結了一下這學期的組成原理實驗,使我對CPU的結構有了更深的認識,CPU(中央處理器)由運算器和控制器組成,運算器的功能是加工信息包括算術運算和邏輯運算。主要由算術邏輯單元ALU 和寄存器組成??刂破骺梢援a生控制命令來控制全機操作,由微指令產生微命令來產生微程序。從微程序的設計及運行了解了數(shù)據(jù)通路控制方式,計算機數(shù)據(jù)通路的控制將由微程序控制器來完成,CPU 從內存中取出一條機器指令到指令執(zhí)行結束的一個指令周期全部由微指令組成的序列來完成,即一條機器指令對應一個微程序。
從運算器實驗中.掌握了簡單運算器的數(shù)據(jù)傳送通路。驗證帶進位運算及進位鎖存功能時,使我對帶進位這個概念透徹的理解了,我記得當次實驗并沒有注意的一個細節(jié),例如:做加法運算,首先向DR1、DR2 置數(shù),然后使ALU-B=0,S3 S2 S1 S0 M 狀態(tài)為1 0 0 1 0,此時數(shù)據(jù)總線上顯示的數(shù)據(jù)為DR1 加DR2 加當前進位標志,這個結果是否產生進位,則要由進位標志燈來顯示,若進位標志燈亮,表示無進位;反之,有進位。在移位運算器中,分清了帶進位循環(huán)左移或右移與循環(huán)左移或右移的的概念,循環(huán)右移,會把最后1位放到第一位,所以呢,循環(huán)右移會改變操作數(shù)的符號,如果是不帶進位,就會出現(xiàn)正數(shù)變負數(shù)的情況。如果帶進位的話,就是把負數(shù)看作是多一位的正數(shù),相當于溢出進位。
存儲器實驗中,通過查閱教材和相關資料,存儲器(Memory)是計算機系統(tǒng)中的記憶設備,用來存放程序和數(shù)據(jù)。計算機中的全部信息,包括輸入的原始數(shù)據(jù)、計算機程序、中間運行結果和最終運行結果都保存在存儲器中。它根據(jù)控制器指定的位置存入和取出信息。本實驗涉及到的是靜態(tài)隨機存取存儲器RAM,與只讀存儲器相比,隨機存取存儲器最大的優(yōu)點是存取方便、使用靈活,既能不破壞地讀出所存信息,又能隨時寫入新的內容。它可以在任意時刻,對任意選中的存儲單元進行信息的存入(寫入)或取出(讀出)操作。如遇停電,所存內容便全部丟失為其缺點。
在微控制器實驗中,掌握了微程序的設計思想和組成原理,微程序控制的基本思想,就是仿照通常的解題程序的方法,把所有的控制命令信號匯集在一起編碼成所謂的微指令,再由微指令組成微程序,存放在一個EPROM 里。系統(tǒng)運行時,一條又一條地讀出這些微指令,產生執(zhí)行部件所需要的各種控制信號,從而驅動執(zhí)行部件進行所規(guī)定的操作??刂破魍ㄟ^一條條控制線向執(zhí)行部件發(fā)出各種控制命令,我們把這些控制命令叫做微命令。而執(zhí)行部件接受微命令所執(zhí)行的操作叫做微操作。在系統(tǒng)的一個基本狀態(tài)周期中,一組實現(xiàn)一定操作功能的微命令的組合,微程序是由若干條微指令組成的序列。在計算機中,一條機器指令的功能可由若干條指令組成的微程序來解釋和執(zhí)行。微程序控制器的結構。由控制存儲器、微地址寄存器、微命令寄存器和地址轉移邏輯幾部分組成。微地址寄存器和微命令寄存器兩者的總長度即為一條微指令的長度,二者合在一起稱為微指令寄存器。在模型機實行的實驗中,了解到部件實驗過程中,各部件單元的控制信號是人為模擬產生的,而本次實驗將能在微程序控制下自動產生各部件單元控制信號,實現(xiàn)特定指令的功能。這里,計算機數(shù)據(jù)通路的控制將由微程序控制器來完成,CPU 從內存中取出一條機器指令到指令執(zhí)行結束的一個指令周期全部由微指令組成的序列來完成,即一條機器指令對應一個微程序。還有控制器就是專用于完成此項工作的,它負責協(xié)調并控制計算機個部件執(zhí)行程序的指令序列,其基本功能是取指令,分析指令和執(zhí)行指令。在做本實驗之前,以為PC只有計數(shù)功能,通過本實驗,還了解到PC存放現(xiàn)行指令的地址,IR存放現(xiàn)行指令。通過本程序的指令流水,不禁感嘆如此復雜的指令程序竟然按照順序一部一部的進行下去了。
通過這次課程,我主要有以下幾點收獲:體會到了學習和研究中,團隊協(xié)作的優(yōu)勢,如果沒有和同學一起討論交流,可能大家都很難比較快速和透徹地理解實驗中的原理 ;感受到提出猜想、與大家討論并通過實驗證實自己猜想的快樂,并且能夠寓教于樂;鞏固了之前所學的組成原理的知識,通過這次課程中的討論和實踐,我更加透徹地了解了計算機主要組成部件工作原理。通過這個學期的學習,我了解了更多有關計算機組成原理實驗方面的知識,雖然我知道自己還有很多欠缺,但是我相信通過自己努力肯定會學好這些知識的,無論多困難,都要自己好好學,什么都會好的。
在老師的幫助下,我知道了更深一層的計算機的內部和外部結構和它的深層知識,它是我們以前學的知識中最接近計算機的一門學科,所以它是基礎也是重點,更是我們對計算機從軟件到硬件方向上的最佳轉變機會,我在學期初也決定要好好學習它??粗車瑢W對組成原理實驗的熱情,我自己也深受鼓舞,所以在思想上和行動上,我都要求自己去付出努力和汗水。在每次實驗課之前都會預習,還會根據(jù)教材來看相關的知識點。
在學習組成原理實驗時有很多都不知道從何下手。當我通過自己查資料,在老師的講解和自己看書下,終于理解了這些理論知識,在我們平時的學習中,不僅僅需要付出而且也需要動力還有自己的抑制力,每個人都是會懶惰的,所以要養(yǎng)成勤奮的習慣,好好把握自己,不斷的去學習,不斷的要求進步。
組成原理這門課程作為計算機專業(yè)考研統(tǒng)考課程是非常重要的,而本實驗就是本課程的輔導課程,也是至關重要的,這門功課真的學到了很多東西,還有老師對我們的諄諄教誨,我會一直記憶在心。最后謝謝老師對我的指導和幫助,才能夠取得進步!
第二篇:計算機組成原理實驗
ALU設計
module ALU(ALU_OP,AB_SW,F_LED_SW,LED);
input[2:0] ALU_OP,AB_SW,F_LED_SW;
output[7:0] LED;reg[7:0] LED;
reg[31:0] A,B,F;reg OF,ZF;
always@(*)begin
end
always@(*)begin
ZF=0;OF=0;case(ALU_OP)
3'b000: begin F=A&B;end 3'b001: begin F=A|B;end 3'b010: begin F=A^B;end 3'b011: begin F=~(A|B);end 3'b100: begin {OF,F}=A+B;OF=OF^F[31];end 3'b101: begin {OF,F}=A-B;OF=OF^F[31];end 3'b110: begin F=A
3'b000: begin A=32'h0000_0000;B=32'h0000_0000;end 3'b001: begin A=32'h0000_0003;B=32'h0000_0607;end 3'b010: begin A=32'h8000_0000;B=32'h8000_0000;end 3'b011: begin A=32'h7FFF_FFFF;B=32'h7FFF_FFFF;end 3'b100: begin A=32'h8000_0000;B=32'hFFFF_FFFF;end 3'b101: begin A=32'hFFFF_FFFF;B=32'h8000_0000;end 3'b110: begin A=32'h1234_5678;B=32'h3333_2222;end 3'b111: begin A=32'h9ABC_DEF0;B=32'h1111_2222;end endcase endcase
if(F==32'b0)ZF=1;end
always@(*)begin
end case(F_LED_SW)
3'b000: LED=F[7:0];3'b001: LED=F[15:8];3'b010: LED=F[23:16];3'b011: LED=F[31:24];default:begin LED[7]=ZF;LED[0]=OF;LED[6:1]=6'b0;end endcase
endmodule 管腳配置
NET “AB_SW[0]” LOC = T10;NET “AB_SW[1]” LOC = T9;NET “AB_SW[2]” LOC = V9;NET “ALU_OP[0]” LOC = M8;NET “ALU_OP[1]” LOC = N8;NET “ALU_OP[2]” LOC = U8;NET “F_LED_SW[0]” LOC = V8;NET “F_LED_SW[1]” LOC = T5;NET “F_LED_SW[2]” LOC = B8;NET “LED[0]” LOC = U16;NET “LED[1]” LOC = V16;NET “LED[2]” LOC = U15;NET “LED[3]” LOC = V15;NET “LED[4]” LOC = M11;NET “LED[5]” LOC = N11;NET “LED[6]” LOC = R11;NET “LED[7]” LOC = T11;寄存器 module jicunqi(input Clk, input Reset, input [4:0] Reg_Addr, input Write_Reg, input [1:0] Sel, input AB, output reg [7:0] LED);reg [31:0] W_Data;wire [31:0] R_Data_A,R_Data_B,LED_Data;REG RU1(Clk,Reset,Reg_Addr,Reg_Addr,Reg_Addr,W_Data,Write_Reg,R_Data_A,R_Data_B);assign LED_Data=AB?R_Data_A : R_Data_B;always @(*)begin
W_Data=32'h0000_0000;
LED=8'b0000_0000;
if(Write_Reg)
begin
case(Sel)
2'b00: W_Data= 32'h1234_5678;
2'b01: W_Data= 32'h89AB_CDEF;2'b10: W_Data= 32'h7FFF_FFFF;2'b11: W_Data= 32'hFFFF_FFFF;endcase end
else
begin
case(Sel)
2'b00: LED=LED_Data[7:0];2'b01: LED=LED_Data[15:8];2'b10: LED=LED_Data[23:16];2'b11: LED=LED_Data[31:24];
endcase end end endmodule `timescale 1ns / 1ps // REG.v module REG(input Clk, input Reset, input [4:0] R_Addr_A, input [4:0] R_Addr_B, input [4:0] W_Addr, input [31:0] W_Data, input Write_Reg, output [31:0] R_Data_A, output [31:0] R_Data_B);
reg [31:0] REG_Files[0:31];integer i;
assign R_Data_A=REG_Files[R_Addr_A];assign R_Data_B=REG_Files[R_Addr_B];
always @(posedge Clk or posedge Reset)begin
if(Reset)
begin
for(i=0;i<=31;i=i+1)
REG_Files[i]<=32'h0000_0000;
end
else
begin
if(Write_Reg)
begin
REG_Files[W_Addr]<=W_Data;
end end end endmodule
管腳配置 NET “Clk” LOC=“C9”;NET “Reset” LOC=“D9”;NET “Reg_Addr[4]” LOC=“T5”;NET “Reg_Addr[3]” LOC=“V8”;NET “Reg_Addr[2]” LOC=“U8”;NET “Reg_Addr[1]” LOC=“N8”;NET “Reg_Addr[0]” LOC=“M8”;NET “Write_Reg” LOC=“V9”;NET “Sel[1]” LOC=“T9”;NET “Sel[0]” LOC=“T10”;NET “AB” LOC=“A8”;NET “LED[7]” LOC=“T11”;NET “LED[6]” LOC=“R11”;NET “LED[5]” LOC=“N11”;NET “LED[4]” LOC=“M11”;NET “LED[3]” LOC=“V15”;NET “LED[2]” LOC=“U15”;NET “LED[1]” LOC=“V16”;NET “LED[0]” LOC=“U16”;
第三篇:_計算機組成原理實驗2
計算機組成原理實驗日志
實驗題目:
進位、移位控制實驗
實驗目的:
(1)了解帶進位控制的運算器的組成結構;(2)驗證帶進位控制的運算器的功能。(3)了解移位發(fā)生器74LS299的功能;(4)驗證移位控制電路的組合功能。實驗主要步驟:
一、進位
(1)按圖1.2-2連接實驗電路并檢查無誤。(2)打開電源開關。
(3)用輸入開關向暫存器DR1和DR2置數(shù),方法同前。
(4)關閉數(shù)據(jù)輸入三態(tài)門(SW-B=1),打開ALU輸出三態(tài)門(ALU-B=0),并使LDDR1=0、LDDR2=0,關閉寄存器打入控制門。
(5)對進位標志清零。實驗板上“SWITCH UNIT”單元中的CLR開關為標志CY、ZI的清零開關,它為零狀態(tài)時是清零狀態(tài),所以將此開關做1→0→1操作,即可使標志位清零。
注意:進位標志指示燈CY亮時表示進位標志為“0”,無進位;標志指示燈CY滅時表示進位為“1”,有進位。
圖1.2-1 帶進位運算器通路圖
圖1.2-2 帶進位運算實驗接線圖
(6)驗證帶進位運算及進位鎖存功能。使Cn=1,AR=0,進行帶進位算術運算。例如,做加法運算,使ALU-B=0,S3、S2、S1、S0、M的狀態(tài)為1、0、0、1、0,此時數(shù)據(jù)總線上顯示的數(shù)據(jù)為DR1加DR2加當前進位標志的和,但這時的進位狀態(tài)位還沒有打入進位鎖存器中,(它是要靠T4節(jié)拍來打入的。)這個結果是否有進位產生,則要按動微動開關KK2,若進位標志燈亮,則無進位,反之則有進位。因為做加法運算時數(shù)據(jù)總線一直顯示的數(shù)據(jù)為DR1+DR2+CY,所以當有進位輸入到進位鎖存器時,總線顯示的數(shù)據(jù)將為加上當前進位鎖存器中鎖存的進位的結果。
二、移位
(1)按圖1.3-2連接實驗電路并檢查無誤。(2)打開電源開關。(3)向移位寄存器置數(shù)。
①撥動輸入開關,形成二進制數(shù)01101011(或其它數(shù)值)。
②使SWITCH UNIT單元中的開關SW-B=0,打開數(shù)據(jù)輸入三態(tài)門。③使S0=
1、S1=1,并按動微動開關KK2,則將二進制數(shù)01101011置入了移位寄存器。
④使SW-B=1,關閉數(shù)據(jù)輸入三態(tài)門。(4)移位運算操作。
①參照表1.3-1中的內容,先將S1、S0置為0、0,檢查移位寄存器單元裝入的數(shù)是否正確,然后通過改變S0、S1、M、299-B的狀態(tài),并按動微動開關KK2,觀察移位結果。
②根據(jù)移位控制電路功能表1.3-1中的內容,分析移位運算的結果是否正確。
圖1.3-2 移位運算實驗接線圖
實驗結果: 一.進位
向DR1中置入80H 向DR2中置入 80H CY初始位置為亮 0 加法完成后 CY為滅總線顯示01H 二.移位
輸入00011000 移位后 00110000 心得體會:
通過本次實驗了解了的帶進位的加法和移位器的原理。
第四篇:_計算機組成原理實驗3
計算機組成原理實驗日志3 實驗題目:
靜態(tài)隨機存儲器實驗 實驗目的:
掌握靜態(tài)隨機存儲器RAM工作特性及數(shù)據(jù)的讀/寫方法。實驗主要步驟:
(1)形成時鐘脈沖信號T3。具體接線方法和操作步驟如下:
①接通電源,把示波器接到方波信號源的輸出插孔H23調節(jié)電位器W1及W2,使H23端輸出實驗所期望的頻率和占空比的方波。
②將時序電路模塊(STATE UNIT)單元中的φ和信號源單元(SIGNAL UNIT)中的H23排針相連。
③在時序電路模塊中有兩個二進制開關“STOP”和“STEP”。將“STOP”開關置為“RUN”狀態(tài)、“STEP”開關置為“EXEC”狀態(tài)時,按動微動開關START,則T3端輸出連續(xù)的方波信號,此時調節(jié)電位器W1,用示波器觀察,使T3輸出實驗要求的脈沖信號。當“STOP”開關置為“RUN”狀態(tài)、“STEP”開關置為“STEP”狀態(tài)時,每按動一次微動開關START,則T3輸出一個單脈沖,其脈沖寬度與連續(xù)方式相同。用PC聯(lián)機軟件中的示波器功能也能看到波形。這樣可以代替真實示波器。
(2)按圖2-2連接實驗線路,仔細查線無誤后接通電源。
圖2-2 靜態(tài)隨機存儲器實驗接線圖(3)寫存儲器。給存儲器的00、01、02、03、04地址單元中分別寫入數(shù)據(jù)11H、12H、13H、14H、15H。
由上面的存儲器實驗原理圖(圖2-2)看出,由于數(shù)據(jù)和地址全由一個數(shù)據(jù)開關給出,因此要分時地給出。下面的寫存儲器要分兩個步驟:第一步寫地址,先關掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開數(shù)據(jù)開關三態(tài)門(SW-B=0),由開關給出要寫入的存儲單元的地址,按動START產生T3脈沖將地址打入到地址鎖存器;第二步寫數(shù)據(jù),關掉地址鎖存器門控信號(LDAR=0),打開存儲器片選(CE=0),使之處于寫狀態(tài)(CE=0,WE=1),由開關給出此單元要寫入的數(shù)據(jù),按動STRAT產生T3脈沖將數(shù)據(jù)寫入到當前的地址單元中。寫其他單元依次循環(huán)上述步驟。
寫存儲器流程如圖2-3所示(以向00號單元寫入11H為例)。
圖2-3 寫存儲器流程圖
(4)讀存儲器。
依次讀出第00、01、02、03、04號單元中的內容,觀察上述各單元中的內容是否與前面寫入的一致。同寫操作類似,讀每個單元也需要兩步:第一步寫地址,先關掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開,由開關給出要讀存儲單元的地址,按動START產生T3脈沖將地址打入到地址鎖存器;第二步讀存儲器,關掉數(shù)據(jù)開關三態(tài)門(SW-B=1),打開存儲器(CE=0),使它處于讀狀態(tài)(CE=0,WE=0),此時數(shù)據(jù)總線上顯示的數(shù)據(jù)即為從存儲器當前地址中讀出的數(shù)據(jù)內容。讀其他單元依次循環(huán)上述步驟。
讀存儲器操作流程如下圖2-4所示(以從00號單元讀出11H數(shù)據(jù)為例)。
圖2-4 讀存儲器流程圖
實驗結果:
置入存儲器地址00 寫入存儲器數(shù)據(jù) 11H 置入存儲器地址01 寫入存儲器數(shù)據(jù)12H 置入存儲器地址02 寫入存儲器數(shù)據(jù)13H 置入存儲器地址03 寫入存儲器數(shù)據(jù)14H 置入存儲器地址04 寫入存儲器數(shù)據(jù)15H
讀數(shù)據(jù)
置入存儲器地址00 讀出存儲器數(shù)據(jù)11H 置入存儲器地址01 讀出存儲器數(shù)據(jù)12H 置入存儲器地址02 讀出存儲器數(shù)據(jù)13H 置入存儲器地址03 讀出存儲器數(shù)據(jù)14H 置入存儲器地址04 讀出存儲器數(shù)據(jù)15H 實驗思考題
(1)一片靜態(tài)存儲器6116(2K×8),容量是多大?因實驗箱上地址寄存器只有8位接入6116的A7-A0,而高三位A8-A10接地,所以實際存儲容量是多少?為什么?
答:容量是16kbit大小,當只有A7-A0只有8位字時,實際容量是256*8=4Kbit大小。(2)歸納出向存儲器寫入一個數(shù)據(jù)的過程,包括所需的控制信號(為“1”還是為“0”)有效。
答:根據(jù)實驗指導書上WR0有效,此時為寫入數(shù)據(jù)
心得體會:
通過這次實驗掌握了靜態(tài)存儲器的基本原理,以及存儲器是如何寫入數(shù)據(jù)和讀取數(shù)據(jù)的,強化了計算機存儲器的理解
第五篇:計算機組成原理實驗(存儲器)
實驗3 半導體存儲器原理實驗
(一)、實驗目的
(1)熟悉靜態(tài)隨機存儲器RAM和只讀存儲器ROM的工作特性和使用方法;(2)熟悉半導體存儲器存儲和讀出數(shù)據(jù)的過程;(3)了解使用半導體存儲器電路時的定時要求。
(二)、實驗要求
利用Quartus Ⅱ器件庫提供的參數(shù)化存儲單元,設計一個由128X8位的RAM和128X8位的ROM構成的存儲器系統(tǒng)。請設計有關邏輯電路,要求仿真通過,并設計波形文件,驗證該存儲器系統(tǒng)的存儲與讀出。
(三)、實驗原理圖與仿真圖
ram內所存儲的數(shù)據(jù):
rom內所存儲的數(shù)據(jù):
仿真圖如下:
(四)心得體會
本次試驗中,我們應該熟練掌握Quartus Ⅱ軟件的使用方法;熟悉靜態(tài)隨機存儲器RAM和只讀存儲器ROM的工作特性和使用方法;熟悉半導體存儲器存儲和讀出數(shù)據(jù)的過程;了解使用半導體存儲器電路時的定時要求。并且制定實驗方案然后進行實驗驗證。要學會將學到的知識運用到實際中。