杭电计组实验5-存储器设计实验
杭电 计组实验5-6-7(章老师不插板实验报告)
RAMபைடு நூலகம்A1(
。clka(Clk),// input clka
.wea(wea),// input [0:0] wea
。addra(addra[7:2]),// input [5 : 0]addra
.dina(R_Data_A), // input[31 : 0]dina
。douta(douta)// output [31 : 0]douta
R_Addr_A=5’b11011;
Write_Reg=0;
Clk=0;
W_Addr=0;
W_Data=0;
#10;
Clk=0;
wea=1;
addra=8’b00110100;
#10;
Clk=1;
#100;
wea=0;
addra=8'b00110100;
#100;
Clk=0;
#10;
Clk=1;
B
#100;
.clka(clk), // input clka
.douta(Inst_Code) // output [31 : 0] douta
);
assign PC_new=PC+4;
always@( negedge clkor posedge rst)
begin
if(rst)
PC=32’h0000_0000;
sub $29,$22,$2; #$29=7FFF_FFFE
add $30,$20,$2; #$30=8000_0001
add $31,$11,$26; #$31=9000_6FF1
实验7:
module Inst(clk,rst,Inst_Code,PC_new,PC);
杭电计组实验5-存储器设计实验
杭电计组实验5-存储器设计实验(总7页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--杭州电子科技大学计算机学院实验报告实验项目:课程名称:计算机组成原理与系统结构设计姓名:学号:同组姓名:学号:实验位置(机号):dina = 32'b 101111;endendmoduleRTL图二、结果思考题:(3)设计实现一个ROM,常规存储器是单端口存储器,每次只接收一个地址,访问一个存储单元,从中读取或写入一个字节或字。
主存储器是信息交换的中心,一方面CPU频繁地与主存交换信息,另一方面外设也较频繁地与主存交换信息,而单端口存储器每次只能接受一个访存者,或是读或是写,这就影响到存储器的整体工作速度。
双端口存储器具有两个彼此独立的读写口,每个读写口都有一套自己的地址寄存器和译码电路,可以并行地独立工作。
两个读写口可以按各自接收的地址同时读出或写入,或一个写入而另一个读出。
与两个独立的存储器不同,两个读写口的访存空间相同,可以访问同一个存储单元。
通常使双端口存储器的一个读写口面向CPU,另一个读写口则面向外设或输入输出处理机实验体会通过本次实验熟练掌握ISE软件,并运用该软件设计存储器,了解了存储器的结构设计和工作原理,并实现在ISE中生成Memory IP核。
调用了生成的存储器模块,并在理解的基础上自己设计了一个简单的存储器。
在之后的波形仿真图模拟时,我对于波形的识图能力不太强,后来通过了仔细分析,经数据波形验证,实验准确完成。
其中wea(Mem_Write)控制存储器读操作核写操作。
第一次接触这种Memory IP核的应用,感觉收获了很多。
指导教师评议实验步骤写的时候,最好自己按照所做步骤写,二人不要一模一样。
成绩:指导教师签名:。
杭电计组实验5-存储器设计实验
5’b000007 32’b0000000732’b0000000732'h0055_752332'h0055_7523
(2)答:这些单元的数据已经被改写了。读出数据与写入数据一致。
RAM_B uut (
.clka(clka),
.wea(wea),
.addra(addra),
.dina(dina),
.douta(douta)
);
initial begin
// Initialize Inputs
clka = 0;
wea = 0;
addra = 0;
dina = 0;
// Wait 100 ns for global reset to finish
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;
output reg [7:0]LED;
wire [31:0]M_R_Data;//存在存储器里的32位读出数据
reg [31:0]M_W_Data;//寄存在暂存器的32位写入数据
RAM_B test_ram (
杭电计组实验-存储器设计实验
杭电计组实验-存储器设计实验————————————————————————————————作者:————————————————————————————————日期:实验报告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位宽的存储单元阵列作为寄存器堆的基本组成部分。
然后,我们定义读写电路,包括地址线、数据线、多路选择器和数据解码器。
最后,我们添加时钟信号和清零功能。
在完成设计后,我们可以通过仿真工具进行验证。
通过输入不同的数据和地址,观察输出结果是否符合预期。
如果存在问题,我们可以进行调试并进行必要的修改。
一旦仿真结果正确无误,我们就可以开始进行硬件实验了。
计算机组成原理实验报告_存储系统设计实验
实验四存储系统设计实验一、实验目的本实训项目帮助大家理解计算机中重要部件—存储器,要求同学们掌握存储扩展的基本方法,能设计MIPS 寄存器堆、MIPS RAM 存储器。
能够利用所学习的cache 的基本原理设计直接相联、全相联,组相联映射的硬件cache。
二、实验原理、内容与步骤实验原理、实验内容参考:1、汉字字库存储芯片扩展设计实验1)设计原理该实验本质上是8个16K×32b 的ROM 存储系统。
现在需要把其中一个(1 号)16K×32b 的ROM 芯片用4个4K×32b 的芯片来替代,实际上就是存储器的字扩展问题。
a) 需要4 片4个4K×32b 芯片才可以扩展成16K×32b 的芯片。
b) 目标芯片16K个地址,地址线共14 条,备用芯片12 条地址线,高两位(分线器分开)用作片选,可以接到2-4 译码器的输入端。
c) 低12 位地址直接连4K×32b 的ROM 芯片的地址线。
4个芯片的32 位输出直接连到D1,因为同时只有一个芯片工作,因此不会冲突。
芯片内数据如何分配:a) 16K×32b 的ROM 的内部各自存储16K个地址,每个地址里存放4个字节数据。
地址范围都一样:0x0000~0x3FFF。
b) 4个4K×32b 的ROM,地址范围分别是也都一样:0x000~0xFFF,每个共有4K个地址,现在需要把16K×32b 的ROM 中的数据按照顺序每4个为一组分为三组,分别放到4个4K×32b 的ROM 中去。
HZK16_1 .txt 中的1~4096个数据放到0 号4K 的ROM 中,4097~8192 个数据放到 1 号4K 的ROM 中,8193~12288 个数据放到2 号4K 的ROM 中,12289~16384个数据放到3 号4K 的ROM 中。
c) 注意实际给的16K 数据,倒数第二个4K(8193~12288 个数据)中部分是0,最后4K(12289~16384 数据)全都是0。
实验五存储器连接(6116的使用)
实验五 存储器连接(6116的使用)【实验名称】存储器连接(6116的使用)。
【实验目的】 掌握存储器译码及读写的方法。
【实验原理】 微处理器通过数据总线、地址总线及控制总线与存储器连接,如下图所示:地址总线为地址信号,用来指明选中的存储单元地址。
数据总线为数据信号,它是微处理器送往存储器的信息或存储器送往微处理器的信息。
它包括指令和数据。
控制总线发出存储器读写信号,以便从ROM 、RAM 中读出指令或数据,或者向RAM 写入数据。
在微机系统中,常用的静态RAM 有6116、6264、62256等。
在本实验中使用的是6116。
6116为2K ╳8位的静态RAM ,其逻辑图如下:其中A 0~10为11根地址线,I/O 0~7为8根数据线,CS 为片选端,OE 为数据输出选通端,WR 为写信号端。
其工作方式见下表:FD-SJ86/88实验板上提供了一片6116用来作存储器读写实验。
在6116的上方三根跳线J57、J58、J59分别用来设置6116的片选端、读信号、写信号的连接状态。
当以短路块分别将J57、J58、J59上面两根针短路时,则6116片选端连接由U39产生的译码信号,其译码范围为0A0000H~0A07FFH,因6116为2K存储器,所以地址0A0000H~0A07FFH和0A0800H~0A0FFFH重叠。
6116的读写信号则分别接到系统总线上的存储器读写信号。
其数据通过74LS245(U38)接到系统的数据总线上。
【实验内容】在FD-SJ86/88实验板上的6116芯片内写入一些数据,然后读出显示在屏幕上以验证正确与否。
【实验连线】① 6264的地址线J8(A0~A10)接总线上的地址线A0~A10。
② J57、J58、J59的下面的两个脚以短路块连接。
【实验程序】DATA SEGMENTMESSAGE DB 'PLEASE ENTER A KEY TO SHOW THE CONTENTS',0DH,0AH,'$'DATA ENDSSTACK SEGMENT STACKSTA DW 50 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV AX,0A000HMOV ES,AXMOV BX,0000HMOV CX,26MOV DL,40HWRITE: INC DLMOV ES:[BX],DLINC BXCMP DL,5AHJNZ SS1MOV DL,40HSS1: LOOP WRITEMOV DX,OFFSET MESSAGEMOV AH,9INT 21HMOV AH,01HINT 21HMOV AX,0A000HMOV ES,AXMOV BX,0000HMOV CX,26READ: MOV DL,ES:[BX]MOV AH,02HINT 21HINC BXLOOP READMOV AH,4CHINT 21HCODE ENDSEND START【思考题】将字符‘0’~‘9’写入存储器,再将其读出,应如何修改程序?。
计组存储器实验实验报告(3篇)
第1篇一、实验目的1. 理解存储器的基本组成和工作原理;2. 掌握存储器的读写操作过程;3. 熟悉存储器芯片的引脚功能及连接方式;4. 了解存储器与CPU的交互过程。
二、实验环境1. 实验设备:TD-CMA计算机组成原理实验箱、计算机;2. 实验软件:无。
三、实验原理1. 存储器由地址线、数据线、控制线、存储单元等组成;2. 地址线用于指定存储单元的位置,数据线用于传输数据,控制线用于控制读写操作;3. 存储器芯片的引脚功能:地址线、数据线、片选线、读线、写线等;4. 存储器与CPU的交互过程:CPU通过地址线访问存储器,通过控制线控制读写操作,通过数据线进行数据传输。
四、实验内容1. 连线:按照实验原理图连接实验箱中的存储器芯片、地址线、数据线、控制线等;2. 写入操作:将数据从输入单元IN输入到地址寄存器AR中,然后通过控制线将数据写入存储器的指定单元;3. 读取操作:通过地址线指定存储单元,通过控制线读取数据,然后通过数据线将数据输出到输出单元OUT;4. 实验步骤:a. 连接实验一(输入、输出实验)的全部连线;b. 按实验逻辑原理图连接两根信号低电平有效信号线;c. 连接A7-A0 8根地址线;d. 连接13-AR正脉冲有效信号线;e. 在输入数据开关上拨一个地址数据(如00000001,即16进制数01H),拨下开关,把地址数据送总线;f. 拨动一下B-AR开关,实现0-1-0”,产生一个正脉冲,把地址数据送地址寄存器AR保存;g. 在输入数据开关上拨一个实验数据(如10000000,即16进制数80H),拨下控制开关,把实验数据送到总线;h. 拨动控制开关,即实现1-0-1”,产生一个负脉冲,把实验数据存入存储器的01H号单元;i. 按表2-11所示的地址数据和实验数据,重复上述步骤。
五、实验结果与分析1. 通过实验,成功实现了存储器的读写操作;2. 观察到地址线、数据线、控制线在读写操作中的协同作用;3. 理解了存储器芯片的引脚功能及连接方式;4. 掌握了存储器与CPU的交互过程。
计算机组成原理5 存储器实验
实验5 存储器实验一、实验目的1.掌握静态存储随机存储器RAM的工作特性2.掌握静态存储随机存储器RAM的读写方法二、实验设备74LS273组件一片,静态存储器MEMORY 6116组件一片(是一个2k×8的静态存储器。
在本实验中只使用8位地址),单脉冲一个,开关若干,灯泡若干三、实验原理本实验所用的静态存储器由一片6116(2K × 8)构成,其数据线接至数据开关,地址线由地址锁存器(74LS373)给出。
因地址寄存器为8位,接入6116的地址A7-A0,而高三位A8-A10接地,所以其实际容量为256字节。
6116有三个控制线:CE(片选线)、OE(读线)、WE(写线)。
当片选CE=0,读信号OE=0时,进行读操作,当片选CE=0,写信号WE=1时,进行写操作。
由于本实验中将OE常接地,这样,当CE=0、WE=0时进行写操作,CE=0、WE=1时进行读操作,写时间与T3脉冲宽度一致。
四、实验步骤1.选择实验设备:根据实验原理图,将所需要的组件从组件列表中拖到实验设计流程栏中。
2. 搭建实验流程:将已选择的组件进行连线, 74LS273的0―7号输入引脚(数据端)、9号引脚(复位端)分别接到开关上,8号引脚接单脉冲信号,11-18号输出引脚接到静态MEMORY的0-7号地址输入引脚。
静态MEMORY的高3位地址输入引脚8―10统一置0,由开关控制,使存储器实际容量为256个字节。
11-13号使能端(CE 、WE、 OE)分别由开关控制,14-21号数据端同时接入开关和灯泡,进行读写操作,开关控制欲写入存储器的数据,灯泡用于从存储器读出数据的显示。
实验流程图如图6所示。
3. 设置相应芯片的控制位.( 273的9号引脚为1,6116的CE=1,WE=1,OE=0.)4. 写入数据:点击运行按钮,74LS273的连接的地址数据开关作为地址输入端可以自己设置,设置完毕后,双击单脉冲信号,将地址数据输入到74LS273里面去。
计算机组成原理存储器实验报告
计算机组成原理存储器实验报告一、实验目的本实验旨在通过实践了解存储器的基本原理和实现方式,掌握存储器的读写操作。
二、实验原理存储器是计算机中用于存储数据和程序的设备,其按照不同的存取方式可分为随机存储器(RAM)和只读存储器(ROM)。
其中RAM是一种易失性存储器,其存储的数据会随着电源关闭而丢失;而ROM则是一种非易失性存储器,其存储的数据在电源关闭后仍能保持不变。
本实验使用的是一个8位RAM,其具有256个存储单元,每个存储单元可以存储8位数据。
RAM可以进行读写操作,读操作是将存储单元中的数据读取到CPU中,写操作是将CPU中的数据写入到存储单元中。
存储单元的地址是由地址线来控制的,本实验中使用的是8位地址线,因此可以寻址256个存储单元。
三、实验仪器本实验使用的主要仪器有:存储器板、八位开关、八位数码管、八位LED灯、地址选择开关和地址计数器等。
四、实验过程1. 准备工作:将存储器板与开发板进行连接,并将八位开关、八位数码管、八位LED灯、地址选择开关和地址计数器等连接到存储器板上。
2. 设置地址:使用地址选择开关来设置需要读写的存储单元的地址。
3. 写操作:将需要存储的数据通过八位开关输入到CPU中,然后将CPU中的数据通过写信号写入到存储单元中。
4. 读操作:将需要读取的存储单元的地址通过地址选择开关设置好,然后通过读信号将存储单元中的数据读取到CPU中。
5. 显示操作:使用八位数码管或八位LED灯来显示读取到的数据或写入的数据。
6. 重复上述操作,进行多次读写操作,观察存储器的读写效果和数据变化情况。
五、实验结果通过本次实验,我们成功地进行了存储器的读写操作,并观察到了存储器中数据的变化情况。
在实验过程中,我们发现存储器的读写速度非常快,可以满足计算机的高速运算需求。
同时,存储器的容量也非常大,可以存储大量的数据和程序,为计算机提供了强大的计算和存储能力。
六、实验总结本次实验通过实践掌握了存储器的基本原理和实现方式,了解了存储器的读写操作。
《计算机组成原理》存储器实验报告
《计算机组成原理》实验报告学院:计算机学院专业:交通工程班级学号:AP0804114学生姓名:黄佳佳实验日期:2010.11.30指导老师:李鹤喜成绩评定:五邑大学信息学院计算机组成原理实验室存储器读写实验一、实验目的:掌握半导体静态随机存储器RAM的特性和使用方法。
掌握地址和数据在计算机总线的传送关系。
了解运算器和存储器如何协同工作。
二、预习要求:预习半导体静态随机存储器6116的功能。
三、实验设备:EL-JY-II8型计算机组成原理实验系统一套,排线若干。
四、电路组成:电路图见图3-1,6116的管脚分配和功能见图3-2。
图3-1 存储器电路图3-2(a)6116管脚分配图3-2(b)6116功能五、实验步骤Ⅰ、单片机键盘操作方式实验注:在进行单片机键盘控制实验时,必须把K4开关置于“OFF ”状态,否则系统处于自锁状态,无法进行实验。
1. 实验连线:实验连线图如图3-4所示。
连线时应按如下方法:对于横排座,应使排线插头上的箭头面向自己插在横排座上;对于竖排座,应使排线插头上的箭头面向左边插在竖排座上。
图3-4 实验三键盘实验接线图2.写数据:拨动清零开关CLR ,使其指示灯显示状态为亮—灭—亮。
在监控指示灯滚动显示【CLASS SELECt 】时按【实验选择】键,显示【ES--_ _ 】输入03或3,按【确认】键,监控指示灯显示为【ES03】,表示准备进入实验三程序,也可按【取消】键来取消上一步操作,重新输入。
再按【确认】键,进入实验三程序, 监控指示灯显示为【CtL= - -】,输入1,表示准备对RAM 进行写数据,在输入过程中,可按【取消】键进行输入修改。
按 【确认】键,监控指示灯显示【Addr- -】,提示输入2位16进制数地址,输入“00”按【确认】键,监控指示灯显示【dAtA 】,提示输入写入存储器该地址的数据(4位16进制数),输入“3344”按【确认】键,监控指示灯显示【PULSE 】,提示输入单步,按【单步】键,完成对RAM 一条数据的输入,数据总线显示灯(绿色)显示“0011001101000100”,即数据“3344”,地址显示灯显示“0000 0000”,即地址“00”,监控指示灯重新显示【Addr- -】,提示输入第二条数据的2位十六进制的地址。
杭电 计组实验5-6-7(章老师不插板实验报告)
clka=0;
wea=1;
addra=6'b000001;
dina=32'b11111111110001111111111101101111;
#100;
clka=1;
wea=1;
addra=6'b000001;
dina=32'b11111111110001111111111101101111
sllv $18,$8,$17;#$18=7000_0000
sllv $19,$3,$17;#$19=0002_0000
sllv $20,$19,$7;#$20=8000_0000
sub $21,$1,$20; #$21=7FFF_FFFF
or $22,$18,$21;#$22=7FFF_FFFF
add $23,$20,$22; #$23=FFFF_FFFF
sub $29,$22,$2; #$29=7FFF_FFFE
add $30,$20,$2; #$30=8000_0001
.R_Data_A(R_Data_A),
.R_Data_B(R_Data_B)
);
endmodule
module RAM(
input clka,
input [0:0] wea,
input [7:2] addra,
input [31:0] dina,
output [31:0] douta
);
RAM_B your_instance_name (
Write_Reg=0;
#100;
R_Addr_A=5'b11011;
Write_Reg=0;
Clk=0;
W_Addr=0;
计算机组成原理存储器实验报告
计算机组成原理存储器实验报告一、实验目的本次实验的目的是通过实际操作,了解存储器的组成和工作原理,掌握存储器的读写操作。
二、实验原理存储器是计算机中的重要组成部分,用于存储程序和数据。
存储器按照存储介质的不同可以分为内存和外存,按照存储方式的不同可以分为随机存储器(RAM)和只读存储器(ROM)等。
本次实验使用的是随机存储器,随机存储器是一种易失性存储器,数据在断电后会丢失。
随机存储器按照存储单元的位数可以分为8位、16位、32位等,按照存储单元的数量可以分为256×8、512×16、1024×32等。
存储器的读写操作是通过地址总线、数据总线和控制总线来完成的。
地址总线用于传输存储单元的地址,数据总线用于传输数据,控制总线用于传输控制信号。
三、实验器材1. 存储器芯片:AT24C022. 单片机:STC89C523. 电源、示波器、万用表等四、实验步骤1. 连接电路将AT24C02存储器芯片和STC89C52单片机按照电路图连接好,接上电源。
2. 编写程序编写程序,实现对AT24C02存储器的读写操作。
程序中需要设置存储器的地址和数据,以及读写操作的控制信号。
3. 烧录程序将编写好的程序烧录到STC89C52单片机中。
4. 运行程序运行程序,观察存储器的读写操作是否正确。
五、实验结果经过实验,我们成功地实现了对AT24C02存储器的读写操作。
在程序中设置了存储器的地址和数据,通过控制信号实现了读写操作。
在读操作中,我们可以看到存储器中的数据被正确地读出;在写操作中,我们可以看到存储器中的数据被正确地写入。
六、实验总结通过本次实验,我们深入了解了存储器的组成和工作原理,掌握了存储器的读写操作。
同时,我们也学会了如何使用单片机来控制存储器的读写操作。
这对于我们深入学习计算机组成原理和嵌入式系统开发都具有重要的意义。
计算机组成原理存储器实验报告
计算机组成原理存储器实验报告
实验名称:计算机组成原理存储器实验
实验目的:通过实验验证存储器的基本原理,掌握存储器的基本操作方法。
实验原理:
计算机系统中的存储器是计算机系统中最基本的组成部分之一,也是最重要的组成部分之一。
存储器主要是用来储存计算机程序和数据的,计算机在执行程序时需要从存储器中读取指令和数据,将结果写回存储器中。
根据存储器的类型,存储器可以分为RAM和ROM两种类型。
RAM(Random Access Memory)是一种随机读写存储器,它能够随机存取任意地址的数据。
RAM又分为静态RAM(SRAM)和动态RAM (DRAM)两种类型。
其中,静态RAM(SRAM)是使用闪存电路实现的,其速度快、性能优异,但成本相对较高;而动态RAM(DRAM)是使用电容储存信息的,价格相对较低,但性能相对较差。
ROM(Read Only Memory)是只读存储器,它不能被随意修改,只能被读取。
ROM主要用来存储程序中需要固化的数据和指令,如BIOS和系统引导程序等。
实验步骤:
1. 打开计算机,将存储器连接到计算机主板上的插槽上。
2. 打开计算机并进入BIOS设置。
3. 在BIOS设置中进行存储器检测。
4. 在操作系统中查看存储器容量。
实验结果:
本次实验中,存储器检测结果显示正常,存储器容量为8GB,符合预期。
实验总结:
本次实验通过了解存储器的基本原理和操作方法,掌握了存储器
的检测和使用方法。
同时也深入了解了计算机系统中存储器的重要性和种类。
对于今后的计算机学习和使用将具有重要的帮助作用。
计算机组成原理实验(存储器)
实验一 存储器实验
• 实验接线 ⑴ MBUS连BUS2; ⑵ EXJ1连BUS3; ⑶ 跳线器J22的T3连TS3; ⑷ 跳线器J16的SP连H23; ⑸ 跳线器SWB、CE、WE、LDAR拨在左边 (手动位置)。
实验一 存储器实验
• 实验步骤 给存储器的00地址单元中写入数据11 一.写存储器 1.写地址: 关掉存储器的片选(CE=1),打开地址锁存器门控信号 (LDAR=1),打开数据开关三态门(SW-B=0),由开关给出要写 入的存储单元地址,T3产生一正向脉冲将地址打入到地址锁存器中。 此时总线地址显示灯应显示开关输入的数。 2. 写数据: 关掉地址锁存器门控信号(LDAR=0),打开存储器的片选 (CE=0),使之处于写状态(WE=1),由开关给出此单元要写入的 数据,T3给一正向脉冲将数据写入到当前的地址单元中。此时总线数 据显示灯应显示开关输入的数。
15H 0 1 0 1 0 0 1 1 53H
实验一 存储器实验
• 对随机存储器的操作有写操作和读操作。 • CPU对存储器进行读/写操作,首先由地址 总线给出地址信号,然后要发出读操作或写 操作的控制信号,最后在数据总线上进行信 息交流。因此,存储器同CPU连接时,要 完成地址线的连接、数据线的连接和控制线 的连接。
实验一 存储器实验
• 存储器实验报告册要求: 1.画出实验原理简图(其中八位线即用 一根连接线表示即可)。 2.要求写清实验步骤(最好用图示意)。 3.要求写清实验结果。
•
• •
问题
• 从计算机体系结构的角度来看,计算机是 由哪几部分组成的? • 运算器是由哪些部件组成的? • CPU是由哪几部分组成的?
解答
• 从计算机体系结构的角度来看,计算机是 由运算器、存储器、控制器、输入设备和 输出设备组成。 • 运算器是由算术逻辑部件(ALU)和若干通 用寄存器组成。 • 运算器和控制器合在一起称为CPU。
存储器设计实验报告
实验一:存储器设计一、实验目的:1、掌握随机存储器RAM 的工作特性及使用方法;的工作特性及使用方法;2、掌握半导体存储器存储和读写数据的工作原理。
、掌握半导体存储器存储和读写数据的工作原理。
二、实验电路及其原理:二、实验电路及其原理:1.实验电路图.实验电路图2、设计原理、设计原理存储器就是选择RAM 地址,并对其操作存入数据,在需要时对其读取,并把数据输出到数据总线。
实验思路大致为:并把数据输出到数据总线。
实验思路大致为: ①第一个74273用来接收数据存放在RAM 里的地址,即A0A0……7。
当CPMAR 有效时数据进入芯片。
有效时数据进入芯片。
②当WE=1,RD=0时,RAM 进行写操作,接收存储在74273里的数传到地址端口,同时接收从B0B0……7输入的数据传到数据端口,把数据写到相应RAM 里。
③当WE=0。
RD=1时,RAM 进行读操作,把对应存储单元的数据传到第二个74273,通过74273传到74244芯片输出。
芯片输出。
三、实验步骤三、实验步骤1、根据实验原理在maxplus 下连接电路图,对其进行编译。
下连接电路图,对其进行编译。
2、根据实验原理设计各个输入端的波形图,对其进行仿真模拟获得输出数据,仿真波形如下图。
仿真波形如下图。
四、仿真图四、仿真图说明:RAM 在WRE=1时才工作,为方便起见WRE 置为1;74244在RAM_BUS=0时工作,为方便起见RAM_BUS 置为0。
因CPMOR 为一个周期变换一次,为了不浪费存储空间,A0为两倍的周期变换,A1为四周期变换,以此类推。
存储的数据从11H 起依次增加。
起依次增加。
五、实验总结五、实验总结通过本次实验熟练掌握MAX+PLUS 软件,并运用该软件设计存储器,了解了存储器的结构设计和工作原理,并在理解的基础上自己设计了一个简单的存储器。
在之后的波形仿真图模拟时,发现自己不能很好控制各个芯片的片选信号,不知道如何使各个芯片在合适的时间工作,在经过仔细分析后,设置了上图的波形图,保证每个存储单元都可以存到数,保证每个存储单元都可以存到数,没有刚开始的浪费现象,没有刚开始的浪费现象,没有刚开始的浪费现象,数据在各个数数据在各个数据线之间的传输也正常,存储器的数据输出为两个周期输出一次(这是因为WR 、RD 为一个周期变换一次,在两个周期后才会读有效)。
计组实验报告5
本次实验锁存器相当于寄存器,起到缓冲数据的作用。第一组实验中数据开关设置的
是(01H),使数据直接存入锁存器中。将数据开关设置成(02H),数据也直接存入锁存 器中,此时,数据总线和锁存输出显示(02H)。
七、实验总结
本次实验主要掌握了输入/输出的硬件电路,对锁存器的功能有了进一步的体会。实验 步骤简单易懂,实验过程顺利。
设置数据开关,具体操作步骤如下:
数据开关
(00000001)
三态门 CBA=000
CE=0 SW-B=1
寄存器DR2
(00000001)
LDDR1=0 LDDR2=1 按单步建
寄存器DR1
(00000001)
LDDR1=1 LDDR2=0 按单步建
结果分析:
运算单元的 DR1、DR2 与数据总线都显示(01H)。
(1)按单步键后,数据总线显示(00H),内存显示(11H),地址总线显示(00H)。 再按单步键后,数据总线显示(11H)。
(2)按单步键后,数据总线显示(01H),内存显示(12H),地址总线显示(01H)。 再按单步键后,数据总线显示(12H)。
(3)按单步键后,数据总线显示(02H),内存显示(13H),地址总线显示(02H)。
(4)寄存器判零
在保持带进位减法运算所设置的状态下,令AR=1,按【单步】,若零标志灯Z“亮”, 表示当前运算结果为零,反之表示结果不为零。
结果分析:
这个实验结果Z灯亮。因为带进位减法运算的结果是(00H)。所以,当 Z 灯亮时结
果为零。
六、实验总结
(1)通过这个实验,熟悉了判零实验的硬件,基本了解了判零实验的原理,加深了 对寄存器判零的理解。
LDAR 为高电平有效,而 WE 为读/写(W/R)控制信号,当 WE=0 时进行读操作,当 WE=1 时进行写操作。
EXP05实验五 存储器电路计
实验五存储器电路设计实验目的:1.熟悉EDA软件开发工具(MAX+plus II)的基本操作;2.熟悉KHF-4型CPLD/FPGA实验箱的板上资源分布。
3. 掌握常用存储器电路(ROM, RAM, FIFO)设计方法,并进行仿真、下载和硬件测试。
实验设备:微型计算机一台、KHF-4型实验箱一套。
实验原理:1)Memory Circuits Category:ROM: Read Only Memory 只读存储器RAM: Random Access Memory 随机存储器FIFO: First Input First Output 先进先出存储器RAM Category:DPRAM: dual port ram 双端口RAMSPRAM: single port ram 单端口RAM2)8x8 ROM设计:①ROM始化文件MIF(Memory Initialization File)的编写参考语法格式:depth=8; %depth for word line%width=8; %width for data or bit line%address_radix=hex; %such as bin, dec, hex, oct%data_radix=hex;contentbegin[0..1]:ff; %data from address 0 to 1 are ""ff"" in hex%2:12; %data at address 2 is ""12"" in hex%[3..5]:00;6:ff ee; %data at address 6 and 7 are ""ff and ""ee"" in hex%end;说明:bin,dec, oct, hex分别代表二进制、十进制、八进制和十六进制;文件缀名必须为mif,例如rom.mif。
计组实验-存储器实验
计算机组织与体系结构实验课程实验报告
实验名称存储器实验
一、实验目的
1、掌握FPGA中lpm_ROM只读存储器配置方法。
2、用文本编辑器编辑mif文件配置ROM,加载于ROM中;
3、验证FPGA中mega_lpm_ROM的功能。
二、实验所用仪器(或实验环境)
定制的lpm_rom input output
Quartus II(32-bit)仿真软件环境
三、实验基本原理及步骤(或方案设计及理论计算)
原理: ALTERA的FPGA中有许多可调用的LPM (Library Parameterized Modules)参数化的模块库,可构成如lpm_rom、lpm_ram_io、lpm_fifo、lpm_ram_dq的存储器结构。
CPU中的重要部件,如RAM、ROM可直接调用他们构成,因此在FPGA中利用嵌入式阵列块EAB可以构成各种结构的存储器,lpm_ROM是其中的一种。
lpm_ROM有3组信号:地址信号address[ ]、数据信号q[ ]、时钟信号clk。
由于ROM是只读存储器,所以它的数据口是单向的输出端口,ROM中的数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。
在这里,我们通过定制lpm_rom,然后加input端和output端实现电路。
最后通过设置输入端信号,并进行仿真得到结果。
步骤:
1、用图形编辑,绘制电路图。
2、进行波形仿真。
四、实验数据记录(或仿真及软件设计)
五、实验结果分析及回答问题(或测试环境及测试结果)遇到的问题:
1、运行模拟器之前,没有运行生成功能仿真网表
后来生成
得到结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
杭电计组实验5-存储器设计实验
实验报告
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@(*)
begin
LED=0;//初始化
M_W_Data=0;//初始化
if(!Mem_Write)//读操作
.clka(clka),
.wea(wea),
.addra(addra),
.dina(dina),
.douta(douta)
);
initial begin
// Initialize Inputs
clka = 0;
wea = 0;
addra = 0;
dina = 0;
// Wait 100 ns for global reset to finish
#100;
// Add stimulus here
clka = 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;
end
endmodule
二、仿真波形
三、电路图
顶层电路模块
顶层电路内部结构:
四、引脚配置(约束文件)
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’b00000000 32'h0055_752332'h0055_7523
5’b000001 32’b0000000132’b00000001 32'h0055_752332'h0055_7523
5’b000002 32’b0000000232’b00000002 32'h0055_752332'h0055_7523
5’b000003 32’b0000000332’b00000003 32'h0055_752332'h0055_7523
5’b000004 32’b0000000432’b00000004 32'h0055_752332'h0055_7523
5’b000005 32’b0000000532’b00000005 32'h0055_752332'h0055_7523
5’b000006 32’b0000000632’b00000006 32'h0055_752332'h0055_7523
5’b000007 32’b0000000732’b00000007 32'h0055_752332'h0055_7523
(2)答:这些单元的数据已经被改写了。
读出数据与写入数据一致。