第一篇:大連理工大學軟件學院計算機組成原理實驗一位全加器VHDL語言實現(xiàn)
----------------------Company:
--Engineer:
--
--Create Date:18:35:51 04/08/2013
--Design Name:
--Module Name:testssFile Created
--Additional Comments:
--
--------------------library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
----Uncomment the following library declaration if instantiating----any Xilinx primitives in this code.--library UNISIM;
--use UNISIM.VComponents.all;
entity testss is
Port(end testss;a,b,ci : inSTD_LOGIC;s,c : outSTD_LOGIC);
architecture Behavioral of testss is
signal x,y:std_logic;
begin
x <= a xor b;
y <= x and ci;
s <= x xor ci;
c <= y or(a and b);
end Behavioral;
第二篇:計算機組成原理實驗
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”;
第三篇:_計算機組成原理實驗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產(chǎn)生T3脈沖將地址打入到地址鎖存器;第二步寫數(shù)據(jù),關掉地址鎖存器門控信號(LDAR=0),打開存儲器片選(CE=0),使之處于寫狀態(tài)(CE=0,WE=1),由開關給出此單元要寫入的數(shù)據(jù),按動STRAT產(chǎn)生T3脈沖將數(shù)據(jù)寫入到當前的地址單元中。寫其他單元依次循環(huán)上述步驟。
寫存儲器流程如圖2-3所示(以向00號單元寫入11H為例)。
圖2-3 寫存儲器流程圖
(4)讀存儲器。
依次讀出第00、01、02、03、04號單元中的內容,觀察上述各單元中的內容是否與前面寫入的一致。同寫操作類似,讀每個單元也需要兩步:第一步寫地址,先關掉存儲器的片選(CE=1),打開地址鎖存器門控信號(LDAR=1),打開,由開關給出要讀存儲單元的地址,按動START產(chǎn)生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ù)的過程;了解使用半導體存儲器電路時的定時要求。并且制定實驗方案然后進行實驗驗證。要學會將學到的知識運用到實際中。
第五篇:計算機組成原理實驗報告+++數(shù)據(jù)通路實驗
數(shù)據(jù)通路組成實驗
一、實驗目的
(1)將雙端口通用寄存器組和雙端口存儲器模塊聯(lián)機;
(2)進一步熟悉計算機的數(shù)據(jù)通路;
(3)掌握數(shù)字邏輯電路中故障的一般規(guī)律,以及排除故障的一般原則和方法;
(4)鍛煉分析問題與解決問題的能力,在出現(xiàn)故障的情況下,獨立分析故障現(xiàn)象,并排除故障。
二、實驗電路
圖9.14示出了數(shù)據(jù)通路實驗電路圖,它是將前面進行的雙端口存儲器實驗模塊和一個雙端口通用寄存器組模塊連接在一起形成的,存儲器的指令端口不參與本次實驗,通用寄存器組連接運算器模塊,本實驗涉及其中的操作數(shù)寄存器DR2。
由于RAM是三態(tài)門輸出,因而可以將RAM連接到數(shù)據(jù)總線BUS上。此外,BUS上還連接著雙端口通用寄存器組。這樣,寫入RAM的數(shù)據(jù)可由通用寄存器提供,而從RAM讀出的數(shù)據(jù)也可送到通用寄存器保存。
RAM和DR2在前面的實驗中使用過。對于通用寄存器組RF,它由一個在系統(tǒng)可編程(In System Programable)芯片ispLSI 1016固化了通用寄存器組的功能而成,其功能與雙端口寄存器組MC14580相類似,內含四個8位的通用寄存器,帶有一個輸入端口和兩個輸出端口,從而可以同時寫入一路數(shù)據(jù),讀出兩路數(shù)據(jù)。輸入端口取名為WR端口,連接一個8位的緩沖寄存器ER(已集成在ispLSI 1016芯片中),輸出端口取名為RS端口、RD端口,分別連接運算器模塊的兩個操作數(shù)寄存器DR1、DR2,其中,連接DR1的RS端口還可通過一個8位的三態(tài)門RSO直接向BUS輸出。雙端口通用寄存器組模塊的控制信號中,RS1、RS0用于選擇從RS端口讀出的通用寄存器,RD1、RD0用于選擇從RD端口讀出的通用寄存器,上述選擇信號在T1脈沖的上升沿到來時生效。而WR1、WR0則用于選擇從WR端口寫入的通用寄存器。WRD是寫入控制信號,WRD=1時,在T2上升沿的時刻,從ER寫入數(shù)據(jù);WRD=0時,ER中的數(shù)據(jù)不寫入通用寄存器中。LDER信號控制ER從BUS寫入數(shù)據(jù),RS-BUS信號則控制RS端口到BUS的輸出三態(tài)門。以上控制信號各自連接一個二進制開關。
三、實驗設備
(1)JYS-4計算機組成原理實驗儀一臺(2)雙蹤示波器一臺(3)直流萬用表一只(4)邏輯測試筆一支
四、實驗任務
(1)將實驗電路與操作面板的有關信號進行線路連接,方法同前面的實驗。(2)用8位數(shù)據(jù)開關向RF中的四個通用寄存器分別置入以下數(shù)據(jù)(十六進制):R0=0F,R1=F0,R2=55,R3=AA。
給R0置入0F的步驟是:先用8位數(shù)碼開關將0F置入ER,并且選擇WR1=WR0=0,再將ER的數(shù)據(jù)置入RF。給其他通用寄存器置入數(shù)據(jù)的步驟與此類似。
(3)分別將R0至R3中的數(shù)據(jù)同時讀入到DR2寄存器和BUS上,觀察其數(shù)據(jù)是否存入R0至R3中的數(shù)據(jù),并記錄數(shù)據(jù)。其中BUS上的數(shù)據(jù)可直接用指示燈顯示,DR2中的數(shù)據(jù)可用邏輯筆測試有關引腳。
(4)用8位數(shù)碼開關向AR1送入一個地址0F,然后將R0中的0F寫入RAM。用同樣的方法,依次將R1至R3中的數(shù)據(jù)寫入RAM中的F0、55、AA單元。
(5)分別將RAM中AA單元的數(shù)據(jù)寫入R0,55單元的數(shù)據(jù)寫入R1,F0單元寫入R2,0F單元寫入R3。然后將R3、R2、R1、R0中的數(shù)據(jù)讀出到BUS上,通過指示燈驗證讀出的數(shù)據(jù)是否正確,并記錄數(shù)據(jù)。
(6)進行RF并行輸入輸出試驗。
1.選擇RS端口對應R0,RD端口對應R1,WR端口對應R2,并使WRD=1,觀察并行輸入輸出的結果。選擇RS端口對應R2,驗證剛才的寫入是否生效。記錄數(shù)據(jù)。2.保持RS端口和WR端口同時對應R2,WRD=1,而ER中置入新的數(shù)據(jù),觀察并行輸入輸出的結果,RS端口輸出的是舊的還是新的數(shù)據(jù)?(7)在數(shù)據(jù)傳送過程中,發(fā)現(xiàn)了什么故障?如何克服的?
五、實驗要求(1)做好實驗預習和準備工作,掌握實驗電路的數(shù)據(jù)通路特點和通用寄存器組的功能特性。(2)寫出實驗報告,內容為
1.實驗目的;
2.如碰到故障,記錄故障現(xiàn)象,排除故障的分析思路,故障定位及故障的性質; 3.實驗數(shù)據(jù)記錄;
4.值得討論的其他問題。