第一篇:计算机组成原理实验报告3-数据输出实验 移位门实验
2.3 数据输出实验/移位门实验
一.实验要求:利用CPTH 实验仪的开关做为控制信号,将指定寄存器的内容读到数据总线DBUS上。
二.实验目的:
1、了解模型机中多寄存器接数据总线的实现原理。
2、了解运算器中移位功能的实现方法。
三.实验电路:CPTH 中有7 个寄存器可以向数据总线输出数据,但在某一特定时刻只能有一个寄存器输出数据,由X2,X1,X0决定那一个寄存器输出数据。
数据输出选择器原理图
连接线表
四.实验数据及步骤:
实验1:数据输出实验
置下表的控制信号,检验输出结果
实验2:移位实验
ALU直接输出和零标志位产生原理图
ALU左移输出原理图
ALU右移输出原理图
直通门将运算器的结果不移位送总线。当X2X1X0=100 时运算器结果通过直通门送到数据总线。同时,直通门上还有判0 电路,当运算器的结果为全0 时,Z=1,右移门将运算器的结果右移一位送总线。当X2X1X0=101 时运算器结果通过右通门送到数据总线。具体内部连接是:
Cy 与 CN →DBUS7
ALU7→DBUS6
ALU6→DBUS5
ALU5→DBUS4
ALU4 → DBUS3
ALU3 → DBUS2
ALU2 → DBUS1
ALU1 → DBUS0 Cy 与 CN → DBUS7 当不带进位移位时(CN=0):
0 →DBUS7 当带进位移位时(CN=1):
Cy →DBUS7
左移门将运算器的结果左移一位送总线。当X2X1X0=110 时运算器结果通过左通门送到数据总线。具体连线是:
ALU6 →DBUS7 ALU5→ DBUS6 ALU4→ DBUS5 ALU3→ DBUS4 ALU2→ DBUS3 ALU1→ DBUS2 ALU0→ DBUS1 当不带进位移位时(CN=0):
0 → DBUS0 当带进位移位时(CN=1):
Cy→
DBUS0
将55H写入A寄存器
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据55H
置控制信号为:
按住STEP脉冲键,CK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。放开STEP键,CK由低变高,产生一个上升沿,数据55H被写入A寄存器。
S2S1S0=111 时运算器结果为寄存器A内容
注意观察:
移位与输出门是否打开无关,无论运算器结果如何,移位门都会给出移位结果。但究竟把那一个结果送数据总线由X2X1X0输出选择决定。
五.心得体会:
这次实验我们感受和熟悉了计算机的移位算法,本实验可以说是前两次实验和这次实验的汇总,里面也包括了上两次实验的内容,像寄存器A,W;S1,S2,S3选择的运算。通过本次实验让我学到很多运算器的知识。还有就是关于移位运算的了,寄存器D显示的是不带移位的运算结果,寄存器R显示的是右移一位的运算结果,寄存器L显示的是左移一位的运算结果,当CN等于1,Cy 1N等于1的时候表示移位为一的移位运算。移位的运算方法是,右移时,在移位后的空位也即最高位补上Cy 1N的值,0或者1;左移时,在移位后的空位也即最低位补上Cy 1N的值,0或者1。
第二篇:_计算机组成原理实验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有效,此时为写入数据
心得体会:
通过这次实验掌握了静态存储器的基本原理,以及存储器是如何写入数据和读取数据的,强化了计算机存储器的理解
第三篇:计算机组成原理实验报告+++数据通路实验
数据通路组成实验
一、实验目的
(1)将双端口通用寄存器组和双端口存储器模块联机;
(2)进一步熟悉计算机的数据通路;
(3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;
(4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
二、实验电路
图9.14示出了数据通路实验电路图,它是将前面进行的双端口存储器实验模块和一个双端口通用寄存器组模块连接在一起形成的,存储器的指令端口不参与本次实验,通用寄存器组连接运算器模块,本实验涉及其中的操作数寄存器DR2。
由于RAM是三态门输出,因而可以将RAM连接到数据总线BUS上。此外,BUS上还连接着双端口通用寄存器组。这样,写入RAM的数据可由通用寄存器提供,而从RAM读出的数据也可送到通用寄存器保存。
RAM和DR2在前面的实验中使用过。对于通用寄存器组RF,它由一个在系统可编程(In System Programable)芯片ispLSI 1016固化了通用寄存器组的功能而成,其功能与双端口寄存器组MC14580相类似,内含四个8位的通用寄存器,带有一个输入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。输入端口取名为WR端口,连接一个8位的缓冲寄存器ER(已集成在ispLSI 1016芯片中),输出端口取名为RS端口、RD端口,分别连接运算器模块的两个操作数寄存器DR1、DR2,其中,连接DR1的RS端口还可通过一个8位的三态门RSO直接向BUS输出。双端口通用寄存器组模块的控制信号中,RS1、RS0用于选择从RS端口读出的通用寄存器,RD1、RD0用于选择从RD端口读出的通用寄存器,上述选择信号在T1脉冲的上升沿到来时生效。而WR1、WR0则用于选择从WR端口写入的通用寄存器。WRD是写入控制信号,WRD=1时,在T2上升沿的时刻,从ER写入数据;WRD=0时,ER中的数据不写入通用寄存器中。LDER信号控制ER从BUS写入数据,RS-BUS信号则控制RS端口到BUS的输出三态门。以上控制信号各自连接一个二进制开关。
三、实验设备
(1)JYS-4计算机组成原理实验仪一台(2)双踪示波器一台(3)直流万用表一只(4)逻辑测试笔一支
四、实验任务
(1)将实验电路与操作面板的有关信号进行线路连接,方法同前面的实验。(2)用8位数据开关向RF中的四个通用寄存器分别置入以下数据(十六进制):R0=0F,R1=F0,R2=55,R3=AA。
给R0置入0F的步骤是:先用8位数码开关将0F置入ER,并且选择WR1=WR0=0,再将ER的数据置入RF。给其他通用寄存器置入数据的步骤与此类似。
(3)分别将R0至R3中的数据同时读入到DR2寄存器和BUS上,观察其数据是否存入R0至R3中的数据,并记录数据。其中BUS上的数据可直接用指示灯显示,DR2中的数据可用逻辑笔测试有关引脚。
(4)用8位数码开关向AR1送入一个地址0F,然后将R0中的0F写入RAM。用同样的方法,依次将R1至R3中的数据写入RAM中的F0、55、AA单元。
(5)分别将RAM中AA单元的数据写入R0,55单元的数据写入R1,F0单元写入R2,0F单元写入R3。然后将R3、R2、R1、R0中的数据读出到BUS上,通过指示灯验证读出的数据是否正确,并记录数据。
(6)进行RF并行输入输出试验。
1.选择RS端口对应R0,RD端口对应R1,WR端口对应R2,并使WRD=1,观察并行输入输出的结果。选择RS端口对应R2,验证刚才的写入是否生效。记录数据。2.保持RS端口和WR端口同时对应R2,WRD=1,而ER中置入新的数据,观察并行输入输出的结果,RS端口输出的是旧的还是新的数据?(7)在数据传送过程中,发现了什么故障?如何克服的?
五、实验要求(1)做好实验预习和准备工作,掌握实验电路的数据通路特点和通用寄存器组的功能特性。(2)写出实验报告,内容为
1.实验目的;
2.如碰到故障,记录故障现象,排除故障的分析思路,故障定位及故障的性质; 3.实验数据记录;
4.值得讨论的其他问题。
第四篇:计算机组成原理实验
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”;
第五篇:计算机组成原理实验报告5- PC实验
2.5
PC实验
姓名:孙坚
学号:134173733
班级:13计算机
日期:2015.5.15
一.实验要求:利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,实现程序计数器PC的写入及加1 功能。
二.实验目的:
1、了解模型机中程序计数器PC的工作原理及其控制方法。
2、了解程序执行过程中顺序和跳转指令的实现方法。
三.实验电路:PC 是由两片74HC161构成的八位带预置记数器,预置数据来自数据总线。记数器的输出通过74HC245(PCOE)送到地址总线。PC 值还可以通过74HC245(PCOE_D)送回数据总线。
PC 原理图
在CPTH 中,PC+1 由PCOE 取反产生。当RST = 0 时,PC 记数器被清0 当LDPC = 0 时,在CK的上升沿,预置数据被打入PC记数器 当PC+1 = 1 时,在CK的上升沿,PC记数器加一 当PCOE = 0 时,PC值送地址总线
PC打入控制原理图
PC 打入控制电路由一片74HC151 八选一构成(isp1016实现)。
当ELP=1 时,LDPC=1,不允许PC被预置 当ELP=0 时,LDPC 由IR3,IR2,Cy,Z确定 当IR3 IR2 = 1 X 时,LDPC=0,PC 被预置
当IR3 IR2 = 0 0 时,LDPC=非Cy,当Cy=1时,PC 被预置 当IR3 IR2 = 0 1 时,LDPC=非Z,当Z=1 时,PC 被预置 连接线表
四.实验数据及步骤:
实验1:PC 加一实验 置控制信号为:
按一次STEP脉冲键,CK产生一个上升沿,数据PC 被加一。
实验2:PC 打入实验
二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据12H
置控制信号为:
每置控制信号后,按一下STEP键,观察PC的变化。
五.心得体会:
经过上一个实验的练习,在做这个实验的时候更加得心应手,了解了模型机中程序计数器PC的工作原理及其控制方法,还有了解了程序执行过程中顺序和跳转指令的实现方法。