杭电计算机组成原理寄存器堆设计实验-4

合集下载

计算机组成原理寄存器堆实验报告

计算机组成原理寄存器堆实验报告

实验七-八寄存器堆实验姓名:陈衍席学号:1205110125 网工1202【实验环境】1. Windows 2000 或 Windows XP2. QuartusII9.1 sp2、DE2-115计算机组成原理教学实验系统一台,排线若干。

【实验目的】本次实验要求掌握触发器的基本原理,掌握寄存器和寄存器堆的组成原理。

【实验要求】本次实验只需要设计并实现8位触发器和32位触发器。

【实验原理】寄存器是数字电路中的基本模块,许多复杂的时序逻辑电路都是由它构成的。

在数字系统中,寄存器是一种在某一特定信号的控制下用于存储一组二进制数据的时序逻辑电路。

通常使用触发器构成寄存器,把多个D触发器的时钟连接起来就可以构成一个存储多位二进制的寄存器。

寄存器中二进制数的位可以用两种方式移入或移出寄存器。

第一种方法是以串行的方式将数据每次移动一位,这种方法称之为串行移位(Serial Shifting),线路较少,但耗费时间较多。

第二种方法是以并行的方式将数据同时移动,这种方法称之为并行移位(Parallel Shifting),线路较为复杂,但是数据传送的速度较快。

因此,按照数据进出移位寄存器的方式,可以将移位寄存器分为四种类型:串行输入串行输出移位寄存器(Serial In- Serial Out)、串行输入并行输出移位寄存器(Serial In- Parallel Out)、并行输入串行输出移位寄存器(Parallel In- Serial Out)、并行输入并行输出移位寄存器(Parallel In-ParallelOut)。

在CPU设计中,寄存器堆是一个可以保存指令和数据的必不可少的器件,是RISC微处理器的核心,所有内部、外部数据的读取都直接和它发生关系。

它由一组寄存器组成,只要给出寄存器堆中该寄存器的编号,则其中的内容都可以读或者写。

【实验步骤】1、8位触发器设计8位触发器中包括,输入信号:一个8位数据源D,1位CLRN复位信号,1位EN使能信号,1位CLK时钟信号;输出信号:8位Q。

计算机组成原理--实验报告

计算机组成原理--实验报告

实验一寄存器实验实验目的:了解模型机中各种寄存器结构、工作原理及其控制方法。

实验要求:利用CPTH 实验仪上的K16..K23 开关做为DBUS 的数据,其它开关做为控制信号,将数据写入寄存器,这些寄存器包括累加器A,工作寄存器W,数据寄存器组R0..R3,地址寄存器MAR,堆栈寄存器ST,输出寄存器OUT。

实验电路:寄存器的作用是用于保存数据的CPTH 用74HC574 来构成寄存器。

74HC574 的功能如下:- 1 -实验1:A,W 寄存器实验原理图寄存器A原理图寄存器W 原理图连接线表:- 2 -系统清零和手动状态设定:K23-K16开关置零,按[RST]钮,按[TV/ME]键三次,进入"Hand......"手动状态。

在后面实验中实验模式为手动的操作方法不再详述.将55H写入A寄存器二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据55H置控制信号为:按住STEP脉冲键,CK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器。

放开STEP键,CK由低变高,产生一个上升沿,数据55H被写入A寄存器。

将66H写入W寄存器二进制开关K23-K16用于DBUS[7:0]的数据输入,置数据66H- 3 -置控制信号为:按住STEP脉冲键,CK由高变低,这时寄存器W 的黄色选择指示灯亮,表明选择W寄存器。

放开STEP 键,CK 由低变高,产生一个上升沿,数据66H 被写入W 寄存器。

注意观察:1.数据是在放开STEP键后改变的,也就是CK的上升沿数据被打入。

2.WEN,AEN为高时,即使CK有上升沿,寄存器的数据也不会改变。

实验2:R0,R1,R2,R3 寄存器实验连接线表- 4 -将11H、22H、33H、44H写入R0、R1、R2、R3寄存器将二进制开关K23-K16,置数据分别为11H、22H、33H、44H置控制信号为:K11、K10为10,K1、k0分别为00、01、10、11并分别按住STEP 脉冲键,CK 由高变低,这时寄存器R0、R1\R2\R3 的黄色选择指示灯分别亮,放开STEP键,CK由低变高,产生一个上升沿,数据被写入寄存器。

实验内容寄存器堆(RegisterFile)ra0,rd0;ra1,rd1

实验内容寄存器堆(RegisterFile)ra0,rd0;ra1,rd1
• 检查仿真结果是否正确
• 检查下载测试是否正确
• 检查代码设计,代码是否独立完成
2019-3-28
2019春_计算机组成原理实验_CS-USTC
3
实验报告
• 内容包括但不限于:逻辑设计(数据通路和状态 图)、核心代码、仿真/下载结果、结果分析、实 验总结、意见/建议等,附设计和仿真代码
• 实验检查后一周内提交实验报告
2019春_计算机组成原理实验_CS-USTC
2
实验要求和检查
• 完成1和3的的逻辑设计、仿真和下载测试
– 逻辑设计采用模块化设计 – 仿真3时忽略display – 下载测试时,时钟采用板载100MHz时钟,其他输入
由拨动开关和按钮开关设置,结果输出至LED指示灯 或7段数码管
• 查看1和2的电路性能和资源使用情况
rst
FIFO
16
display
4
out empty
- out, in:出/入队列数据
clk
full
- full, empty:队列空/满, 空/满时忽略出/入队操作
- display:8个数码管的控 制信号,显示队列状态
.
1. 2 3 2. 3
复位 数据1, 2, 3依次入队 列
数据1出队列
2019-3-28
– ftp://202.38.79.134/ 相应文件夹 – 文件名格式:Labn_学号_姓名.pdf (其中n为第几次
实验,不满足该格式的视为未提交实验报告)
• 严禁抄袭,否则作零分处理
2019-3-28
2019春_计算机组成原理实验_CS-USTC
4
The End
2019-3-28
2019春_计算机组成原理实验_CS-USTC

计算机组成原理实验4进位实验实验5移位实验

计算机组成原理实验4进位实验实验5移位实验

实验4 进位控制实验一、实验目的1. 理解带进位控制的电路图。

2.验证带进位控制的算术运算发生器的功能。

3.按给定数据,完成实验几种指定的算术运算。

二、实验原理1.在算术逻辑运算实验的基础上,增加了进位控制部分,进位控制部分电路。

它主要由一个74LS74锁存器构成。

2.AR是74LS74琐存器的控制信号,低电平有效,与T4脉冲信号配合,可打开琐存器,把74LS181运算的进位结果存入其内。

