计算机组成原理实验-数据通路实验

合集下载

计算机组成原理实验(接线、实验步骤)

计算机组成原理实验(接线、实验步骤)

计算机组成原理实验(接线、实验步骤)实验⼀运算器[实验⽬的]1.掌握算术逻辑运算加、减、乘、与的⼯作原理;2.熟悉简单运算器的数据传送通路;3.验证实验台运算器的8位加、减、与、直通功能;4.验证实验台4位乘4位功能。

[接线]功能开关:DB=0 DZ=0 DP=1 IR/DBUS=DBUS接线:LRW:GND(接地)IAR-BUS# 、M1、M2、RS-BUS#:接+5V控制开关:K0:SW-BUS# K1:ALU-BUSK2:S0 K3:S1 K4:S2K5:LDDR1 K6:LDDR2[实验步骤]⼀、(81)H与(82)H运算1.K0=0:SW开关与数据总线接通K1=0:ALU输出与数据总线断开2.开电源,按CLR#复位3.置数(81)H:在SW7—SW0输⼊10000001→LDDR2=1,LDDR1=0→按QD:数据送DR2置数(82)H:在SW7—SW0输⼊10000010→LDDR2=0,LDDR1=1→按QD:数据送DR1 4.K0=1:SW开关与数据总线断开K1=1:ALU输出与数据总线接通5. S2S1S0=010:运算器做加法(观察结果在显⽰灯的显⽰与进位结果C的显⽰)6.改变S2S1S0的值,对同⼀组数做不同的运算,观察显⽰灯的结果。

⼆、乘法、减法、直通等运算1.K0K1=002.按CLR#复位3.分别给DR1和DR2置数4.K0K1=115. S2S1S0取不同的值,执⾏不同的运算[思考]M1、M2控制信号的作⽤是什么?运算器运算类型选择表选择操作S2 S1 S00 0 0 A&B0 0 1 A&A(直通)0 1 0 A+B0 1 1 A-B1 0 0 A(低位)ΧB(低位)完成以下表格ALU-BUS SW-BUS# 存储器内容S2S1S0 DBUS C输⼊时:计算时:DR1:01100011DR2:10110100(与)DR1:10110100DR2:01100011(直通)DR1:01100011DR2:01100011(加)DR1:01001100DR2:10110011(减)DR1:11111111DR2:11111111(乘)实验⼆双端⼝存储器[实验⽬的]1.了解双端⼝存储器的读写;2.了解双端⼝存储器的读写并⾏读写及产⽣冲突的情况。

计算机组成原理实验说明

计算机组成原理实验说明

实验一运算器组成实验一、实验目的1.熟悉双端口通用存放器堆〔组〕的读写操作。

2.熟悉简单运算器的数据传送通路。

3.验证运算器74LS181的算术逻辑功能。

4.按给定数据,完成指定的算术、逻辑运算。

二、实验原理上图是本实验所用的运算器数据通路图。

参与运算的数据首先通过实验台操作板上的八个二进制数据开关SW7-SW0来设置,然后输入到双端口通用存放器堆RF中。

RF由一个ispLSI1016实现,功能上相当于四个8位通用存放器,用于保存参与运算的数据,运算后的结果也要送到RF中保存。

双端口存放器堆模块的控制信号中,RS1、RS0用于选择从B端口〔右端口〕读出的通用存放器,RD1、RD0用于选取从A端口〔左端口〕读出的通用存放器。

而WR1、WR0用于选择写入的通用存放器。

LDRi是写入控制信号,当LDRi=1时,数据总线DBUS上的数据在T3写入由WR1、WR0指定的通用存放器。

RF的A、B端口分别与操作数暂存器DR1、DR2相连:另外,RF的B端口通过一个三态门连接到数据总线DBUS 上,因而RF中的数据可以直接通过B端口送到DBUS上。

DR1和DR2各由1片74LS273构成,用于暂存参与运算的数据。

DR1接ALU 的A输入端口,DR2接ALU的B端口。

ALU由两片74LS181构成,ALU的输出通过一个三态门(74LS244)发送到数据总线DBUS上。

图中尾巴上带粗短线标记的信号都是控制信号,其中S3,S2,Sl,S0,M,#,LDDR2,LDDRl,ALU-BUS#,SW-BUS#、LDRi、RS1、RS0、RD1、RD0、WR1、WR0等是电位信号,用电平开关K0—Kl5来模拟。

T2、T3是脉冲信号,印制板上已连接到实验台的时序电路上。

#为低电平有效。

K0—K15是一组用于模拟各控制电平信号的开关,开关向上时为1,开关向下时为0,每个开关无固定用途,可根据实验具体情况选用。

实验中进展单拍操作,每次只产生一组Tl,T2,T3,T4脉冲,需将实验台上的DP,DB开关进展正确设置。

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告

计算机组成原理数据通路实验报告计算机组成原理实验报告计算机组成原理实验报告实验一基本运算器实验一、实验目的1. 了解运算器的组成结构2. 掌握运算器的工作原理3. 深刻理解运算器的控制信号二、实验设备PC机一台、TD-CMA实验系统一套三、实验原理1. (思考题)运算器的组成包括算数逻辑运算单元ALU(Arithmetic and Logic Unit)、浮点运算单元FPU(Floating Point Unit)、通用寄存器组、专用寄存器组。

①算术逻辑运算单元ALU (Arithmetic and Logic Unit)ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。

在某些CPU中还有专门用于处理移位操作的移位器。

通常ALU由两个输入端和一个输出端。

整数单元有时也称为IEU(IntegerExecution Unit)。

我们通常所说的“CPU 是XX位的”就是指ALU所能处理的数据的位数。

②浮点运算单元FPU(Floating Point Unit)FPU主要负责浮点运算和高精度整数运算。

有些FPU还具有向量运算的功能,另外一些则有专门的向量处理单元。

③通用寄存器组通用寄存器组是一组最快的存储器,用来保存参加运算的操作数和中间结果。

④专用寄存器专用寄存器通常是一些状态寄存器,不能通过程序改变,由CPU自己控制,表明某种状态。

而运算器内部有三个独立运算部件,分别为算术、逻辑和移位运算部件,逻辑运算部件由逻辑门构成,而后面又有专门的算术运算部件设计实验。

下图为运算器内部原理构造图2. 运算器的控制信号实验箱中所有单元的T1、T2、T3、T4都连接至控制总线单元的T1、T2、T3、T4,CLR都连接至CON单元的CLR按钮。

T4由时序单元的TS4提供(脉冲信号),其余控制信号均由CON单元的二进制数据开关模拟给出。

控制信号中除T4为脉冲信号外,其余均为电平信号,其中ALU_B为低有效,其余为高有效。

实验03 数据通路实验

实验03 数据通路实验

实验三数据通路实验一、实验目的1、通过实验进一步熟悉运算器与存储器之间的数据通路的组成结构。

2、通过实验理解顺序节拍发生器的应用和设计方法。

3、通过实验理解系统总线的设计方法。

二、实验步骤1、打开已有的实验工程目录:“DATAPATH”。

通过双击目录中的Quartus II工程文件“DATAPATH.qpf”,利用Quartus II软件打开已经建好的实验工程。

图1打开Quartus II工程2、打开工程后,Quartus II软件的界面如图2所示。

在软件窗口的左边区域的“Project Navigator”列表栏中,选择“files”选项卡,我们可以看到列表栏中列出了这个工程中的设计文件。

本工程的设计文件说明在表1中列举出来。

