您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 湘潭大学 计算机组成与原理 存储器实验(ram)实验报告
湘潭大学实验报告课程名称 计算机原理与设计 实验名称存储器实验(ram) 页数专业 班级 同组者姓名 无组别 学号 姓名 实验日期一、实验目的1、了解FPGA中RAM模块ram的功能 2、掌握ram的参数设置和使用方法 3、掌握ram作为随机存储器RAM的工作特性和读写方法。 二、实验要求(1)实验前认真复习运算器和存储器部分的有关内容; (2) 记录实验数据,写出实验报告,给出仿真波形图。 (3)通过本实验,对FPGA中EAB构成的LPM-ROM存储器有何认识,有什么收获? 三、实验原理 在FPGA中利用嵌入式阵列块EAB可以构成存储器,ram的结构如图2-2-1。从Datain[7..0]输入的低8位数据由Ext8to32.v进行零扩展为32位输入数据后,送入ram的左边data[31..0]输入,从右边dataout[31..0]输出,we——为读/写控制信号端。数据的写入:当输入数据和地址准备好以后,clk是地址锁存时钟,当信号上升沿到来时,地址被锁存,数据写入存储单元。 数据的读出:从addr[4..0]输入存储单元地址,在inclk信号上升沿到来时,该单元数据从dataout[31..0]输出。 we——读/写控制端,低电平时进行读操作,高电平时进行写操作; inclk——读/写时钟脉冲;datain[7..0] ——低8位数据输入端; data[31..0]——RAM的32位数据输入端;addr[4..0]——RAM的读出和写入地址; dataout[31..0]——RAM的32位数据输出端。 图2-2-1 lpm_ram_dp实验电路图 四、实验内容(1)RAM定制与ROM基本相同,实验步骤也类似。按图2-2-1输入电路图,同样使用工具Mega Wizard Plug-In Manager。设置地址总线宽度address[]和数据总线宽度q[],分别为5位和32位,并进行编译、仿真、引脚锁定、FPGA配置。 (2)注意,RAM也能加入初始化文件scdatamem.mif (数据存储器的初始化文件),注意此文件加入的路径表达和文件表达(图2-2-2): scdatamem.mif ,(后缀mif要小写);同时择在系统读写RAM功能,RAM的ID名取为:ram2。 (3)通过键1、键2输入RAM的低8位数据(选择实验电路模式1),键3、键4输入存储器的5位地址。键8控制读/写允许,低电平时读允许,高电平时写允许;键7(CLK0)产生读/写时钟脉冲,即生成写地址锁存脉冲,对ram进行写/读操作。 注,工程名是scdatamem.qpf,下载scdatamem.sof至实验台上的FPGA,选择实验电路模式为NO.1,按以上方式首先进行验证实验。首先控制读出初始化数据,与载入的初始化文件scdatamem.mif中的数据进行比较,然后控制写入一些数据,再读出比较。使用在系统读写RAM的工具对其中的数据进行读写操作(图2-2-3),设置成连续读模式,将在系统读写工具窗口的数据与实验箱上数码管上显示的数据对照起来看。 图2-2-2 RAM加入初始化文件和选择在系统读写RAM功能 图2-2-3使用在系统读写工具对RAM中的数据进行读写操作五、实验环境与设备GW48CP+主系统、pc机六、实验代码设计(含符号说明)`timescale1ps/1psmoduledata_mem(address,clock,data,wren,q);input[4:0]address;inputclock;input[31:0]data;inputwren;output[31:0]q;`ifndefALTERA_RESERVED_QIS`endiftri1clock;`ifndefALTERA_RESERVED_QIS`endifwire[31:0]sub_wire0;wire[31:0]q=sub_wire0[31:0];altsyncramaltsyncram_component(.address_a(address),.clock0(clock),.data_a(data),.wren_a(wren),.q_a(sub_wire0),.aclr0(1'b0),.aclr1(1'b0),.address_b(1'b1),.addressstall_a(1'b0),.addressstall_b(1'b0),.byteena_a(1'b1),.byteena_b(1'b1),.clock1(1'b1),.clocken0(1'b1),.clocken1(1'b1),.clocken2(1'b1),.clocken3(1'b1),.data_b(1'b1),.eccstatus(),.q_b(),.rden_a(1'b1),.rden_b(1'b1),.wren_b(1'b0));defparamaltsyncram_component.address_aclr_a=NONE,altsyncram_component.indata_aclr_a=NONE,altsyncram_component.init_file=scdatamem.mif,altsyncram_component.intended_device_family=Cyclone,altsyncram_component.lpm_hint=ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=ram2,altsyncram_component.lpm_type=altsyncram,altsyncram_component.numwords_a=32,altsyncram_component.operation_mode=SINGLE_PORT,altsyncram_component.outdata_aclr_a=NONE,altsyncram_component.outdata_reg_a=UNREGISTERED,altsyncram_component.power_up_uninitialized=FALSE,altsyncram_component.widthad_a=5,altsyncram_component.width_a=32,altsyncram_component.width_byteena_a=1,altsyncram_component.wrcontrol_aclr_a=NONE;endmodulemoduledata_mem(address,clock,data,wren,q);input[4:0]address;inputclock;input[31:0]data;inputwren;output[31:0]q;`ifndefALTERA_RESERVED_QIS`endiftri1clock;`ifndefALTERA_RESERVED_QIS`endifendmodulemoduleext8to32(a,s);input[7:0]a;output[31:0]s;assigns={4{a}};endmodule七、实验检验与测试仿真结果波形图: 引脚分配截图: 八、测试数据读(0)/写(1)地址数据001110000000A3001111000000270100000000007901000100000115010010000000001000011111111110001022222222100011333333331001004444444410010155555555九、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)1.输入代码后,编译程序出现编译错误:反复对照课本,核对代码后修正错误,编译成功;2.将电脑连接GW48CP系统,下载程序时,出现不识别硬件的情况:百度了解到可能是pc端缺少usb驱动控件,之后根据网上的教程,利用Quarstus工具包中只带的驱动包进行驱动安装,安装成功后,硬件识别成功,顺利将源程序下载到GW48CP系统中;3.在GW48CP系统中,测试源程序实际运行情况的时候,出现了不能够正确读取内存中数据的情况,而我自己反复排查后依旧无法找到出现问题的根本原因,经过与老师以及同学的讨论研究,最后发现是平台的模式选择出错了,选中正确的模式后,成功完成实验。
本文标题:湘潭大学 计算机组成与原理 存储器实验(ram)实验报告
链接地址:https://www.777doc.com/doc-4282745 .html