(3)CY是高位进位标志信号,连接一个发光二极光,能显示其进位情况。

当进位时此灯“亮”,无进位时指示灯“灭”。

具体电路见图4-1带进位运算器通路图。

图4-1带进位运算器通路图图4-1带进位运算器通路三、实验注意事项(1)本实验使用T4脉冲信号,实验时将“W/R UNIT”的T4接至“STA TE UNIT”中KK2的正脉冲冲插头上,按下微动开关KK2(可产生T4正脉冲),即可获得本实验所需的单脉冲信号。

(2)S3、S2、S1、S0、Cn、M、LDDR1、LDDR2、AUL-B、SW-B、AR均为电平信号,与“SWITCH UNIT”中的二进制开关对应相连接,用于产生模拟信号。

(3)ALU-B、SW-B为低电平有效;LDDR1,LDDR2为高电平有效。

(4)实验仪上进位指示灯CY为“亮”时,表示有进位,“灭”表示无进位。

(5)实验仪上ZI(zero indicator)是判零标志灯,当两片74LS181输出全为“0”时,ZI灯亮,当两片74LS181输出不全为“0”时,ZI灯灭。

(6)每次做进位操作前都必须先对进位标志清零。

清零后,注意观看实验仪上进位指示灯CY是否已灭,若清零后CY不灭,要检查原因。

(7)进位清零操作时,有关控制端的状态是:S3、S2、S1、S0、M、AR、LDDR1、LDDR2 置为00000000,然后按下微动开关KK2即可。

(8)做清零操作时,DR1寄存器的内容不能为11111111。

四、实验内容和步骤1. 实验连线实验连线图见图4-2:图4-2 带进位运算实验接线图接线完成后,检查无误,方可接通电源,要养成一个好习惯,通电前要细心检查电路,以防短路发生,造成实验设备的损坏。

杭电计组实验-存储器设计实验

杭电计组实验-存储器设计实验

杭电计组实验-存储器设计实验————————————————————————————————作者:————————————————————————————————日期:实验报告2018 年 5 月 5 日成绩:姓名阳光男学号16041321 班级16052317专业计算机科学与技术课程名称《计算机组成原理与系统结构试验》任课老师张翔老师指导老师张翔老师机位号默认实验序号5实验名称《实验五存储器设计实验》实验时间2018/5/12实验地点1教211实验设备号个人电脑、Nexys3开发板一、实验程序源代码存储器顶层电路代码:module top_RAM_B(Mem_Addr,C,Mem_Write,Clk,LED);input [7:2]Mem_Addr;//开关的3、4、5、6、7、8位input Mem_Write,Clk;//clk为按键C9,读写使能信号为按键C4,0为读,1为写input [1:0]C;//选择写入数据+读操作时选择显示字节,为开关1、2位output reg [7:0]LED;wire [31:0]M_R_Data;//存在存储器里的32位读出数据reg [31:0]M_W_Data;//寄存在暂存器的32位写入数据RAM_B test_ram (.clka(Clk), //输入时钟信号.wea(Mem_Write), //输入读写信号.addra(Mem_Addr[7:2]), //输入5位地址信号.dina(M_W_Data), //写入32位数据.douta(M_R_Data) //读出32位数据);always@(*)beginLED=0;//初始化M_W_Data=0;//初始化if(!Mem_Write)//读操作begincase(C)2'b00:LED=M_R_Data[7:0];//读出数据的0-7位2'b01:LED=M_R_Data[15:8];//读出数据的8-15位2'b10:LED=M_R_Data[23:16];//读出数据的16-23位2'b11:LED=M_R_Data[31:24];//读出数据的24-31位endcaseendelsebegincase(C)2'b00:M_W_Data=32'h0055_7523;//写入第一个数据2'b01:M_W_Data=32'h1234_5678;//写入第二个数据2'b10:M_W_Data=32'h8765_4321;//写入第三个数据2'b11:M_W_Data=32'hffff_ffff;//写入第四个数据endcaseendendendmodule测试代码:module test;// Inputsreg clka;reg [0:0] wea;reg [5:0] addra;reg [31:0] dina;// Outputswire [31:0] douta;// Instantiate the Unit Under Test (UUT)RAM_B uut (.clka(clka),.wea(wea),.addra(addra),.dina(dina),.douta(douta));initial begin// Initialize Inputsclka = 0;wea = 0;addra = 0;dina = 0;// Wait 100 ns for global reset to finish #100;// Add stimulus hereclka = 1;wea = 0;addra = 6'b000001;dina = 32'h0000_0003;#100;clka = 0;wea = 0;addra = 6'b000001;dina = 32'h0000_0607;#100;clka = 1;wea = 1;addra = 6'b000001;dina = 32'hFFFF_FFFF;#100;clka = 0;wea = 1;addra = 6'b000001;dina = 32'hFFFF_FFFF;endendmodule二、仿真波形三、电路图顶层电路模块顶层电路内部结构:四、引脚配置(约束文件)NET "Clk" LOC = C9;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;NET "Mem_Addr[7]" LOC = U8;NET "Mem_Addr[6]" LOC = N8;NET "Mem_Addr[5]" LOC = M8;NET "Mem_Addr[4]" LOC = V9;NET "Mem_Addr[2]" LOC = T10;NET "Mem_Write" LOC = C4;NET "Mem_Addr[3]" LOC = T9;NET "C[1]" LOC = T5;NET "C[0]" LOC = V8;NET "LED[7]" LOC = T11;NET "LED[5]" LOC = N11;NET "LED[6]" LOC = R11;五、思考与探索(1)读操作实验结果记录表存储器地址初始化数据读出数据写入新数据读出数据5’b000000 32’b0000000032’b0000000032'h0055_752332'h0055_7523 5’b000001 32’b0000000132’b0000000132'h0055_752332'h0055_7523 5’b000002 32’b0000000232’b0000000232'h0055_752332'h0055_7523 5’b000003 32’b0000000332’b0000000332'h0055_752332'h0055_7523 5’b000004 32’b0000000432’b0000000432'h0055_752332'h0055_7523 5’b000005 32’b0000000532’b0000000532'h0055_752332'h0055_7523 5’b000006 32’b0000000632’b0000000632'h0055_752332'h0055_7523 5’b000007 32’b0000000732’b0000000732'h0055_752332'h0055_7523 (2)答:这些单元的数据已经被改写了。

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验

杭电计算机组成原理寄存器堆设计实验计算机组成原理是计算机科学与技术的基础课程之一,它涉及到计算机的基本组成部分和原理。

在这门课程中,学生通常需要进行一系列的实验来加深对计算机组成原理的理解和应用。