表1工程设计文件说明表设计文件说明对应组件文件ALU.vhd VHDL设计文件,设计一个四位ALU ALU.bsfMEM.vhd VHDL设计文件,设计一个16*4的ROM存储器用来模拟主存MEM.bsfREG.vhd VHDL设计文件,设计一个带锁存和清零功能的四位寄存器REG.bsf PULSEGEN.vhd VHDL设计文件,设计一个顺序节拍发生器PULSEGEN.bsf DATAPATH.bdf数据通路设计文件其中,设计文件“DATAPATH.bdf”完成了基本功能,实验者首先对其进行验证,需要由实验者在原有设计基础上添加合理设计,完成数据通路时序控制的设计。

图2工程界面图3、如图3上所示,“数据通路”构建在DATAPATH.bdf的设计文件中,除去几个寄存器的脉冲信号,其它模块已经实现连接。

图3数据通路设计图数据通路是数据信号在各个寄存器和存储器之间的传输过程。

这里的设计文件模拟了最简单的数据通路模型。

图3中的“MEM”单元是一个用VHDL语言设计的16*4存储器,为了实验的简便,这里将它设计为ROM,而且从地址0000~1111依次存储的数据也是0~15(比如:地址为0011的存储单元存储的数据也是3)。

运算器数据通路实验

运算器数据通路实验

一、实验名称:运算器数据通路实验二、实验目的1.熟悉函数功能发生器的功能、使用方法。

2.熟悉运算器的数据传送通路。

3.完成几种算逻运算操作,加深对运算器工作原理的理解。

三、实验原理运算器是计算机中对数据进行运算操作的重要部件,它的核心是ALU 函数功能发生器(由EPM7064S 构成),其次还要有存放操作数和运算的中间结果之寄存器以及传送数据的总线等部分。

选用不同的控制信号,运算器可以完成不同的运算功能。

1.函数功能发生器(ALU)的功能。

该函数功能发生器(ALU),当输入为Aj、Bj,对应输出为Fj(j=0,1,2,3,4,5,6,7),它可实现8 种不同的算术运算和逻辑算,而且通过对控制参数SEL2~SEL0S0 来选择。

2.数据传送通路实验电路方案实验方案框图见图2—5 所示。

图中SA、SB 为存放两个现行操作的缓冲寄存器,其中SA 兼作存放中间结果的累加器,并且可以通过SA 所连接的八个数据灯显示。

SA、SB 接收来自总线的数据信息送入ALU 进行算术或逻辑操作。

通过移位门将运算操作结果送到总线。

并且ALU 和总线之间需用三态门隔离(采用74LS245)。

四、实验内容1.按照实验电路方案框图,设计一个能完成下列八种补码运算指令的八位运算器。

该运算器实现的八种功能如表2—1所示。

表2—1:2.根据运算器设计,选择所需元器件,画出实验电路的详细逻辑图,对开关,单脉冲等定义。

因为和上次实验类似,也是绝大多数的器件在“数据通路”中已安排好,只要控制各个控制点即可,除了开关组通过三态传输门(74LS245)的接法和实验一一样外,设置一个指令寄存器(IR),用74LS573 担当IR。

通过八根连接线和“数据通路”中的八位总线连接起来。

存放ALU 的控制信息SEL2~SEL0。

为了便于观察IR 中内容,可以在IR 的输出端同时接上三个电平显示灯。

有的同学如用三个电平开关设置SEL2~SLE0。

当然可以得出结果,但是由于IR 是一个不可缺少的计算机部件,为了达到完整熟悉计算机各组成部分的目的,这里专门设置了指令寄存器IR。

数据通路组成实验

数据通路组成实验
注意事项:需要加强多端口通用寄存器和双端口存储器的学习,有时候操作和自己想的还是有很多差别的,需要用实践不断去验证自己的想法,才会学到很多知识。
实验名称
实验时间
实验地点
6308
实验人
姓名
合作者
学号
实验小组
第组
实验成绩:
评阅教师签名:
一.实验目的
1.将多端口通用寄存器堆和双端口存储器模块联机;
2. 进一步熟悉计算机的数据通路;
3.掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;
4.锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。
1
01011001000000
ER中数据送入R1
00001111
1
01011000000001
0F0H送入R1
0F0H送入ER
11110000
1
01011001000000
ER中数据送入R1
11110000
1
010110000000011
55H送入R2
55H送入ER
01010101
1
01011001000000
DBUS
1
(2)将RF中R0-R3中的数据送至DR2,并经过ALU的直通运算后从DBUS验证。
完成功能
K0-K14
IR/DBUS
QD
R0=>DR2
111110100000000
DBUS
1
R1=>DR2
111110100001000
DBUS
1
R2=>DR2
111110100010000
DBUS
1
R3=>DR2

实验三 数据通路总线实验

实验三 数据通路总线实验

. .. .实验三数据通路(总线)实验一、实验目的(1)将双端口通用寄存器堆和双端口存储器模块联机;(2)进一步熟悉计算机的数据通路;(3)掌握数字逻辑电路中故障的一般规律,以及排除故障的一般原则和方法;(4)锻炼分析问题与解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障。

二、实验电路图8示出了数据通路实验电路图,它是将双端口存储器实验模块和一个双端口通用寄存器堆模块(RF)连接在一起形成的。

双端口存储器的指令端口不参与本次实验。

通用寄存器堆连接运算器模块,本实验涉及其中的操作数寄存器DR2。

由于双端口存储器RAM是三态输出,因而可以将它直接连接到数据总线DBUS上。

此外,DBUS上还连接着双端口通用寄存器堆。

这样,写入存储器的数据可由通用寄存器提供,而从存储器RAM读出的数据也可送到通用寄存器堆保存。

双端口存储器RAM已在存储器原理实验中做过介绍,DR2运算器实验中使用过。

通用寄存器堆RF(U32)由一个ISP1016实现,功能上与两个4位的MC14580并联构成的寄存器堆类似。

RF含四个8位的通用寄存器R0、RI、R2、R3,带有一个写入端口和两个输出端口,从而可以同时写入一路数据,读出两路数据。

写入端口取名为WR端口,连接一个8位的暂存寄存器(U14)ER,这是一个74HC374。

输出端口取名为RS端口(B端口)、RD端口(A端口),连接运算器模块的两个操作数寄存器DR1、DR2。

RS端口(B端口)的数据输出还可通过一个8位的三态门RS0(U15)直接向DBUS输出。

双端口通用寄存器堆模块的控制信号中,RS1、RS0用于选择从RS端口(B 端口)读出的通用寄存器,RD1、RD0用于选择从RD端口(A端口)读出的通用寄存器。

而WR1、WR0则用于选择从WR端口写入的通用寄存器。

WRD是写入控制信号,当WRD=1时,在T2上升沿的时刻,将暂存寄存器ER中的数据写入通用寄存器堆中由WR1、WR0选中的寄存器;当WRD=0时,ER中的数据不写入通用寄存器中。

计算机组成原理 实验3

计算机组成原理 实验3

实验3通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。

2.掌握通用寄存器的构成和运用。

二、实验要求在掌握了AX、BX运算寄存器的读写操作后,继续完成CX、DX通用寄存器的数据写入与读出。

三、实验原理实验中所用的通用寄存器数据通路如下图所示。

由四片8位字长的74LS574组成CX(R1 R0)、DX(R3 R2)通用寄存器组。

图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通选择。

RXW为寄存器数据写入使能,OP、DI为目的寄存器选择。

