您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 湘潭大学 计算机组成与原理 存储器实验(rom)实验报告
湘潭大学实验报告课程名称 计算机原理与设计 实验名称存储器实验(rom) 页数专业 班级 同组者姓名 无组别 学号 姓名 实验日期一、实验目的1、掌握FPGA中ROM的设置,作为只读存储器ROM的⼯作特性和配置⽅法。2、⽤⽂本编辑器编辑mif⽂件配置ROM,学习将程序代码以mif格式⽂件加载于ROM中;3、在初始化存储器编辑窗⼜编辑mif⽂件配置ROM;4、验证FPGA中ROM的功能。二、实验要求(1)实验前认真复习ROM存储器部分的有关内容。(2)记录实验数据,写出实验报告,给出仿真波形图。(3)通过本实验,对FPGA中EAB构成的ROM存储器有何认识,有什么收获?三、实验原理ALTERA的FPGA中有许多可调⽤的模块库,可构成如rom、ram、fifo等存储器结构。CPU中的重要部件,如RAM、ROM可直接调⽤他们构成,因此在FPGA中利⽤嵌⼊式阵列块EAB可以构成各种结构的存储器,ROM是其中的⼀种。ROM有5组信号:地址信号address[]、数据信号q[]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。由于ROM是只读存储器,所以它的数据⼜是单向的输出端⼜,ROM中的数据是在对FPGA现场配置时,通过配置⽂件⼀起写⼊存储单元的。图2-1-1中的ROM有3组信号:inclk——输⼊时钟脉冲;instruction[31..0]——lpm_ROM的32位数据输出端;a[4..0]——lpm_ROM的5位读出地址。实验中主要应掌握以下三⽅⾯的内容:(1)ROM的参数设置;(2)ROM中数据的写⼊,即FILE初始化⽂件的编写;(3)ROM的实际应⽤,在GW48_CP+实验台上的调试⽅法。四、实验内容(1)新建⼯程。⼯程名是scinstmem.qpf。(2)⽤初始化存储器编辑窗⼜编辑ROM配置⽂件(⽂件名.mif)。这⾥预先给出后⾯将要⽤到的指令存储器初始化⽂件:scinstmem.mif。scinstmem.mif中的数据是机器指令代码(图2-1-3)。(3)模块设计。⽤图形编辑,使⽤⼯具MegaWizardPlug-InManager,定制指令存储器rom宏功能块。设置地址总线宽度address[]和数据总线宽度q[],分别为5位和32位,并添加输⼊输出引脚,如图2-1-1设置和连接。在设置rom数据参数选择项file的对应窗⼜中(图2-1-2),⽤键盘输⼊ROM配置⽂件的路径(scinstmem.mif),然后设置在系统ROM/RAM读写允许,以便能对FPGA中的ROM在系统读写。(4)全程编译。(5)画波形⽂件并进⾏功能仿真。(6)引脚锁定。(7)全程编译。(8)编程下载。下载SOF⽂件⾄FPGA,改变ROM的地址a[4..0],外加读脉冲,通过实验台上的数码管⽐较读出的数据是否与初始化数据(scinstmem.mif中的数据)⼀致。注,⼯程名是scinstmem.qpf,下载scinstmem.sof⽰例⽂件⾄实验台上的FPGA,选择实验电路模式仍为NO.0,32位数据输出由数码8⾄数码1显⽰,5位地址由键2、键1输⼊,键1负责低4位,地址锁存时钟CLK由键8控制,每⼀次上升沿,将地址锁⼊,数码管8/7/6/5/4/3/2/1将显⽰ROM中输出的数据。发光管8⾄1显⽰输⼊的5位地址值。 图2-1-1 ROM的结构图 图2-1-2 设置在系统ROM/RAM读写允许 图2-1-3 scinstmem.mif中的数据 (9)在系统读写。打开QuartusII的在系统存储模块读写⼯具In-systemMomery_ContentEditor,了解FPGA中ROM中的数据,并对其进⾏在系统写操作(图2-1-4)。 图2-1-4在系统存储模块读写五、实验环境与设备GW48CP+主系统、pc机六、实验代码设计(含符号说明)`timescale1ps/1psmoduleinst_mem(address,clock,q);input[4:0]address;inputclock;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),.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_a({32{1'b1}}),.data_b(1'b1),.eccstatus(),.q_b(),.rden_a(1'b1),.rden_b(1'b1),.wren_a(1'b0),.wren_b(1'b0));defparamaltsyncram_component.address_aclr_a=NONE,altsyncram_component.init_file=scinstmem.mif,altsyncram_component.intended_device_family=Cyclone,altsyncram_component.lpm_hint=ENABLE_RUNTIME_MOD=YES,INSTANCE_NAME=rom1,altsyncram_component.lpm_type=altsyncram,altsyncram_component.numwords_a=32,altsyncram_component.operation_mode=ROM,altsyncram_component.outdata_aclr_a=NONE,altsyncram_component.outdata_reg_a=UNREGISTERED,altsyncram_component.widthad_a=5,altsyncram_component.width_a=32,altsyncram_component.width_byteena_a=1;endmodulemoduleinst_mem(address,clock,q);input[4:0]address;inputclock;output[31:0]q;`ifndefALTERA_RESERVED_QIS`endiftri1clock;`ifndefALTERA_RESERVED_QIS`endifendmodule七、实验检验与测试仿真结果波形图: 引脚分配截图: 八、测试数据地址数据000013424005000010200500040001100C0001800100AC820000001018C890000001100124402200111020050030100020A5FFFF0100134A8FFFF0101039085555九、实验过程中出现的问题及处理情况(包括实验现象、原因分析、排故障的方法等)1.输入代码后,编译程序出现编译错误:反复对照课本,核对代码后修正错误,编译成功;2.将电脑连接GW48CP系统,下载程序时,出现不识别硬件的情况:百度了解到可能是pc端缺少usb驱动控件,之后根据网上的教程,利用Quarstus工具包中只带的驱动包进行驱动安装,安装成功后,硬件识别成功,顺利将源程序下载到GW48CP系统中;3.在GW48CP系统中,测试源程序实际运行情况的时候,由于对实验原理了解的不够透彻,操作上遇到了不少困难,比如不知道如何正确的设置要访问的内存地址,通过再一次细致地阅读实验指南,以及与同学的合作研究,终于摸索出了正确的操作方式,并成功完成实验。
本文标题:湘潭大学 计算机组成与原理 存储器实验(rom)实验报告
链接地址:https://www.777doc.com/doc-4282749 .html