其中之一是关于寄存器堆的设计实验。

寄存器堆是计算机中重要的组成部分之一,它用于存储、读取和写入数据。

在计算机中,数据通常被存储在寄存器中,然后进行各种操作。

因此,设计一个高效可靠的寄存器堆对于计算机的性能至关重要。

根据实验要求,我们需要设计一个8位的寄存器堆,并实现读取、写入和清零等操作。

以下是针对该实验的设计思路和实施步骤。

首先,我们需要确定寄存器堆的结构。

由于该寄存器堆为8位宽度,我们选择使用一个8x8的存储单元阵列。

每个存储单元都可以存储一个8位的数据。

整个寄存器堆由8个存储单元组成,每个存储单元对应一个地址,即0~7接下来,我们需要设计寄存器堆的读写电路。

对于读操作,我们需要通过地址线来选择要读取的存储单元,并将其输出到数据线。

对于写操作,我们同样需要通过地址线来选择要写入的存储单元,并将数据线上的数据写入该存储单元。

为了实现这些操作,我们需要使用多路选择器和数据解码器。

在设计中,我们还需要考虑到时钟信号的输入,以确保读写操作在时钟的上升沿或下降沿进行。

此外,我们还需要添加清零功能,以便将寄存器堆的值重置为零。

为实现清零功能,我们可以将一个额外的输入线与所有存储单元的清零输入连接。

在实施阶段,我们需要使用Verilog或其他硬件描述语言来实现设计。

在代码中,我们首先声明一个8位宽的存储单元阵列作为寄存器堆的基本组成部分。

然后,我们定义读写电路,包括地址线、数据线、多路选择器和数据解码器。

最后,我们添加时钟信号和清零功能。

在完成设计后,我们可以通过仿真工具进行验证。

通过输入不同的数据和地址,观察输出结果是否符合预期。

如果存在问题,我们可以进行调试并进行必要的修改。

一旦仿真结果正确无误,我们就可以开始进行硬件实验了。

计算机组成原理堆栈寄存器实验报告

计算机组成原理堆栈寄存器实验报告

计算机组成原理实验三堆栈寄存器实验一、实验目的:1、熟悉堆栈概念。

2、熟悉堆栈寄存器的组成和硬件电路。

二、实验要求:完成3个堆栈寄存器的数据写入与读出。

三、实验原理:实验中所用的堆栈寄存器数据通路由三片8位字长的LS374组成R0、R1、R2寄存器堆。

三个寄存器的输入/输出已连至BUS总线R0-B、R1-B、R2-B经CBA二进制控制开关译码产生数据输出选通信号(详见下表),LDR0、LDR1、LDR2为数据写入允许信号,由二进制控制开关来模拟,均为高电平有效;T4信号为寄存器数据写入脉冲,上升沿有效。

在手动实验状态(即“H”装态)每按动一次“单步”命令键,产生一个T4信号。

下表为寄存器单元选通真值表:四、实验连接:1.连接实验线路,把位于实验装置左上方的CTR-OUT UNIT (LDR0、LDR1、LDR2、/SW-B)与实验装置右中央的CTR-OUT unit (LDR0、LDR1、LDR2)及实验装置左下方INPUT-UNIT(/SW-B)中的控制信号作对应连接。

2.具体连接信号:/SW-B,/R0-B,/R1-B ,/R2-B ,LDR0,LDR1,LDR2五、实验仪器状态设定:在闪动的“P.”状态下按动“增址”命令键,使LED显示器自左向右第一位显示提示符“H”,表示本装置已进入手动单元实验状态。

五、实验项目:(一)堆栈寄存器的写入拨动二进制数据开关(INPUT-UNIT)向R0和R1寄存器置数(置数灯亮表示它所对应的数据位为“1”、反之为“0”)。

具体操作步骤图示如下:[CBA=001] [LDR0=1] [LDR=1][LDR1=0] [LDR1=1][LDR2=0] [LDR2=0][按“STEP”] [按“STEP”] (二)堆栈寄存器的读出关闭数据输入三态门(CBA=000),分别打开通用寄存器R0、R1、R2输出控制位,当CBA=100时,总线指示灯(BUS-DISP UNIT)显示R0中的数据01H;当CBA=101时,总线指示灯显示R1中的数据80H;当CBA=110时,总线指示灯显示R2中等的数据(随机),可以观察到,显示的随机数为11111111.(六)实验总结通过本次实验的数据和理论分析进行比较、验证,我们熟悉了堆栈概念,熟悉了堆栈寄存器的组成和硬件电路等。

计算机组成原理实验报告-寄存器实验

计算机组成原理实验报告-寄存器实验

千里之行,始于足下。

计算机组成原理实验报告-寄存器实验计算机组成原理实验报告-寄存器实验》一、实验目的本次实验旨在通过设计和实现一个基本的寄存器,加深对计算机组成原理中寄存器的理解,并掌握寄存器在计算机中的应用。

二、实验设备及软件1. 实验设备:计算机2. 实验软件:模拟器软件Mars3. 实验材料:电路图、线缆、元器件三、实验原理寄存器是计算机的一种重要组成部分,用于存储数据和指令。

一个基本的寄存器通常由一组触发器组成,可以存储多个位的信息。

本实验中,我们需要设计一个16位的寄存器。

四、实验步骤1. 确定寄存器的结构和位数:根据实验要求,我们需要设计一个16位的寄存器。

根据设计要求,选择合适的触发器和其他元器件。

2. 组装寄存器电路:根据电路图,将选择好的元器件按照电路图连接起来。

3. 连接电路与计算机:使用线缆将寄存器电路连接到计算机的相应接口上。

4. 编写程序:打开Mars模拟器软件,编写程序来测试寄存器的功能。

可以编写一段简单的程序,将数据写入寄存器并读取出来,以验证寄存器的正确性。

5. 运行程序并测试:将编写好的程序加载到Mars模拟器中,并运行程序,观察寄存器的输出和模拟器的运行结果。

第1页/共3页锲而不舍,金石可镂。

五、实验结果在本次实验中,我们成功设计和实现了一个16位的寄存器,并进行了相关测试。

经过多次测试,寄存器的功能和性能良好,能够准确地存储和读取数据。

六、实验心得通过本次实验,我对寄存器的结构和工作原理有了更深入的了解。

寄存器作为计算机的一种重要组成部分,起着存储和传输数据的作用。

通过实际操作和测试,我更加清楚了寄存器在计算机中的应用和重要性。

在实验过程中,我遇到了一些问题,如电路连接不稳定、程序错误等,但通过仔细检查和调试,最终解决了这些问题。