DRCK信号为寄存器写脉冲,下降沿有效。

准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。

图2-3-3通用寄存器数据通路四、实验内容五、实验过程 & 实验结果1.寄存器组写操作(1)(2)寄存器组的字写入通过“I/O单元”把CX的地址00打入IR,然后向CX写入2211h,操作步骤如下:按【单拍】按钮通过“I/O单元”把DX的地址02打入IR,然后向DX写入4433h,操作步按【单拍】按钮(3)寄存器组的字节写入通过“I/O单元”把CX的地址00打入IR,然后向CL写入55h,操作步骤按【单拍】按钮按【单拍】按钮K21 K16 K2=000 K21 K6 K2=111在IR保持为“XX00”的条件下,可省略打地址环节,按下流程向CH写入AAh2.寄存器读操作(1)(2)寄存器组字读(3)寄存器组字节读CH。

K7=1K10~K6=00101准双向I/O口实验一、实验目的熟悉与了解准双向I/O口的构成原理。

二、实验要求掌握准双向I/O口的输入/输出特性的运用。

三、实验原理Dais-CMX16+向用户提供的是按准双向原理设计的十六位输入/输出I/O口,当该位为“1”时才能用作输入源,上电或复位(手动态按【返回】键),该十六位I/O口被置位(即为“0FFFFh”)。

通常情况下,在用作输入的时候就不能再有输出定义。

电路结构如图2-3-4所示。

计算机组成CPU数据通路verilog实验报告

计算机组成CPU数据通路verilog实验报告

计算机组成与系统结构实验报告院(系):计算机科学与技术学院专业班级:学号:姓名:同组者:指导教师:实验时间: 2012 年 5 月 23 日实验目的:完成处理器的单周期cpu的设计。

实验仪器:PC机(安装Altebra 公司的开发软件 QuartusII)一台实验原理:控制器分为主控制器和局部ALU控制器两部分。

主控制器的输入为指令操作码op,输出各种控制信号,并根据指令所涉及的ALU运算类型产生ALUop,同时,生成一个R-型指令的控制信号R-type,用它来控制选择将ALUop输出作为ALUctr信号,还是根据R-型指令中的func字段来产生ALUctr信号。

实验过程及实验记录:1.设计过程:第一步:分析每条指令的功能,并用RTL来表示。

第二步:根据指令的功能给出所需的元件,并考虑如何将它们互连。

第三步:确定每个元件所需控制信号的取值。

第四步:汇总各指令涉及的控制信号,生成所反映指令与控制信号之间的关系图。

第五步:根据关系表,得到每个控制信号的逻辑表达式,据此设计控制电路。

2.完成代码的编写,并调试运行。

