LPM_ROM 和LPMM 设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌航空大学实验报告
2014年 5月 17日
课程名称:计算机组成与原理实验名称:LPM_ROM和LPM_RAM设计
班级: 120452 学生姓名:刘信学号: 12045217
指导教师评定:签名:
实验目的:
掌握FPGA 中LPM_ROM的设置:
l 作为只读存储器ROM的工作特性和配置方法;
2学习将程序代码或数据以MIF格式文件加载于LPM_ROM中;
掌握lpm_ram_dq 的参数设置和使用方法:
l 掌握lpm_ram_dq 作为随机存储器RAM的设置;
2 掌握lpm_ram_dq 的工作特性和读写方法;
3--掌握lpm_ram_dq 的仿真测试方法、。
实验任务:
1.LPM_ROM定制和测试
LPM_ROM的参数设置;
LPM_ROM中数据的写入,即初始化文件的编写;
LPM_ROM的实际应用,在GW48实验台上用NO.0 电路模式测试。
2.LPM_RAM定制和测试
LPM_RAM的参数设置;
LPM_ROM的实际应用,在GW48实验台上用NO.0 电路模式测试。
实验指导:
1 .实验原理及方案
用户可编程硬件FPGA芯片设计,有许多可调用参数化库模块LPM (Library Parameterized Modules),
可直接调用设置,利用嵌入式阵列块EAB(Embed Array Block )构成lpm_ROM,lpm_RAM 等各种
存储器结构。
lpm_ROM有5 组信号:
地址信号address[];
数据信号q[];
时钟信号inclock、outclock;
允许信号memenable.
其参数是可以设定的。
由于ROM是只读存贮器,它的数据口是单向的输出端口,数据是在对FPGA
现场配置时,通过配置文件一起写入存储单元的。
lpm_ram_dq 的输入/输出信号如下:
地址信号A[]; RAM_dq0 的存储单元地址;
数据输入信号DATA[] RAM_dq0 的数据输入端;
数据输出信号Q[]; RAM_dq0的数据输出端。
时钟信号CLK; 读/写时钟脉冲信号;
读写信号W/ R. 读/写控制信号端
数据从总线端口DATA []输入。
当输入数据和地址准备好以后,由于在inclock 上的信号是地址锁存
时钟,当信号上升沿到来时,地址被锁存,于是数据被写入存储单元。
数据的读出控制是从A[]输入存
储单元地址,在CLK信号上升沿到来时,该单元数据从Q[]输出。
W/ R.为写/读控制端,低电平时进行
读操作,高电平时进行写操作;
实验步骤:
(一)LPM_ROM定制和测试
1.建立实验项目工作文件夹,如:C:\lpmROM
2.新建,点击”Other Files”,然后选择”Memory Initialization File” ,根据对ROM设计的要求选择字长为64和字数为24。
3.编辑存入ROM中的数据文件,即MIF文件或hex文件;在初始化存储器编辑窗口输入编辑MIF文件内容如表 3.5 .
表3.5 MIF文件的数据内容
Addr +0 +1 +2 +3 +4 +5 +6 +7
00 018108 00ED82 00C050 00E004 00B005 01A206 959A01 00E00F 08 00ED8A 00ED8C 00A008 008001 062009 062009 070A08 038201 10 001001 00ED83 00ED87 00ED99 00ED9C 31831D 31821F 318221 18 318223 00E01A 00A01B 070A01 00D181 21881E 019801 298820 20 019801 118822 019801 198824 019801 018110 000002 000003 28 000004 000005 000006 000007 000008 000009 00000A 00000B 30 00000C 00000D 00000E 00000F 000010 000011 000012 000013 38 000014 000015 000016 000017 000018 000019 00001A 000001C 3.创建工程,调用参数化模块库LPM输入设计文件,进行定制设置
要求:用LPM元件库设计LPM_ROM,地址总线宽度address[]和数据总线宽度q[]分别为6 位和24 位;建立相应的工程文件,设置LPM_ROM数据参数,LPM_ROM配置文件的路径(ROM_A.mif),并设置在系统
ROM/RAM读写允许,以便能对FPGA中的ROM在系统读写。
点击File|NEW|,选Device Design Files中的BlockDiagram/Schematic File 选项,点击OK按钮,进入用图形编辑设计窗。
(2)参照实验2中的图3.17、图 3.18、图3.19,进入符号选择对话框如图 3.29所示,依次展开libraries窗口中的文件节点树/libraries/megafuntions/storage/选LPM_ROM。
(3)点击MegaWizard Plug-In Manager按钮(或者用主菜单Tools|MegaWizard Plug-In Manager 进入),在插件管理器引导下,完成器件定制。
按Next.,生成ROM电路符号。
4.编译工程设计文件。
5.锁定输入/输出引脚,参考表3.6,并重新编译。
6.下载编程至芯片
6.测试,选择实验电路模式No.0。
其中:6位地址由键2、键1 输入,键1负责低4位;发光管2~1 显示输入 6 位地址值;数码管8~3显示24位读出数据;地址锁存时钟CLK由键8控制,每一次上升沿,将地址锁入,数码管8~3将显示ROM中输出的数据。
测试操作如下:①改变LPM_ROM的地址a[5..0],外加读脉冲,通过实验台上的数码管比较读出的数据是否与初始化数据(rom4.mif中的数据)一致。
表3.6 lpm_rom 芯片引脚与实验电路连线对照表
设计电路的逻辑端口名Address[5..0] data[23..0] 地址所存时钟clk
结构图上的连接器件按键2,1 数码管8~3 按键8
结构图上引脚序号PIO13-12、PIO11-8 PIO47-24 PIO7
EP1C6Q240 芯片引脚序号7,6,4-1 168-158,141-132,
128,41.21
240
EP1C6Q240 芯片
引脚号名
I/O13-8 I/O47-24 I/O7
②点击Tool|In-System Memory Content Editor菜单命令,打开QuartusⅡ的在系统存储模块读写工具。
了解FPGA中ROM中的数据,并对其进行在系统写操作;记录实验数据。
(二)LPM_RAM定制和测试
1.建立实验项目工作文件夹,如:C:\lpmRAM。
2.创建工程,调用参数化模块库LPM,输入设计文件,进行定制设置。
3.进行编译。
4.引脚锁定,参考表3.7。
表3.7 lpm_ram芯片引脚与实验电路连线对照表
设计电路的逻辑端口名Address
[7..0]
Data
[7..0]
Q[7..0] 读/写
控制
地址
所存
结构图上连接器件按键
4,3
按键
2,1
数码管
8,7
按键8 按键7
结构图上引脚序号PIO15-12
PIO11-8
PIO7-4
PIO3-0
PIO31-24 PIO49 PIO48
EP1C6Q240 芯片引脚序号12,8-6,
4-1
240-233 136-132,
128,41,21
173 169
EP1C6Q240
芯片引脚号名
I/O15-8 I/O7-0 I/O31-24 I/O49 I/O48
5.向FPGA配置下载.
6.测试,选择电路模式No.1,如图3.33所示.。
(1)键4、键3 输入8 位存储器单元地址。
键7(CLK0)生成写地址锁存脉冲,对1pm_ram_dq 进行写/读操作,键8 控制读/写,低电平读,高电平写;
(2)键2、键1 输入RAM的8位数据,数码管8,7显示读出的数据。
lpm_ram_dq 也能加入初始化文件(这里5_ram.mif是后面将要用到的模型CPU 执行微程序文件),注意此文件加入的路径表达和文件表达方式:5_ram.mif(注意后缀mif要小写);选择RAM的ID 名为ram1。
按以上方式进行验证实验。
首先控制读出初始化数据,与载入的初始化文件ram_dp1.mif中的数据进行比较,然后控制写入一些数据,再读出比较。
使用在系统读写RAM的工具对其中的数据进行读写操作,设置成连续读模式,将在系统读写工具窗口的数据与实验箱上数码管上显示的数据进行对比。
实验结论
读:键3和键4输入地址,然后点键7,在数码管上的7和8上面会显示出相应的数据
写:先按键8,然后按键3和键4输入地址,按键1键2输入要输入的数据,然后按键7,刷新数据,电脑上会显示出改变的数据。
附图:。