这次实验也让我深刻体会到了学习计算机组成原理的重要性,只有深入理解原理并通过实践运用,才能真正掌握计算机的工作原理和能力。

通过这个实验,我有了更深入的认识和理解,对计算机组成原理的学习也更加系统和完整。

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告.doc

杭电计算机组成原理实验报告篇一:杭电计组实验报告9计组实验九老师:包健一、源代码测试模块代码:moduleTest_Top;// Inputsreginclk;regmem_clk;regrst;reg [3:0] SW;// Outputswire [7:0] LED;// Instantiate the Unit Under TestTop uut ,.mem_clk,.rst,.LED,.SW);reg [2:0] i;initial begin// Initialize Inputsinclk = 0;mem_clk = 0;rst = 0;SW = 0;i=0;// Wait 100 ns for global reset to finish #100;rst = 1;#100;rst =0 ;#100;foreverbegin#100;mem_clk=~mem_clk;i=i+1;ifinclk=~inclk;endendendmodule顶层模块代码:moduleMy_I_CPU;wireclk_n = ~clk;wire[31:0] codes;Inst_Fetch1 inst_fetch,.clk,.Inst_codes);wire[5:0] OP;wire[5:0] func;wire[2:0] ALU_OP;wirerd_rt_s;wireimm_s;wirert_imm_s;wirealu_mem_s;wireWrite_Reg;wireMem_Write;wire [15:0] imm;wire [31:0] imm_data ;assign imm_data = ?{{16{imm[15]}},imm}:{{16{1b0}},imm}; assign OP =codes[31:26];assignfunc = codes[5:0];assignimm = codes[15:0]; OP_Decoderop_decoder,//input.func,//input.ALU_OP,.rd_rt_s,.imm_s,.rt_imm_s,.alu_mem_s,.Write_Reg,.Mem_Write);wire[4:0] rs;wire[4:0] rt;wire[4:0] rd;assigs = codes[25:21];assigt = codes[20:16];assigd = codes[15:11];wire[4:0] W_Addr;assignW_Addr=?rt:rd;wire [31:0]W_Data;wire [31:0]R_Data_A;wire [31:0]R_Data_B; RegisterHeapregister,.R_Addr_B,.W_Addr,.Write_Reg,.Reset,.Clk,.W_Data,.R_Data_A,.R_Data_B);wire [31:0]ALU_A;wire [31:0]ALU_B;assign ALU_A = R_Data_A;assign ALU_B = ?imm_data:R_Data_B;ALU alu,.A,.B,.F,.ZF,.OF);Data_Memdata_mem , // input clka.wea, // input [0 : 0] wea .addra, // input [5 : 0] addra .dina, // input [31 : 0] dina .douta // output [31 : 0] douta);assignW_Data = ?M_R_Data:ALU_F; endmodule二、仿真波形三、电路图四、引脚配置篇二:杭电计算机组成原理取指令与指令译码实验7杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名实验项目:取指令与指令译码实验班级指导教师:学号:实验位置:日期:篇三:杭电计算机组成原理多功能ALU设计实验3杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理姓名:实验项目:多功能ALU设计实验班级:指导教师:学号:实验位置:日期:2015年4月29日。

4 堆栈寄存器实验

4 堆栈寄存器实验

堆栈寄存器实验一、实验目的1、熟悉堆栈概念2、熟悉堆栈寄存器的组成和硬件电路二、实验要求按照实验步骤完成实验项目,对4个堆栈寄存器进行读出、写入数据操作。

三、实验原理1、堆栈寄存器组实验构成(图2-5-1)本系统内有4个寄存器R0~R3,寄存器组由4个74LS374组成,由1片74LS139(2-4译码器)来选择4个74LS374,并且由2片74LS32来组成控制线。

8芯插座R-IN、R-OUT作为数据输入、输出端,可通过短8芯扁平电缆把数据输入、输出端连接到数据总线上。

图2-5-12、堆栈寄存器组原理由SA、SB两根控制线通过74LS139译码来选择4个寄存器(74LS374)。

当WR=0时,表示数据总线向寄存器写入数据,RCK为寄存器的工作脉冲,在有上升沿时把总线上数据打入74LS139选择的那个寄存器。

当RR=0时,74LS139所选择的寄存器上的数据输出至数据总线。

在本系统内使用了WR=0作为写入允许,RCK信号为上升沿时打入数据、RR=0时数据输出。

3、控制信号说明四、实验步骤实验1 对4个寄存器进行写入操作将R-IN(8芯盒形插座)与CPT-B板上的二进制开关单元中J03插座相连(对应二进制开关H0~H7),R-OUT可通过短8芯扁平电缆与数据总线上DJ4相连。

把RR、WR、SA、SB接入二进制拨动开关(SA,SB借用X0,X1的H12,1、把数据写入寄存器R0)按启停单元中的运行按钮,置实验平台为运行状态。

置WR=0、RR=1按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把11H 打入R0寄存器。

2、把数据写入寄存器R1置二进制开关H0~H7(D0~D7)为22H,各控制信号对应开关如下表。

按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把22H 打入R1寄存器。

3、把数据写入寄存器R2按脉冲单元中的PLS1脉冲按键,在RCK上产生一个上升沿的脉冲,把33H 打入R2寄存器。

(完整word版)计算机组成原理实验1~4

(完整word版)计算机组成原理实验1~4

实验一寄存器实验一、实验目的1、了解CPTH模型机中寄存器的结构、工作原理及其控制方法.2、熟悉CPTH实验仪的基本构造及操作方法。

二、实验电路寄存器的作用是用于保存数据的,因为CPTH模型机是8位的,因此模型机中大部寄存器是8 位的,标志位寄存器(Cy, Z)是二位的.CPTH 用74HC574 (8—D触发器)来构成寄存器。

74HC574 的功能如表1—1所示:图1-1 74HC574的引脚图1. 在CLK的上升沿将输入端的数据打入到8 个触发器中2. 当OC = 1 时触发器的输出被关闭,当OC=0 时触发器的输出数据表1-1 74HC574功能表图1—2 74HC574工作波形图三、实验内容(一)proteus仿真平台1、proteus仿真平台简介Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件。

它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件.它的主界面如图1-3所示:图1—3 proteus仿真平台主界面2、在proteus平台上运行电路:寄存器_1.DSN。

拨动开关,观察灯的亮灭,回答思考题1。

思考题1:先使OC=1,拨D0~D7=00110011,按下CK提供CLK上升沿;再拨D0~D7=01000100,OC=0,此时Q0~Q7为多少?3、CPTH模型机上,寄存器A的电路组成如图1-4所示。

在proteus平台上运行电路:寄存器_2.DSN,回答思考题2。

