第一篇:_計算機組成原理實驗3
計算機組成原理實驗日志3 實驗題目:
靜態隨機存儲器實驗 實驗目的:
掌握靜態隨機存儲器RAM工作特性及數據的讀/寫方法。實驗主要步驟:
(1)形成時鐘脈沖信號T3。具體接線方法和操作步驟如下:
①接通電源,把示波器接到方波信號源的輸出插孔H23調節電位器W1及W2,使H23端輸出實驗所期望的頻率和占空比的方波。
②將時序電路模塊(STATE UNIT)單元中的φ和信號源單元(SIGNAL UNIT)中的H23排針相連。
③在時序電路模塊中有兩個二進制開關“STOP”和“STEP”。將“STOP”開關置為“RUN”狀態、“STEP”開關置為“EXEC”狀態時,按動微動開關START,則T3端輸出連續的方波信號,此時調節電位器W1,用示波器觀察,使T3輸出實驗要求的脈沖信號。當“STOP”開關置為“RUN”狀態、“STEP”開關置為“STEP”狀態時,每按動一次微動開關START,則T3輸出一個單脈沖,其脈沖寬度與連續方式相同。用PC聯機軟件中的示波器功能也能看到波形。這樣可以代替真實示波器。
(2)按圖2-2連接實驗線路,仔細查線無誤后接通電源。
圖2-2 靜態隨機存儲器實驗接線圖(3)寫存儲器。給存儲器的00、01、02、03、04地址單元中分別寫入數據11H、12H、13H、14H、15H。
由上面的存儲器實驗原理圖(圖2-2)看出,由于數據和地址全由一個數據開關給出,因此要分時地給出。下面的寫存儲器要分兩個步驟:第一步寫地址,先關掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開數據開關三態門(SW-B=0),由開關給出要寫入的存儲單元的地址,按動START產生T3脈沖將地址打入到地址鎖存器;第二步寫數據,關掉地址鎖存器門控信號(LDAR=0),打開存儲器片選(CE=0),使之處于寫狀態(CE=0,WE=1),由開關給出此單元要寫入的數據,按動STRAT產生T3脈沖將數據寫入到當前的地址單元中。寫其他單元依次循環上述步驟。
寫存儲器流程如圖2-3所示(以向00號單元寫入11H為例)。
圖2-3 寫存儲器流程圖
(4)讀存儲器。
依次讀出第00、01、02、03、04號單元中的內容,觀察上述各單元中的內容是否與前面寫入的一致。同寫操作類似,讀每個單元也需要兩步:第一步寫地址,先關掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開,由開關給出要讀存儲單元的地址,按動START產生T3脈沖將地址打入到地址鎖存器;第二步讀存儲器,關掉數據開關三態門(SW-B=1),打開存儲器(CE=0),使它處于讀狀態(CE=0,WE=0),此時數據總線上顯示的數據即為從存儲器當前地址中讀出的數據內容。讀其他單元依次循環上述步驟。
讀存儲器操作流程如下圖2-4所示(以從00號單元讀出11H數據為例)。
圖2-4 讀存儲器流程圖
實驗結果:
置入存儲器地址00 寫入存儲器數據 11H 置入存儲器地址01 寫入存儲器數據12H 置入存儲器地址02 寫入存儲器數據13H 置入存儲器地址03 寫入存儲器數據14H 置入存儲器地址04 寫入存儲器數據15H
讀數據
置入存儲器地址00 讀出存儲器數據11H 置入存儲器地址01 讀出存儲器數據12H 置入存儲器地址02 讀出存儲器數據13H 置入存儲器地址03 讀出存儲器數據14H 置入存儲器地址04 讀出存儲器數據15H 實驗思考題
(1)一片靜態存儲器6116(2K×8),容量是多大?因實驗箱上地址寄存器只有8位接入6116的A7-A0,而高三位A8-A10接地,所以實際存儲容量是多少?為什么?
答:容量是16kbit大小,當只有A7-A0只有8位字時,實際容量是256*8=4Kbit大小。(2)歸納出向存儲器寫入一個數據的過程,包括所需的控制信號(為“1”還是為“0”)有效。
答:根據實驗指導書上WR0有效,此時為寫入數據
心得體會:
通過這次實驗掌握了靜態存儲器的基本原理,以及存儲器是如何寫入數據和讀取數據的,強化了計算機存儲器的理解
第二篇:計算機組成原理實驗
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)了解移位發生器74LS299的功能;(4)驗證移位控制電路的組合功能。實驗主要步驟:
一、進位
(1)按圖1.2-2連接實驗電路并檢查無誤。(2)打開電源開關。
(3)用輸入開關向暫存器DR1和DR2置數,方法同前。
(4)關閉數據輸入三態門(SW-B=1),打開ALU輸出三態門(ALU-B=0),并使LDDR1=0、LDDR2=0,關閉寄存器打入控制門。
(5)對進位標志清零。實驗板上“SWITCH UNIT”單元中的CLR開關為標志CY、ZI的清零開關,它為零狀態時是清零狀態,所以將此開關做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的狀態為1、0、0、1、0,此時數據總線上顯示的數據為DR1加DR2加當前進位標志的和,但這時的進位狀態位還沒有打入進位鎖存器中,(它是要靠T4節拍來打入的。)這個結果是否有進位產生,則要按動微動開關KK2,若進位標志燈亮,則無進位,反之則有進位。因為做加法運算時數據總線一直顯示的數據為DR1+DR2+CY,所以當有進位輸入到進位鎖存器時,總線顯示的數據將為加上當前進位鎖存器中鎖存的進位的結果。
二、移位
(1)按圖1.3-2連接實驗電路并檢查無誤。(2)打開電源開關。(3)向移位寄存器置數。
①撥動輸入開關,形成二進制數01101011(或其它數值)。
②使SWITCH UNIT單元中的開關SW-B=0,打開數據輸入三態門。③使S0=
1、S1=1,并按動微動開關KK2,則將二進制數01101011置入了移位寄存器。
④使SW-B=1,關閉數據輸入三態門。(4)移位運算操作。
①參照表1.3-1中的內容,先將S1、S0置為0、0,檢查移位寄存器單元裝入的數是否正確,然后通過改變S0、S1、M、299-B的狀態,并按動微動開關KK2,觀察移位結果。
②根據移位控制電路功能表1.3-1中的內容,分析移位運算的結果是否正確。
圖1.3-2 移位運算實驗接線圖
實驗結果: 一.進位
向DR1中置入80H 向DR2中置入 80H CY初始位置為亮 0 加法完成后 CY為滅總線顯示01H 二.移位
輸入00011000 移位后 00110000 心得體會:
通過本次實驗了解了的帶進位的加法和移位器的原理。
第四篇:計算機組成原理實驗(存儲器)
實驗3 半導體存儲器原理實驗
(一)、實驗目的
(1)熟悉靜態隨機存儲器RAM和只讀存儲器ROM的工作特性和使用方法;(2)熟悉半導體存儲器存儲和讀出數據的過程;(3)了解使用半導體存儲器電路時的定時要求。
(二)、實驗要求
利用Quartus Ⅱ器件庫提供的參數化存儲單元,設計一個由128X8位的RAM和128X8位的ROM構成的存儲器系統。請設計有關邏輯電路,要求仿真通過,并設計波形文件,驗證該存儲器系統的存儲與讀出。
(三)、實驗原理圖與仿真圖
ram內所存儲的數據:
rom內所存儲的數據:
仿真圖如下:
(四)心得體會
本次試驗中,我們應該熟練掌握Quartus Ⅱ軟件的使用方法;熟悉靜態隨機存儲器RAM和只讀存儲器ROM的工作特性和使用方法;熟悉半導體存儲器存儲和讀出數據的過程;了解使用半導體存儲器電路時的定時要求。并且制定實驗方案然后進行實驗驗證。要學會將學到的知識運用到實際中。
第五篇:計算機組成原理
《計算機組成原理》實驗任務
計
識。算機原理是計算機科學與技術及相關專業的一門專業基礎課,是一門重點科,在計算機硬件的各個領域中運會用到計算計原理的有關知
本實驗課程的教學目的和要求是使學生通過實驗手段掌握計算機硬件的組成與設計、制造﹑調試﹑制造﹑維護等多方面的技能同時訓練動手的能力,也使學生系統科學地受到分析問題和解決問題的訓練.