1)controlmoduleControl(op,func,Branch,Jump,RegDst,ALUSrc,ALUctr,MemtoReg, RegWr,MemWr,ExtOp);input [5:0] op,func;output regBranch,Jump,RegDst,ALUSrc,MemtoReg,RegWr,MemWr,ExtOp; output reg [2:0] ALUctr;always @(op)case(op)6'b000000:beginBranch=0;Jump=0;RegDst=1;ALUSrc=0;MemtoReg=0;RegWr=1;MemWr =0;case(func)6'b100000:ALUctr=3'b001;6'b100010:ALUctr=3'b101;6'b100011:ALUctr=3'b100;6'b101010:ALUctr=3'b111;6'b101011:ALUctr=3'b110;endcaseend6'b001101:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr =0;ExtOp=0;ALUctr=3'b010;end6'b001001:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=0;RegWr=1;MemWr =0;ExtOp=1;ALUctr=3'b000;end6'b100011:beginBranch=0;Jump=0;RegDst=0;ALUSrc=1;MemtoReg=1;RegWr=1;MemWr =0;ExtOp=1;ALUctr=3'b000;end6'b101011:beginBranch=0;Jump=0;ALUSrc=1;RegWr=0;MemWr=1;ExtOp=1;ALUctr=3' b000;end6'b000100:beginBranch=1;Jump=0;ALUSrc=0;RegWr=0;MemWr=0;ALUctr=3'b100; end6'b000010:beginBranch=0;Jump=1;RegWr=0;MemWr=0;endendcaseendmodule2)数据通路DataRoadmoduleDataRoad(Run,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,E xtOp,ALUctr,ALUSrc,busA,busB,busW,Instruction,Reg0,Reg1,Re g2,Reg3,Reg4,Mem1,Mem2,Mem3,Result,Im);inputRun,Clk,RegWr,MemWr,MemtoReg,RegDst,Branch,Jump,ExtOp,ALUS rc;input [2:0] ALUctr;output [31:0]Instruction,busA,busB,busW,Reg0,Reg1,Reg2,Reg3,Reg4,Mem1,M em2,Mem3,Result,Im;wire [31:0] busC,DataOut;wire [15:0] im;wire [4:0] Rs,Rd,Rt;wire Overflow,Zero;QZL qzl(Clk,Branch,Jump,Zero,Instruction,Run);assign Rs=Instruction[25:21];assign Rt=Instruction[20:16];assign Rd=Instruction[15:11];assign im=Instruction[15:0];Registerregister(Run,RegWr,Overflow,RegDst,Rd,Rs,Rt,busW,busA,busB ,Clk,Reg0,Reg1,Reg2,Reg3,Reg4);ALU alu(busA,busC,ALUctr,Zero,Overflow,Result);DataMem(Run,MemWr,Clk,busB,DataOut,Result,Mem1,Mem2,Mem3); MUX mux1(ALUSrc,busB,Im,busC);MUX mux2(MemtoReg,Result,DataOut,busW);Extender ext(im,Im,ExtOp);endmodule3)取指令module QZL(Clk,Branch,Jump,Zero,Instruction,Run);input Clk,Branch,Jump,Zero,Run;output [31:0] Instruction;wire [4:0] addmem;reg [29:0] PC;wire [29:0] Newpc,pc_1,pc_2,pc_3,pc_12,imm30;wire Branch_Zero;assign addmem={PC[2:0],2'b00};InsMem GetIns(addmem,Instruction);always @(negedge Clk)if(Run==1)beginPC<=Newpc;endelsebeginPC<=0;endassign pc_1=PC+1;assign imm30={{14{Instruction[15]}},Instruction[15:0]}; assign pc_2=pc_1+imm30;assign pc_3={PC[29:26],Instruction[25:0]};assign Branch_Zero=Branch&Zero;MUX m1(Branch_Zero,pc_1,pc_2,pc_12);MUX m2(Jump,pc_12,pc_3,Newpc);endmodulemodule InsMem(addmem,Instruction);input [4:0] addmem;output reg[31:0] Instruction;reg [31:0] Mem[31:0];always @(*)beginMem[0]<={6'b100011,5'b00000,5'b00001,5'b00000,5'b00000,6'b 000001};Mem[4]<={6'b100011,5'b00000,5'b00010,5'b00000,5'b00000,6'b 000010};Mem[8]<={6'b000000,5'b00001,5'b00010,5'b00011,5'b00000,6'b 100000};Mem[12]<={6'b101011,5'b00000,5'b00011,5'b00000,5'b00000,6' b000010};Mem[16]<={6'b001101,5'b00100,5'b00100,5'b11111,5'b11111,6' b111111};Mem[20]<={6'b000000,5'b00011,5'b00010,5'b00010,5'b00000,6' b100010};Mem[24]<={6'b000100,5'b00010,5'b00001,5'b00000,5'b00000,6' b001000};Mem[28]<={6'b000010,5'b00000,5'b00000,5'b00000,5'b00000,6' b000000};endalways @(*)Instruction=Mem[addmem];Endmodule4)ALUmodule ALU(A,B,ALUctr,Zero,Overflow,Result);parameter n=32;input [n-1:0] A,B;input [2:0] ALUctr;output Zero,Overflow;output [n-1:0] Result;wire SUBctr,OVctr,SIGctr,SignA,SignB,Cin;wire [1:0] OPctr;wire [n-1:0] X,Y,Z,Less,M,N,Add_Result;wire Add_Carry,Add_Overflow,Add_Sign;assign M={n{1'b0}};assign N={n{1'b1}};assign SUBctr=ALUctr[2];assign OVctr=!ALUctr[1]&ALUctr[0];assign SIGctr=ALUctr[0];assign OPctr[1]=ALUctr[2]&ALUctr[1];assign OPctr[0]=!ALUctr[2]&ALUctr[1]&!ALUctr[0];assign Cin=SUBctr;assign X=B^{n{SUBctr}};assign Y=A|B;Adderad(Cin,A,X,Add_Carry,Add_Overflow,Add_Sign,Add_Result,Zero );assign SignA=Cin^Add_Carry;assign SignB=Add_Overflow^Add_Sign;assign Overflow=Add_Overflow&OVctr;MUX m1(SIGctr,SignA,SignB,Less);defparam m1.k=1;MUX m2(Less,M,N,Z);MUX3_1 m3(Add_Result,Y,Z,Result,OPctr);endmodulemodule MUX3_1(A,B,C,D,ctr);parameter k=32;input [k-1:0] A,B,C;output reg [k-1:0] D;input [1:0] ctr;always @(A or B or C or ctr)if(ctr==2'b00) D=A;elseif(ctr==2'b01) D=B;elseif(ctr==2'b10) D=C;endmodulemoduleAdder(Cin,X,Y,Add_Carry,Add_Overflow,Add_Sign,Add_Result,Z ero);parameter k=32;input [k-1:0] X,Y;input Cin;output reg [k-1:0] Add_Result;output Add_Carry,Add_Overflow,Add_Sign,Zero;reg Add_Carry;assign Zero=~|Add_Result;assign Add_Sign=Add_Result[k-1];assignAdd_Overflow=(X[k-1]&Y[k-1]&~Add_Result[k-1])|(~X[k-1]&~Y[ k-1]&Add_Result[k-1]);always @(X or Y or Cin){Add_Carry,Add_Result}=X+Y+Cin;Endmodule5)数据存数moduleDataMem(Run,MemWr,Clk,DataIn,DataOut,Adr,Mem1,Mem2,Mem3);input Run,MemWr,Clk;input [31:0] DataIn,Adr;output [31:0] DataOut;output [31:0] Mem1,Mem2,Mem3;reg[31:0] Mem[31:0];assign Mem1=Mem[1];assign Mem2=Mem[2];assign Mem3=Mem[3];assign DataOut=Mem[Adr];always @(negedge Clk)if(Run==0)beginMem[0]=0;Mem[1]=10;Mem[2]=20;Mem[3]=30;endelsebeginif(MemWr==1)Mem[Adr]=DataIn;endendmodule6)寄存器moduleRegister(Run,Regwr,Overflow,RegDst,Rd,Rs,Rt,busW,busA,busB ,Clk,Reg0,Reg1,Reg2,Reg3,Reg4);input Regwr,Clk,RegDst,Run,Overflow;input [31:0] busW;input [4:0] Rd,Rt,Rs;output reg [31:0] busA,busB;output [31:0] Reg0,Reg1,Reg2,Reg3,Reg4;reg [31:0] Mem[31:0];reg [4:0] Rw;wire [4:0] Ra,Rb;wire RegWr;assign RegWr=Regwr&~Overflow; assign Ra=Rs;assign Rb=Rt;assign Reg0=Mem[0];assign Reg1=Mem[1];assign Reg2=Mem[2];assign Reg3=Mem[3];assign Reg4=Mem[4];always @(Rd or Rt or RegDst) if(RegDst==1'b1)Rw=Rd;elseRw=Rt;always @(negedge Clk)if(Run==1'b1)beginif(RegWr==1'b1)Mem[Rw]=busW;endelsebeginMem[0]<=0;Mem[1]<=2;Mem[2]<=4;Mem[3]<=6;Mem[4]<=8;endalways @(Ra or Rb)if(Run==1'b1)beginbusA=Mem[Ra];busB=Mem[Rb];endelsebeginbusA=0;busB=0;endendmodule7)数据选择module MUX(ctr,X,Y,Z); parameter k=32;input [k-1:0] X,Y;output reg [k-1:0] Z;input ctr;always @(X or Y or ctr)if(ctr==1'b0) Z<=X;else Z<=Y;endmodule3.进行仿真并验证其正确性:。

计算机组成原理实验报告

计算机组成原理实验报告

实验1 通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。

2.了解通用寄存器的构成和运用。

二、实验要求掌握通用寄存器R3~R0的读写操作。

三、实验原理实验中所用的通用寄存器数据通路如下图所示。

由四片8位字长的74LS574组成R1 R0(CX)、R3 R2(DX)通用寄存器组。

图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通控制。

RWR 为寄存器数据写入使能,DI、OP为目的寄存器写选通。

DRCK信号为寄存器组打入脉冲,上升沿有效。

准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。

图2-3-3 通用寄存器数据通路四、实验内容1.实验连线K23~K0置“1”,灭M23~M0控位显示灯。

然后按下表要求“搭接”部件控制电路。

2.寄存器的读写操作①目的通路当RWR=0时,由DI、OP编码产生目的寄存器地址,详见下表。

通用寄存器“手动/搭接”目的编码②通用寄存器的写入通过“I/O输入输出单元”向R0、R1寄存器分别置数11h、22h,操作步骤如下:通过“I/O输入输出单元”向R2、R3寄存器分别置数33h、44h,操作步骤如下:③源通路当X2~X0=001时,由SI、XP编码产生源寄存器,详见下表。

通用寄存器“手动/搭接”源编码④通用寄存器的读出关闭写使能,令K18(RWR)=1,按下流程分别读R0、R1、R2、R3。

五、实验心得通过这个实验让我清晰的了解了通用寄存器的构成以及通用寄存器是如何运用的,并且熟悉了通用寄存器的数据通路,而且还深刻的掌握了通用寄存器R3~R0的读写操作。

实验2 运算器实验一、实验目的掌握八位运算器的数据传输格式,验证运算功能发生器及进位控制的组合功能。

二、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。

三、实验原理实验中所用的运算器数据通路如图2-3-1所示。

ALU运算器由CPLD描述。

运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输入端分别由2个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。

计算机组成原理_实验报告四(含答案)

计算机组成原理_实验报告四(含答案)

湖南科技学院电子与信息工程学院实验报告课程名称:姓名:学号:专业:班级:指导老师:实验四微程序控制组成实验一、实验目的及要求1.将微程序控制器同执行部件(整个数据通路)联机,组成一台模型计算机。

2.用微程序控制器控制模型计算机的数据通路。

3.执行给定的简单程序,掌握机器指令与微指令的关系,牢固建立计算机的整机概念。

二、实验电路本次实验将前面几个实验中的所模块,包括运算器、存储器、通用寄存器堆等同微程序控制器组合在一起,构成一台简单的模型机。

这是最复杂的一个实验,也将是最有收获的一个实验。

在前面的实验中,实验者本身作为“控制器”,完成了对数据通路的控制。

而在本次实验中,数据通路的控制将交由微程序控制器来完成。

实验机器从内存中取出一条机器指令到执行指令结束的一个指令周期,是由微程序完成的,即一条机器指令对应一个微程序序列。

实验电路大致如下面框图所示。

其中控制器是控制部件,数据通路是执行部件,时序发生器是时序部件。

需使用导线将各个部件控制信号与控制器相连。

三、实验主要仪器设备1.TEC-5计算机组成实验系统1台2.逻辑测试笔一支(在TEC-5实验台上)四、实验任务1.对机器指令组成的简单程序进行译码。

将下表的程序按机器指令格式手工汇编成二进制机器代码,此项任务请在预习时完成。

2.3.使用控制台命令将寄存器内容初始化为:R0=11H,R1=22H,R2=0AAH。

4.使用控制台命令将任务1中的程序代码存入内存中(注意起始地址为30H),以及将内存地址为11H的单元内容设置为0AAH。

5.用单拍(DP)方式执行一遍程序,执行时注意观察各个指示灯的显示并做好记录(完成实验表格),从而跟踪程序执行的详细过程(可观察到每一条微指令的执行过程)。

6.用连续方式再次执行程序。

这种情况相当于计算机正常的工作。

程序执行到STP指令后自动停机。

读出寄存器中的运算结果,与理论值比较。

五、实验步骤和实验结果记录1.程序译码。

计算机组成与原理实验三数据通路组成实验

计算机组成与原理实验三数据通路组成实验

K10(ALU_BUS#)=0, K11(RAM_BUS#)=1,K12(LR/W#)=0, K14(LDAR#)=1,K13(CEL#)=0. 按QD按钮,将DBUS上的数据0FH写入AR指定的存储单元0FH.2.令K6(LDRi)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=0, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1, K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=0F0H, 按QD 按钮, 将0F0H写入地址寄存器AR.淘宝店530213令K2(RD0)=1, K3(RD1)=0,K6(LDRi)=0, K7(LDDR1)=1,K8(RS_BUS#)=1, K9(SW_BUS#)=1,K10(ALU_BUS#)=0, K11(RAM_BUS#)=1,K14(LDAR#)=1, K13(CEL#)=1. 按QD按钮,将R1的数据送入DR1,DR1中的数据通路通过运算器和ALU_BUS三态门送入数据总线DBUS, DBUS应显示0F0H.令K6(LDRi)=0, K7(LDDR1)=0,K8(RS_BUS#)=1, K9(SW_BUS#)=1,K10(ALU_BUS#)=0, K11(RAM_BUS#)=1,K12(LR/W#)=0, K14(LDAR#)=1,K13(CEL#)=0. 按QD按钮,将DBUS上的数据0FH写入AR指定的存储单元0F0H.3.令K6(LDRi)=0,淘宝店530213 K8(RS_BUS#)=1,K9(SW_BUS#)=0, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1, K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=55H, 按QD按钮, 将55H写入地址寄存器AR.令K2(RD0)=0, K3(RD1)=1,K6(LDRi)=0, K7(LDDR1)=1,K8(RS_BUS#)=1, K9(SW_BUS#)=1,K10(ALU_BUS#)=0, K11(RAM_BUS#)=1,K14(LDAR#)=1, K13(CEL#)=1. 按QD按钮,将R2的数据送入DR1,DR1中的数据通路通过运算器和ALU_BUS三态门送入数据总线DBUS, DBUS应显示55H.令K6(LDRi)=0, K7(L淘宝店530213DDR1)=0, K8(RS_BUS#)=1,K9(SW_BUS#)=1, K10(ALU_BUS#)=0,K11(RAM_BUS#)=1, K12(LR/W#)=0,K14(LDAR#)=1, K13(CEL#)=0. 按QD按钮,将DBUS上的数据55H写入AR指定的存储单元55H.4.令K6(LDRi)=0, K8(RS_BUS#)=1,K9(SW_BUS#)=0, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=0AAH, 按QD按钮, 将0AAH写入地址寄存器AR.令K2(RD0)=1, K3(RD1)=1, K6(LDRi)=0, K7(LDDR1)=1, K8(RS_BUS#)=1,K9(SW_BUS#)=1, K10(ALU_BUS#)=0,K11(RAM_BUS#)=1, K14(LDAR#)=1,K13(CEL#)=1. 按QD按钮,将R3的数据送入DR1,DR1中的数据通路通过运算器和ALU_BUS三态门送入数据总线DBUS, DBUS应淘宝店530213显示0AAH.令K6(LDRi)=0, K7(LDDR1)=0,K8(RS_BUS#)=1, K9(SW_BUS#)=1,K10(ALU_BUS#)=0, K11(RAM_BUS#)=1,K12(LR/W#)=0, K14(LDAR#)=1,K13(CEL#)=0. 按QD按钮,将DBUS上的数据0AAH写入AR指定的存储单元0AAH.任务4:分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确令K4(WR0)=0, K5(WR1)=0,K6(LDRi)=1, K8(RS_BUS#)=1,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=0, K12(LR/W#)=1,K13(CEL#)=0, K14(LDAR#)=1. 按QD按钮, 将AR指定的存储器地址0AAH单元的内容0AAH读出,然后写入寄存器R0.2.令K6(LDRi)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=0, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1, K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=55H, 按QD按钮, 将55H写入地址寄存器AR.淘宝店530213令K4(WR0)=1, K5(WR1)=0,K6(LDRi)=1, K8(RS_BUS#)=1,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=0, K12(LR/W#)=1,K13(CEL#)=0, K14(LDAR#)=1. 按QD按钮, 将AR指定的存储器淘宝店530213地址55H单元的内容55H读出,然后写入寄存器R1.3.令K6(LDRi)=0, K8(RS_BUS#)=1, K9(SW_BUS#)=0, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1, K13(CEL#)=1,K14(LDAR#)=0.置SW7-SW0=0F0H, 按QD按钮, 将0F0H写入地址寄存器AR.令K4(WR0)=0, K5(WR1)=1, K6(LDRi)=1, K8(RS_BUS#)=1, K9(SW_BUS#)=1,K10(ALU_BUS#)=1, K11(RAM_BUS#)=0,K12(LR/W#)=1, K13(CEL#)=0,K14(LDAR#)=1. 按QD按钮, 将AR指定的存储器地址0F0H单元的内容0F0H读出,然后写入寄存器R2.4.令K6(LDRi)=0, K8(RS_BU淘宝店530213S#)=1, K9(SW_BUS#)=0,K10(ALU_BUS#)=1, K11(RAM_BUS#)=1,K13(CEL#)=1, K14(LDAR#)=0.置SW7-SW0=0FH, 按QD按钮, 将0FH写入地址寄存器AR.令K4(WR0)=1, K5(WR1)=1,K6(LDRi)=1, K8(RS_BUS#)=1,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=0, K12(LR/W#)=1,K13(CEL#)=0, K14(LDAR#)=1. 按QD按钮, 将AR指定的存储器地址0FH单元的内容0FH读出,然后写入寄存器R3.任务5:校验结果1.令K0(RS0)=0, K1(RS1)=0,K6(LDRi)=0, K8(RS_BUS#)=0,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS淘宝店530213#)=1,读出R0的内容在数据总线上.数据总线DBUS指示灯应为XX H.2.令K0(RS0)=1, K1(RS1)=0,K6(LDRi)=0, K8(RS_BUS#)=0,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R1的内容在数据总线上.数据总线DBUS指示灯应为XX H.3.令K0(RS0)=0, K1(RS1)=1,K6(LDRi)=0, K8(RS_BUS#)=0,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R2的内容在数据总线上.数据总线DBUS指示灯应为XX H.4.令K0(RS0)=1, K1(RS1)=1,K6(LDRi)=0, K8(RS_BUS#)=0,K9(SW_BUS#)=1, K10(ALU_BUS#)=1,K11(RAM_BUS#)=1,读出R3的内容在数据(3)实验任务4,预演、记录实淘宝店530213验过程数据,验证数。

数据通路实验

数据通路实验

数据通路实验一、实验目的1、进一步熟悉TEC-8模型计算机的数据通路的结构2、进一步掌握数据通路中各个控制信号的作用和用法3、掌握数据通路中数据流动的路径二、实验仪器或设备1、TEC-8计算机硬件综合实验系统2、直流万用表3、逻辑测试笔实验电路数据通路实验的电路图:三、总体设计(设计原理、设计方案及流程等)实验任务(1)将数75H写到寄存器R0,数28H写道寄存器R1,数89H写到寄存器R2,数32H 写到寄存器R3。

(2)将寄存器R0中的数写入存储器20H单元,将寄存器R1中的数写入存储器21H单元,将寄存器R2中的数写入存储器22H单元,将寄存器R3中的数写入存储器23H单元。

(3)从存储器20H单元读出数到存储器R3,从存储器21H单元读出数到存储器R2,从存储器21H单元读出数到存储器R1,从存储器23H单元读出数到存储器R0。

(4)显示4个寄存器R0、R1、R2、R3的值,检查数据传送是否正确。

在进行数据运算操作时,由RD1、RD0选中的寄存器通过4选1选择器A送往ALU 的A端口,由RS1、RS0选中的寄存器通过4选1选择器B送往ALU的B端口;信号M、S3、S2、S1、S1和S0决定ALU的运算类型,ALU对A端口和B端口的两个数连同CIN 的值进行算数逻辑运算,得到的数据运算结果在信号ABUS为1时送往数据总线DBUS;在T3的上升沿,数据总线DBUS上的数据结果写入由RD1、RD0选中的寄存器。

在寄存器之间进行数据传送操作时,由RS1、RS0选中的寄存器通过4选1选择器B 送往ALU的B端口;ALU将B端口的数在信号ABUS为1时送往数据总线DBUS;在T3的上升沿将数据总线上的数写入由RD1、RD0选中的寄存器。

ALU进行数据传送操作由一组特定的M、S3、S2、S1、S0、CIN的值确定。

在进行运算操作时,由RS1、RS0选中的寄存器通过4选1选择器B送往ALU的B端口;由RD1、RD0选中的寄存器通过4选1选择器A送往ALU的A端口;ALU对数A和B进行运算,运算的数据结果在信号ABUS为1时送往数据总线DBUS;在T3 的上升沿将数据总线上的数写入由RD1、RD0选中的寄存器。

计算机组成原理实验报告

计算机组成原理实验报告

实验1 通用寄存器实验一、实验目的1.熟悉通用寄存器的数据通路。

2.了解通用寄存器的构成和运用。

二、实验要求掌握通用寄存器R3~R0的读写操作。

三、实验原理实验中所用的通用寄存器数据通路如下图所示。

由四片8位字长的74LS574组成R1 R0(CX)、R3 R2(DX)通用寄存器组。

图中X2 X1 X0定义输出选通使能,SI、XP控制位为源选通控制。

RWR为寄存器数据写入使能,DI、OP为目的寄存器写选通。

DRCK信号为寄存器组打入脉冲,上升沿有效。

准双向I/O输入输出端口用于置数操作,经2片74LS245三态门与数据总线相连。

图2-3-3 通用寄存器数据通路四、实验内容1.实验连线2.寄存器的读写操作①目的通路当RWR=0时,由DI、OP编码产生目的寄存器地址,详见下表。

通用寄存器“手动/搭接”目的编码②通用寄存器的写入通过“I/O输入输出单元”向R0、R1寄存器分别置数11h、22h,操作步骤如下:通过“I/O输入输出单元”向R2、R3寄存器分别置数33h、44h,操作步骤如下:③源通路当X2~X0=001时,由SI、XP编码产生源寄存器,详见下表。

通用寄存器“手动/搭接”源编码④通用寄存器的读出五、实验心得通过这个实验让我清晰的了解了通用寄存器的构成以及通用寄存器是如何运用的,并且熟悉了通用寄存器的数据通路,而且还深刻的掌握了通用寄存器R3~R0的读写操作。

实验2 运算器实验一、实验目的掌握八位运算器的数据传输格式,验证运算功能发生器及进位控制的组合功能。

二、实验要求完成算术、逻辑、移位运算实验,熟悉ALU运算控制位的运用。

三、实验原理实验中所用的运算器数据通路如图2-3-1所示。

ALU运算器由CPLD描述。

运算器的输出FUN经过74LS245三态门与数据总线相连,运算源寄存器A和暂存器B的数据输入端分别由2个74LS574锁存器锁存,锁存器的输入端与数据总线相连,准双向I/O输入输出端口用来给出参与运算的数据,经2片74LS245三态门与数据总线相连。

数据通路组成实验参考

数据通路组成实验参考

数据通路组成实验参考(1) 接线IAR_BUS#接VCC,禁止中断地址寄存器IAR向数据总线DBUS送数据。

CER 接GND,禁止存储器右端□工作。

ARl_INC接GND,禁止ARl加l。

S2接GND,S1接GND,S0接VCC,使运算器ALU处于直通方式。

M2接GND,使DR2选择寄存器堆RF作为数据来源。

置DP=1,DZ=0,DB=0,使实验系统开机后处于单拍状态。

K0接SW_BUS#,Kl接RS_BUS#,K2接ALU_BUS,K3接CEL#,K4接IRW,K5接LDAR1,K6接LDDR2,K7接LDER,K8接RS0,K9接RS1,Kl0接RD0,Kl1接RDl,Kl2接WR0,K13接WRl,K14接WRD。

合上电源。

按 CLR#按钮,便实验系统处于初始状态。

(2) 向RF中的四个通用寄存器分别置入数据令Kl(RS_BUS#)= l,K2(ALU_BUS)=0,K3(CEL#)=l,K4(IRW)=l,K5(LDARl)=0,K6(LDDR2)=0,K8(RS0)=0,K9(RS1)=0,Kl0(RD0)=0,Kll(RDl)=0,Kl2(WR0)=0,K13(WRl)=0,K14(WRD)=0。

令K0(SW_BUS#)=0,K7(LDER)=1。

置SW7-SW0为0FH,按一次QD按钮,将0FH写入暂存寄存器ER。

令K7(LDER)=0,K14(WRD)=l,Kl2(WR0)=0,K13(WRl)=0,按一次QD按钮,将0FH(在ER中)写入R0寄存器。

令K0(SW_BUS#)=0,K7(LDER)=1,K14(WRD)=0。

置SW7-SW0为0F0H,按一次QD 按钮,将0F0H写入暂存寄存器ER。

令K7(LDER)=0,K14(WRD)=l,Kl2(WR0)=l,K13(WRl)=0,按一次QD按钮,将0F0H(在ER中)写入Rl寄存器。

令K0(SW_BUS#)=0,K7(LDER)=1。

计组实验数据通路实验报告

计组实验数据通路实验报告

存储器实验预习实验报告疑问:1、数据通路是干嘛的?2、数据通路如何实现其功能?3、实验书上的存储器部分总线开关接在高电平上,是不是错了?实验报告一、波形图:参数设置:Endtime:2.0us Gridsize:100.0ns信号设置:clk:时钟信号,设置周期为100ns占空比为50%。

bus_sel: sw|r4|r5|alu|pc_bus的组合,分别代表的是总线(sw_bus)开关,将存储器r4的数据显示到总线上,将存储器r5的数据显示到总线上,将alu的运算结果显示到总线上,将pc的数据打入AR中二进制输入,低电平有效。

alu_sel:m|cn|s[3..0]的组合,代表运算器的运算符号选择,二进制输入,高电平有效。

ld_reg:lddr1|lddr2|ldr4|ldr5|ld_ar的组合,分别表示将总线数据载入寄存器r1,r2,r4, r5或AR中,二进制输入,高电平有效。

pc_sel: pc_clr|ld|en的组合,分别代表地址计数器PC的清零(pc_clr)、装载(pc_ld)和计数使能信号(pc_en),二进制输入,低电平有效。

we_rd:信号we和rd的组合,分别代表对ram的读(we)与写(rd)的操作,二进制输入,高电平有效k:k [7]~ k [0],数据输入端信号,十六进制输入。

d: d[7]~d[0],数据输出中间信号,十六进制双向信号。

d~result: d [7] result ~d[0] result,最终的数据输出信号,十六进制输出。

ar: ar[7]~ ar[0],地址寄存器AR的输出结果,十六进制输出。

pc: pc [7]~ pc [0],地址计数器PC的输出结果,十六进制输出。

仿真波形以在01H单元中写入05H、02H单元中写入0AH并进行【(A加B)减(非A与B)加B】为例:1)初始状态:bus_sel=11111,alu_sel=00000,ld_reg=00000,pc_sel=100,we_rd=00,k=00H,总线上无数据,呈高阻态。

存储器实验和数据通路实验(选做)

存储器实验和数据通路实验(选做)

实验三存储器实验和数据通路实验(选做)一、实验目的:掌握半导体静态随机存储器RAM的特性和使用方法。

掌握地址和数据在计算机总线的传送关系。

了解运算器和存储器如何协同工作。

二、预习要求:预习半导体静态随机存储器6116的功能。

三、实验设备:EL-JY-II8型计算机组成原理实验系统一套,排线若干。

四、电路组成:电路图见图3-1,6116的管脚分配和功能见图3-2。

图3-1 存储器电路图3-2(a)6116管脚分配图3-2(b)6116功能图3-3五、工作原理:实验中的静态存储器由2片6116(2K×8)构成,本实验仅使用了一片(8位,另一片是为16位机准备的)。

其数据线D0~D7接到数据总线,地址线A0~A7由地址锁存器(74LS273)给出。

黄色地址显示灯MA7-MA0与地址总线相连,显示地址总线的内容。

数据经三态门(74LS245)连至数据总线,分时给出地址和数据。

因地址寄存器为8位,接入6116的地址A7-A0,而高三位A8-A10接地,所以其实际容量为28=256字节。

6116有三个控制线,/CE(片选)、/R(读)、/W(写)。

其写时间与T3脉冲宽度一致。

六、实验内容:1.学习静态RAM的存储方式,往RAM的任意地址里存放数据,然后读出并检查结果是否正确。

2.组成计算机数据通路,实现计算机的运算并存储功能。

(选做,只提供开关控制操作方式实验步骤,见附加实验)注:6116为静态随机存储器,如果掉电,所存的数据全部丢失!七、实验步骤Ⅰ、单片机键盘操作方式实验注:在进行单片机键盘控制实验时,必须把K4开关置于“OFF”状态,否则系统处于自锁状态,无法进行实验。

1.实验连线:实验连线图如图3-4所示。

连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。

图3-4 实验三键盘实验接线图2.写数据:在监控指示灯滚动显示【CLASS SELECt】时按【实验选择】键,显示【ES--_ _ 】输入03或3,按【确认】键,监控指示灯显示为【ES03】,表示准备进入实验三程序,也可按【取消】键来取消上一步操作,重新输入。

计算机组成原理实验-数据通路实验

计算机组成原理实验-数据通路实验

计算机组成原理课程实验报告9.5 数据通路实验姓名:曾国江学号:系别:计算机工程学院班级:网络工程1班指导老师:完成时间:评语:得分:一、实验类型本实验类型为验证型+分析型+设计型二、实验目的1.进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路.3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法.4.锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障.三、实验设备1、TEC-5实验系统一台2、双踪示波器一台3、逻辑测试笔一支四、实验电路数据通路实验电路图如图9.7所示。

它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。

存储器的指令端口(右端口)不参与本次实验。

通用寄存器堆连接运算器模块,本次实验涉及其中的DRl。

由于双端口存储器是三态输出,因而可以直接连接到DBUS上。

此外,DBUS还连接着通用寄存器堆。

这样,写入存储器的数据由通用寄存器提供,从RAM中读出的数据也可以放到通用寄存器堆中保存。

本实验的各模块在以前的实验中都已介绍,请参阅前面相关章节。

注意实验中的控制信号与模拟它们的开关K0~K15的连接。

五、实验任务1、将实验电路与控制台的有关信号进行连接。

2、用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:RO=0FH,R1=0F0H,R2=55H,R3=0AAH。

3、用8位数据开关向AR送入地址0FH,然后将R0中的数据0FH写入双端口存储器中.用同样的方法,依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4、分别将RAM的0AAH单元数据写入R0,55H单元数据写入R1,0F0H单元数据写入R2,0FH单元数据写入R3.然后将R0-R3中的数据读出,验证数据的正确性,并记录数据.六、实验要求1、做好实验预习,掌握实验电路的数据通路特点和通用寄存器堆的功能特性和使用方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Guangzhou Colle-ge of South China University of Technology 计算机组成原理课程实验报告9.5数据通路实验姓名:曾国江______________________学号:____________________________系别:计算机工程学院班级:网络工程1班指导老师:_________________________完成时间:_________________________评语:得分:一、实验类型本实验类型为验证型+分析型+设计型二、实验目的1•进一步熟悉计算机的数据通路2.将双端口通用寄存器堆和双端口存储器模块连接,构成新的数据通路.3.掌握数字逻辑电路中的一般规律,以及排除故障的一般原则和方法.4.锻炼分析问题和解决问题的能力,在出现故障的情况下,独立分析故障现象,并排除故障•三、实验设备1、TEC-5实验系统一台2、双踪示波器一台3、逻辑测试笔一支、实验电路DBUS7DBUSO 左端口> 1JWK273) H3F2HTQCn*4Al JU <181CnN戍蜩口通用寄"器那RFCispLSI10165-一耐'12ARM —T2 —-双堵口存储器IDT7132数据通路实验电路图如图9.7 所示。

它是将双端口存储器模块和双端口通用寄存器堆模块连接在一起形成的。

存储器的指令端口(右端口)不参与本次实验。

通用寄存器堆连接运算器模块,本次实验涉及其中的DRl 。

由于双端口存储器是三态输出,因而可以直接连接到DBUS 上。

此外,DBUS 还连接着通用寄存器堆。

这样,写入存储器的数据由通用寄存器提供,从RAM 中读出的数据也可以放到通用寄存器堆中保存。

本实验的各模块在以前的实验中都已介绍,请参阅前面相关章节。

注意实验中的控制信号与模拟它们的开关K0~K15 的连接。

五、实验任务1、将实验电路与控制台的有关信号进行连接。

2、用8位数据开关SW7-SW0向RF中的四个通用寄存器分别置入以下数据:RO=OFH, R1=0F0H,R2=55H,R3=0AAH。

3、用8位数据开关向AR送入地址OFH,然后将R0中的数据OFH写入双端口存储器中. 用同样的方法依次将R1,R2,R3中的数据分别置入RAM的0F0H,55H,0AAH单元.4、分别将RAM 的0AAH 单元数据写入R0,55H 单元数据写入R1,0F0H 单元数据写入R2,0FH单元数据写入R3然后将R0-R3中的数据读出,验证数据的正确性,并记录数据•六、实验要求1、做好实验预习,掌握实验电路的数据通路特点和通用寄存器堆的功能特性和使用方法。

2、写出实验报告,内容是:(1)实验目的。

(2)写出详细的实验步骤、记录实验数据及校验结果。

(3)其他值得讨论的问题。

七、实验步骤和实验结果实验步骤(一)一一向RF中的四个通用寄存器分别置入数据如下数据:RO=OFH, R1=0F0H, R2=55H, R3=0AAH.首先将DP开关置1,DB开关置0,编程开关打到正常控制台的有关信号线路连接如下所示:向RF中的四个通用寄存器分别置入数据R0=OFH, R1=0F0H, R2=55H, R3=0AAH. 控制银角的连线和开关设置如下:1、将数据OFH置入到通用寄存器R0中拨动SW7-SW开关,设置输入的数据OFH,如下所示:按QD数据OFH已经写入到了通用寄存器R0中同理,将数据OFOH, 55H, OAAH分别写入到通用寄存器R1、R2 R3中的操作与上述类似,其中开关K2、K3的作用是用来选择RO~R3>中的一个寄存器。

在本实验中,K2=O,K3=O表示选择了寄存器RO, K2=1,K3=O表示选择了寄存器R1,K2=O,K3=1表示选择了寄存器R2, K2=1,K3=1表示选择了寄存器R3,只要改变K2和K3 的电平与SW7-SW开关即可。

实验步骤(二)一一用8位数据开关向AR送入地址,然后将数据写入双端口存储器中1、向地址寄存器AR送入地址OFH,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址OFH,如下所示:按QD地址OFH将写入到地址寄存器AR中将数据OFH写入到双端口存储器中将寄存器RO中的数据OFH写入到双端口存储器RAM中的OFH单元中,拨动数据通路开关如下:按动QD寄存器RO中的数据OFH已经写入到双端口存储器RAM中的OFH单元中DBUS显示情况:0000 11112、向地址寄存器AR送入地址0F0H拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址0F0H,如下所示:按QD地址0F0H将写入到地址寄存器AR中将数据0F0H写入到双端口存储器中将寄存器R1中的数据0F0H写入到双端口存储器RAM中的0F0H单元中,拨动数据通路开关如下:按动QD寄存器R1中的数据0F0H已经写入到双端口存储器RAM中的0F0H单元中DBUSa 示情况:1111 0000 ___________3、向地址寄存器AR送入地址55H,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址55H,如下所示:按QD地址55H将写入到地址寄存器AR中将数据55H写入到双端口存储器中将寄存器R2中的数据55H写入到双端口存储器RAM中的55H单元中,拨动数据通路开关如下:按动QD寄存器R2中的数据55H已经写入到双端口存储器RAM中的55H单元中DBUS显示情况:0101 01014、向地址寄存器AR送入地址0AAH拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址0AAH如下所示:按QD地址0AAH将写入到地址寄存器AR中将数据0AAH写入到双端口存储器中将寄存器R3中的数据0AAH写入到双端口存储器RAM中的0AAH单元中,拨动数据通路开关如下:按动QD寄存器R3中的数据0AAH已经写入到双端口存储器RAM中的0AAH单元中DBUSa 示情况:1010 1010 ___________实验步骤(三)一一将双端口存储器RAM中的数据写入到通用寄存器RF中1、将RAM勺OAAH单元数据写入RO选择AR中的OAAH地址单元,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址OAAH如下所示:按QD将OAAH单元数据写入R0,拨动数据通路开关如下:按QD OAAH单元中的数据OAAH已经写入R0中,DBUS显示情况:1010 10102、将RAM勺55H单元数据写入R1选择AR中的55H地址单元,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址55H,如下所示:按QD将55H单元数据写入R1,拨动数据通路开关如下:按QD 55H单元中的数据55H已经写入R1中,DBUS显示情况:0101 0101 ________3、将RAM勺0F0H单元数据写入R2 选择AR中的0F0H地址单元,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址0F0H,如下所示:按QD将0F0H单元数据写入R2,拨动数据通路开关如下:0F0H已经写入R2中,DBUS显示情况:1111 0000 ___________4、将RAM勺0FH单元数据写入R3 选择AR中的0FH地址单元,拨动数据通路开关如下:拨动SW7-SW开关,设置输入的地址OFH,如下所示:按QD将OFH单元数据写入R3,拨动数据通路开关如下:按QD OFOH单元中的数据OFOH已经写入R3中,DBUS显示情况:0000 1111 _______实验步骤(四)——验证R0~R3中的数据在理论上,R0=1010 1010, R1= 0101 0101, R2=1111 0000 ,R3=0000 1111查看RO中的数据,拨动数据通路开关如下:DBUSa 示情况:1010 1010如下图所示查看R1中的数据,拨动数据通路开关如下:DBUS显示情况:0101 0101如下图所示查看R2中的数据,拨动数据通路开关如下:DBUS显示情况:1111 0000如下图所示查看R3中的数据,拨动数据通路开关如下:DBUS显示情况:0000 1111八、实验分析在第一次做完实验后,我们开始验证R0~R3中的数据,结果4个寄存器中的数据都与理论上的数据不一样,说明在实验操作过程中,有地方出现错误了。

后来,我们将预习报告中的实验过程全部都检查了一遍,结果发现有地方出错。

当我们开始把数据从寄存器R0~R3—个一个写入双端口存储器时,由于粗心,没有将控制端RS-BUS关闭,因此在开始把数据从寄存器写入到双端口存储器时,RS-BUS与RAM-BUS发送冲突,导致数据不能正确的从存储器写入到寄存器中。

后来我们做第二遍实验,把RS-BUS设置为无效,即使RS-BUS#=,1 我们的最后实验验证才正确。

九、实验总结通过本次实验,我们进一步熟悉计算机的数据通路,同时也锻炼了分析问题与解决问题的能力。

在经过三次实验课后,现在我们已经完全能自己看图做实验了,并且对实验电路图中各个控制端口的功能都已经十分熟悉了。

通过三次实验课,我们发现,在电路图的各控制端口旁表上控制开关,不仅能有效的提高实验操作效率,而且还能使我们的思路保持清晰。

尤其是在本次实验,从一开始就要将全部控制银角接上,没有清晰的思路,很容易就会犯错误,当然,在实验前,我们都已经将实验步骤事先写好,虽然有些错误,但我们在实验过程中一个一个的将它们改正了过来。

参考文献:计算机硬件基础实验教材(第二版)- 清华大学出版社。

相关文档
最新文档