图1-4 寄存器A原理图思考题2:数据从D端传送到Q端,相应的控制端如何设置?3、CPTH模型机上,寄存器组R0~R3的电路组成如图1-5所示。

在proteus平台上运行电路:寄存器_3。

DSN,回答思考题3。

图1—5 寄存器组R0~R3 原理图74LS139是2—4线译码器,由A、B两个输入端选择控制4个输出端Y0~Y3,使能端E低电平有效,允许译码输出。

74HC32是或门,两个输入端同时为低电平,输出为低电平.具体的控制方式见表1-2。

计算机组成原理实验 寄存器判零实验

计算机组成原理实验 寄存器判零实验

实验四寄存器判零实验一、实验目的熟悉判零线路的硬件。

二、实验要求完成运算寄存器判零。

三、实验原理零标志的实验原理如上如所示,其中181的8位输出逻辑或非后进入LS74锁存器D端,该段的状态所存由T4和LDCZY信号控制,T4是时序脉冲信号,在T4周期将本次零标志锁存到零标志锁存其中,试验时安东“单步”命令键产生。

LDCZY电平控制信号,在LDCZY=1时可实现零标志控制实验。

四、实验连接连接试验线路,把位于实验装置左上方的CTR-OUT UNIT(S3、S2、S1、S0、M、/CN、LDZCY、LDDR1、LDDR2、/SW-B、/ALU-B)与实验装置右中央的CTR-IN UNIT(S3、S2、S1、S0、M、/CN,LDCZY,LDDR1,LDDR2)及实验装置右上方CTR-IN(ALU-B)、实验装置左下方INPUT-UNIT(/SW-B)中的控制信号作对应连接,实验装置中上方区域内Cn+4与Cn+4I相连。

具体信号连接:S3、S2、S1、S0、M、/CN、LDCZY、LDDR1、LDDR2,/SW-B,/ALU-B,Cn+4、Cn+4I。

五、实验内容(1)用二进制数码开关向DR1、DR2寄存器置数首先关闭ALU输出三态门(CBA=000),开启输入三态门(CBA=001),设置数据开关。

例如向DR1、DR2分别存入00000001。

具体步骤如下:(2)DR1、DR2打入数据的检查检查DR1和DR2中存放的数是否正确,具体操作为:关闭数据输入三态(CBA=000),打开ALU输出三态门,当置S3、S2、S1、S0、M为11111时,总线指示灯(BUS-DISP UNIT)显示DR1中的数据00000001,而置10101时总线指示灯DR2中的数据00000001。

(3)进位标志清零关闭数据输入三态(CBA=000),S3、S2、S1、S0、M、/CN 的状态置为00000,LDCZY状态置为1,按动“单步”命令键是现金为标志的清零。

杭电计组实验4-寄存器堆设计实验

杭电计组实验4-寄存器堆设计实验

杭电计组实验4-寄存器堆设计实验实验报告2018 年 5 月12 日成绩:一、实验程序源代码1.寄存器堆模块代码:moduleRegister_file(R_Addr_A,R_Addr_B,W_Addr,Write_Reg,W_Data,Clk,Reset,R_Data_A,R_Data_B); input [4:0]R_Addr_A;input [4:0]R_Addr_B;input [4:0]W_Addr;input Write_Reg;input [31:0]W_Data;input Clk;input Reset;output [31:0]R_Data_A;output [31:0]R_Data_B;reg [31:0]REG_Files[0:31];reg [5:0]i;initial//仿真过程中的初始化beginfor(i=0;i<=31;i=i+1)REG_Files[i]=0;endassign R_Data_A=REG_Files[R_Addr_A];assign R_Data_B=REG_Files[R_Addr_B];2'b01:LED=R_Data_A[15:8];2'b10:LED=R_Data_A[23:16];2'b11:LED=R_Data_A[31:24];endcaseendelsebeginB=Addr;case(C1)2'b00:LED=R_Data_B[7:0];2'b01:LED=R_Data_B[15:8];2'b10:LED=R_Data_B[23:16];2'b11:LED=R_Data_B[31:24];endcaseendendelse//写操作begincase(C1)2'b00:W_Data=32'h0000_0003;2'b01:W_Data=32'h0000_0607;2'b10:W_Data=32'hFFFF_FFFF;2'b11:W_Data=32'h1111_1234;endcaseendendendmodule3.测试代码module test;// Inputsreg [4:0] R_Addr_A;reg [4:0] R_Addr_B;reg [4:0] W_Addr;reg Write_Reg;reg [31:0] W_Data;reg Clk;reg Reset;// Outputswire [31:0] R_Data_A;wire [31:0] R_Data_B;// Instantiate the Unit Under Test (UUT) Register_file uut (.R_Addr_A(R_Addr_A),.R_Addr_B(R_Addr_B),.W_Addr(W_Addr),.Write_Reg(Write_Reg),.W_Data(W_Data),.Clk(Clk),.Reset(Reset),.R_Data_A(R_Data_A),.R_Data_B(R_Data_B));initial begin// Initialize InputsR_Addr_A = 0;R_Addr_B = 0;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 0;// Wait 100 ns for global reset to finish #100;// Add stimulus here#100;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5'b00001;Write_Reg = 1;W_Data = 32'h1111_1111;Clk = 1;Reset = 0;#100;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5'b00001; Write_Reg = 1;W_Data = 32'h1111_1111; Clk = 0;Reset = 0;#100;R_Addr_A = 0;R_Addr_B = 0;W_Addr = 5'b00010; Write_Reg = 1;W_Data = 32'h2222_2222; Clk = 1;Reset = 0;#100;R_Addr_A = 5'b00001;R_Addr_B = 5'b00010;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 0;#100;R_Addr_A = 5'b00001;R_Addr_B = 5'b00010;W_Addr = 0;Write_Reg = 0;W_Data = 0;Clk = 0;Reset = 1;endendmodule二、仿真波形三、电路图顶层电路模块顶层电路内部结构:四、引脚配置(约束文件)NET "Clk" LOC = C9;NET "Reset" LOC = D9;NET "Write_Reg" LOC = T5;NET "C2" LOC = C4;# PlanAhead Generated physical constraintsNET "LED[7]" LOC = T11;NET "LED[6]" LOC = R11;NET "LED[4]" LOC = M11;NET "LED[3]" LOC = V15;NET "LED[1]" LOC = V16;NET "LED[0]" LOC = U16;NET "LED[2]" LOC = U15;NET "LED[5]" LOC = N11;NET "Addr[0]" LOC = T10;NET "Addr[2]" LOC = V9;NET "Addr[3]" LOC = M8;NET "Addr[4]" LOC = N8;NET "C1[0]" LOC = U8;NET "C1[1]" LOC = V8;NET "Addr[1]" LOC = T9;五、思考与探索(1)实验四实验结果记录表寄存器地址写入数据读出数据$1 32'h0000_000332'h0000_0003$2 32'h0000_0607 32'h0000_0607$3 32'hFFFF_FFFF32'hFFFF_FFFF$4 32'h1111_123432'h1111_1234$5 32'h0000_000332'h0000_0003$6 32'h0000_060732'h0000_0607$7 32'hFFFF_FFFF 32'hFFFF_FFFF$8 32'h1111_123432'h1111_1234。

杭电计算机组成原理寄存器堆设计实验-4

杭电计算机组成原理寄存器堆设计实验-4

杭州电子科技大学计算机学院实验报告课程名称:计算机组成原理实验项目:寄存器堆设计实验指导教师实验位置:姓班级:学号:日期:2015年5月7日(接上)实验内容(算法、程序、步骤和方法)3.管脚配置NET "Addr[0]" LOC = M8;NET "Addr[1]" LOC = N8;NET "Addr[2]" LOC = U8;NET "Addr[3]" LOC = V8;NET "Addr[4]" LOC = T5;NET "C1[0]" LOC = T10;NET "C1[1]" LOC = T9;NET "C2" LOC = B8;NET "Clk" LOC = C9;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;NET "Reset" LOC = D9;NET "Write_Reg" LOC = V9;数据记录和计算实验仿真波形:结论(结果)按照实验的要求,一步步的进行操作。

能够正确的进行Wire_Reg写操作,进行读操作时LED灯的显示,利用选择A,B操作读出信号,已经Reset进行清零信号的操作,都能顺利的进行,本实验多次失败,收获不小。

计算机组成原理寄存器存储器实验心得,寄存器实验心得(共10篇).docx

计算机组成原理寄存器存储器实验心得,寄存器实验心得(共10篇).docx

计算机组成原理寄存器存储器实验⼼得,寄存器实验⼼得(共10篇).docx寄存器实验⼼得(共10篇)通⽤寄存器实验报告 ⼀、实验⽬的: 1、了解通⽤寄存器组的⽤途及对CPU的重要性。

2、掌握通⽤寄存器组的设计⽅法。

⼆、实验内容: 1、通⽤寄存器组的作⽤ 通⽤寄存器组是CPU的重要组成部分。

从存储器和外部设备取来的数据要放在通⽤寄存器中;向存储器和外部设备输出的数据从通⽤寄存器中取出;参加算术运算和逻辑运算的数据从通⽤寄存器组中取出,同时通⽤寄存器也 是运算结果的暂存地。

通⽤寄存器组有两个读端⼝,负责提供进⾏算术逻辑单元需要的源操作数和⽬的操作数;有⼀个写端⼝,负责将运算结果保存到指定的寄存器内。

2、通⽤寄存器组功能实现 根据通⽤寄存器组的功能要求,⼀个只有四个16位寄存器的通⽤寄存器组的框图如下图所⽰: ⑴寄存器部分: 当reset为低电平时,将四个16位寄存器R0-R3复位为0;当寄存器的write和sel 为⾼电平时,在时钟信号clk的上升沿将D端的输⼊D[15-0]写⼊寄存器,然后送到寄存器的输出Q[15-0]。

4个寄存器的允许写信号write和外部产⽣的⽬的寄存器写信号DRWr直接相连。

每个寄存器还有另⼀个选择信号sel,它决定哪⼀个寄存器进⾏写操作。

4个寄存器的选择信号分别和2-4译码器产⽣的sel00、sel01、sel10、sel11相连。

只有当⼀个寄存器被选中,才允许对该寄存器进⾏写操作。

⑵2-4译码器: 2-4译码器的输⼊sel[1-0]接DR[1-0],2-4译码器对2位的输⼊信号sel[1-0]进⾏2-4译码,产⽣4个输出sel00、sel01、sel10、sel11,分别送往4个寄存器R0、R1、R2和R3的选择端sel。

⑶4选1多路器 4选1多路选择器1从4个寄存器R0、R1、R2和R3的输出Q[15-0]选择1路送到DR_data[15-0],给算术逻辑单元提供⽬的操作数;选择信号sel[1-0]接DR[1-0]。

《计算机组成原理》实验报告——寄存器堆

《计算机组成原理》实验报告——寄存器堆

南通大学信息科学技术学院《计算机组成实验》实验报告实验寄存器堆的设计与实现一、实验目的1.熟悉Vivado软件的使用方法。

2.熟悉寄存器堆的功能。

3.掌握自顶而下的硬件模块设计方法。

4.掌握电路仿真测试方法,掌握仿真激励文件的编写,掌握仿真输出的分析方法。

二、实验任务设计一个寄存器堆,满足两路输出一路输入的功能,并完成仿真测试。

三、实验预习(1)实验电路原理及信号说明寄存器堆(REGFILE)是CPU组成的重要存储部件,也是数据通路中的重要部件,其主要功能是对数据进行存储。

在本实验中将为REGFILE构建32×32的寄存器组,即共有32个寄存器,每个寄存器的位宽都是32位。

32×32的REGFILE逻辑结构如图所示:具体设计如下:通过带有32个带使能端的D触发器实现数据的存储,5-32译码器实现地址与存储单元的连接选择,32位32选1选择器来实现输出。

(2)实验电路设计顶层文件:module REGFILE(Ra,Rb,D,Wr,We,Clk,Clrn,Qa,Qb);input [4:0]Ra,Rb,Wr;input [31:0]D;input We,Clk,Clrn;output [31:0]Qa,Qb;wire [31:0]Y;wire[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q 10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;DEC5T32E dec(Wr,We,Y);REG32reg32(D,Y,Clk,Clrn,Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q 13,Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0);MUX32X32select1(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Ra,Qa);MUX32X32select2(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,Rb,Qb);Endmodule5-32地址译码器:module DEC5T32E(I,En,Y);input [4:0] I;input En;output [31:0] Y;reg [31:0] Y;always@(En or I)beginif(En)begincase(I)5'b00000:Y=32'b00000000000000000000000000000001;5'b00001:Y=32'b00000000000000000000000000000010;5'b00010:Y=32'b00000000000000000000000000000100;5'b00011:Y=32'b00000000000000000000000000001000;5'b00100:Y=32'b00000000000000000000000000010000;5'b00101:Y=32'b00000000000000000000000000100000;5'b00110:Y=32'b00000000000000000000000001000000;5'b00111:Y=32'b00000000000000000000000010000000;5'b01000:Y=32'b00000000000000000000000100000000;5'b01001:Y=32'b00000000000000000000001000000000;5'b01010:Y=32'b00000000000000000000010000000000;5'b01011:Y=32'b00000000000000000000100000000000;5'b01100:Y=32'b00000000000000000001000000000000;5'b01101:Y=32'b00000000000000000010000000000000;5'b01110:Y=32'b00000000000000000100000000000000;5'b01111:Y=32'b00000000000000001000000000000000;5'b10000:Y=32'b00000000000000010000000000000000;5'b10001:Y=32'b00000000000000100000000000000000;5'b10010:Y=32'b00000000000001000000000000000000;5'b10011:Y=32'b00000000000010000000000000000000;5'b10100:Y=32'b00000000000100000000000000000000;5'b10101:Y=32'b00000000001000000000000000000000;5'b10110:Y=32'b00000000010000000000000000000000;5'b10111:Y=32'b00000000100000000000000000000000;5'b11000:Y=32'b00000001000000000000000000000000;5'b11001:Y=32'b00000010000000000000000000000000;5'b11010:Y=32'b00000100000000000000000000000000;5'b11011:Y=32'b00001000000000000000000000000000;5'b11100:Y=32'b00010000000000000000000000000000;5'b11101:Y=32'b00100000000000000000000000000000;5'b11110:Y=32'b01000000000000000000000000000000;5'b11111:Y=32'b10000000000000000000000000000000;endcaseendelseY=32'b00000000000000000000000000000000;endendmodule32位寄存器moduleREG32(D,En,Clk,Clrn,Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q1 3,Q12,Q11,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0);input[31:0]D,En;input Clk,Clrn;output[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11 ,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;wire[31:0]Qn31,Qn30,Qn29,Qn28,Qn27,Qn26,Qn25,Qn24,Qn23,Qn22,Qn21,Qn20,Qn19,Qn18,Qn17,Qn16,Qn15,Qn 14,Qn13,Qn12,Qn11,Qn10,Qn9,Qn8,Qn7,Qn6,Qn5,Qn4,Qn3,Qn2,Qn1,Qn0;D_FFEC32 q31(D,Clk,En[31],Clrn,Q31,Qn31);D_FFEC32 q30(D,Clk,En[30],Clrn,Q30,Qn30);D_FFEC32 q29(D,Clk,En[29],Clrn,Q29,Qn29);D_FFEC32 q28(D,Clk,En[28],Clrn,Q28,Qn28);D_FFEC32 q27(D,Clk,En[27],Clrn,Q27,Qn27);D_FFEC32 q26(D,Clk,En[26],Clrn,Q26,Qn26);D_FFEC32 q25(D,Clk,En[25],Clrn,Q25,Qn25);D_FFEC32 q24(D,Clk,En[24],Clrn,Q24,Qn24);D_FFEC32 q23(D,Clk,En[23],Clrn,Q23,Qn23);D_FFEC32 q22(D,Clk,En[22],Clrn,Q22,Qn22);D_FFEC32 q21(D,Clk,En[21],Clrn,Q21,Qn21);D_FFEC32 q20(D,Clk,En[20],Clrn,Q20,Qn20);D_FFEC32 q19(D,Clk,En[19],Clrn,Q19,Qn19);D_FFEC32 q18(D,Clk,En[18],Clrn,Q18,Qn18);D_FFEC32 q17(D,Clk,En[17],Clrn,Q17,Qn17);D_FFEC32 q16(D,Clk,En[16],Clrn,Q16,Qn16);D_FFEC32 q15(D,Clk,En[15],Clrn,Q15,Qn15);D_FFEC32 q14(D,Clk,En[14],Clrn,Q14,Qn14);D_FFEC32 q13(D,Clk,En[13],Clrn,Q13,Qn13);D_FFEC32 q12(D,Clk,En[12],Clrn,Q12,Qn12);D_FFEC32 q11(D,Clk,En[11],Clrn,Q11,Qn11);D_FFEC32 q10(D,Clk,En[10],Clrn,Q10,Qn10);D_FFEC32 q9(D,Clk,En[9],Clrn,Q9,Qn9);D_FFEC32 q8(D,Clk,En[8],Clrn,Q8,Qn8);D_FFEC32 q7(D,Clk,En[7],Clrn,Q7,Qn7);D_FFEC32 q6(D,Clk,En[6],Clrn,Q6,Qn6);D_FFEC32 q5(D,Clk,En[5],Clrn,Q5,Qn5);D_FFEC32 q4(D,Clk,En[4],Clrn,Q4,Qn4);D_FFEC32 q3(D,Clk,En[3],Clrn,Q3,Qn3);D_FFEC32 q2(D,Clk,En[2],Clrn,Q2,Qn2);D_FFEC32 q1(D,Clk,En[1],Clrn,Q1,Qn1);assign Q0=0;assign Qn0=0;endmodule32位32选1选择器moduleMUX32X32(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q1 1,Q10,Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,S,Y);input[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;input [4:0]S;output [31:0]Y;function [31:0]select;input[31:0]Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0;input [4:0]S;case(S)5'b00000:select=Q0;5'b00001:select=Q1;5'b00010:select=Q2;5'b00011:select=Q3;5'b00100:select=Q4;5'b00101:select=Q5;5'b00110:select=Q6;5'b00111:select=Q7;5'b01000:select=Q8;5'b01001:select=Q9;5'b01010:select=Q10;5'b01011:select=Q11;5'b01100:select=Q12;5'b01101:select=Q13;5'b01110:select=Q14;5'b01111:select=Q15;5'b10000:select=Q16;5'b10001:select=Q17;5'b10010:select=Q18;5'b10011:select=Q19;5'b10100:select=Q20;5'b10101:select=Q21;5'b10110:select=Q22;5'b10111:select=Q23;5'b11000:select=Q24;5'b11001:select=Q25;5'b11010:select=Q26;5'b11011:select=Q27;5'b11100:select=Q28;5'b11101:select=Q29;5'b11110:select=Q30;5'b11111:select=Q31;endcaseendfunctionassign Y =select(Q31,Q30,Q29,Q28,Q27,Q26,Q25,Q24,Q23,Q22,Q21,Q20,Q19,Q18,Q17,Q16,Q15,Q14,Q13,Q12,Q11,Q10, Q9,Q8,Q7,Q6,Q5,Q4,Q3,Q2,Q1,Q0,S);endmoduleRTL视图如下:四、实验过程、数据记录与结果分析1.仿真测试文件:module REGFILE_Sim( );// REGFILE Inputsreg [4:0] Ra = 0 ;reg [4:0] Rb = 0 ;reg [4:0] Wr = 0 ;reg [31:0] D = 0 ;reg We = 0 ;reg Clk = 0 ;reg Clrn = 0 ;// REGFILE Outputswire [31:0] Qa ;wire [31:0] Qb ;REGFILE u_REGFILE (.Ra ( Ra [4:0] ),.Rb ( Rb [4:0] ),.Wr ( Wr [4:0] ),.D ( D [31:0] ),.We ( We ),.Clk ( Clk ),.Clrn ( Clrn ),.Qa ( Qa [31:0] ),.Qb ( Qb [31:0] ));initialbeginClk=0;We=0; D=0; Ra=0; Rb=0; Wr=1; Clrn=0;#10;endalways #10 Clk=~Clk;always #20 Ra=Ra+1;always #20 Rb=Rb+1;always #20 Wr=Wr+1;always #20 D=D+1;always #20 We=~We;always #100 Clrn=1;endmodule2.仿真测试结果:3.仿真测试结果分析开始时100ns内,Clrn=0,寄存器堆初始化清零,此期间内写入操作均无效,读出数据均为零。

计算机组成原理实验报告寄存器原理及操作

计算机组成原理实验报告寄存器原理及操作

成绩:实验报告课程名称:计算机组成原理实验项目:寄存器的原理及操作姓名:专业:计算机科学与技术班级:学号:计算机科学与技术学院实验授课中心20 16年6月20日实验项目名称:寄存器的原理及操作一、实验目的1.认识模型机中 A, W 寄存器结构、工作原理及其控制方法。

2.认识模型机中寄存器组 R0..R3 结构、工作原理及其控制方法。

3.认识模型机中地址寄存器 MAR,货仓寄存器 ST,输出寄存器 OUT寄存器结构、工作原理及其控制方法。

二、实验内容1、A、W寄存器:利用 COP2000实验仪上的K16..K23 开关做为DBUS的数据,其他开关做为控制信号,将数据写入寄存器A, W。

2、R0、R1、R2、R3 寄存器实验:利用COP2000实验仪上的K16..K23 开关做为DBUS的数据,其他开关做为控制信号,对数据寄存器组R0..R3 进行读写。

3、MAR、ST、OUT寄存器:利用COP2000实验仪上的K16..K23 开关做为DBUS的数据,其他开关做为控制信号,将数据写入地址寄存器MAR,货仓寄存器ST,输出寄存器OUT。

三、实验用设备仪器及资料伟福 COP2000 系列计算机组成原理实验系统四、实验原理及接线实验 1:A,W 寄存器实验实验 2 :R0,R1, R2,R3寄存器实验MAR为储藏器地址寄存器,其功能是储藏操作数在内存中的地址,信号MAREN的功能是将数据总线DBUS上数据 MAR,信号 MAROE的功能是将MAR的值送到地址总线ABUS上ST 货仓寄存器的作用,是出现中断或子程序调用时,保存断点处PC 的值,以便中断或子程序结束时,能连续执行原程序。

图中,信号STEN的作用是将数据总线DBUS上数据存入货仓寄存器ST 中五、实验操作步骤实验 1:A,W 寄存器实验将 55H写入 A 寄存器二进制开关 K23-K16 用于 DBUS[7:0] 的数据输入,置数据55H按住 CLOCK脉冲键, CLOCK由高变低,这时寄存器 A 的黄色选择指示灯亮,表示选择 A 寄存器。

2016新编计算机组成原理实验堆栈寄存器实验

2016新编计算机组成原理实验堆栈寄存器实验

实验三:堆栈寄存器实验一、实验目的1、熟悉堆栈概念。

2、熟悉堆栈寄存器的组成和硬件电路。

二、实验要求完成3个对战寄存器的数据写入与读出。

三、实验原理由三片8为字长的LS374组成R0、R1、R2寄存器。

三个寄存器的输入输出连至BUS 总线。

R0-B、R1-B、R2-B经CBA二进制控制开关译码产生数据输出选通信号,LDR0、LDR1、LDR2数据写入允许信号,由二进制控制开关来模拟,均为高电频有效;T4信号为寄存器数据写入脉冲信号,上升沿有效。

在手动试验状态(即‘H’状态)每按动一次“单步”命令键,产生一个T4信号。

四、实验连线连接试验线路,把位于实验装置左上方的CTR-OUT UNIT (LDR0、LDR1、LDR2、/SW-B)与实验装置右中央的CTR-IN UNIT (LDR0、LDR1、LDR2)及实验装置左下方INPUT-UNIT(/SW-B)中的控制信号作对应连接。

具体信号连接:/SW-B、/R0-B、/R1-B、/R2-B,LDR0,LDR1,LDR2五、实验内容(一) 对战寄存器的写入拨动二进制开关(INPUT-UNIT)向R0和R1寄存器置数(置数灯亮表示它所对应的数据位为“1”、反之为“0”)。

具体操作步骤如下:(二)堆栈寄存器的读出关闭数据输入三态门(CBA=000),分别打开通用寄存器R0、R1、R2输出控制位,当CBA=100时,总线指示灯(BUS-DISP-UNIT)显示R0中的数据01H;当CBA=101时,总线指示灯显示R1中的数据80H;当CBA=110时,总线指示灯显示R2的数据(随机)。

电力安全月工作总结[电力安全月工作总结]电力安全月工作总结2011年3月1日至3月31日为我公司的安全生产月,**变电站围绕;夯实基储提高素质、树立标杆、争创一流;的主题,开展了丰富多彩、形式多样的具体行动:通过看板形式宣传安全第一、预防为主的方针;通过48+4的学习机会,进行安全生产大讨论;通过安全活动进行查找本站的隐患的活动,电力安全月工作总结。

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

杭州电子科技大学计算机学院
实验报告
课程名称:计算机组成原理实验项目:寄存器堆设计实验指导教师
实验位置:姓
班级:
学号:
日期:2015年5月7日
(接上)实验内容(算法、程序、步骤和方法)3.管脚配置
NET "Addr[0]" LOC = M8;
NET "Addr[1]" LOC = N8;
NET "Addr[2]" LOC = U8;
NET "Addr[3]" LOC = V8;
NET "Addr[4]" LOC = T5;
NET "C1[0]" LOC = T10;
NET "C1[1]" LOC = T9;
NET "C2" LOC = B8;
NET "Clk" LOC = C9;
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;
NET "Reset" LOC = D9;
NET "Write_Reg" LOC = V9;
数据
记录
和计

实验仿真波形:
结论(结果)按照实验的要求,一步步的进行操作。

能够正确的进行Wire_Reg写操作,进行读操作时LED灯的显示,利用选择A,B操作读出信号,已经Reset进行清零信号的操作,都能顺利的进行,本实验多次失败,收获不小。

相关文档
最新文档