FPGA中LPM_ROM定制与读出实验

一.实验目的
  1.掌握FPGA中lpm_ROM的设置,作为只读存储器ROM的工作特性和配置方法;
  2.用文本编辑器编辑mif文件配置ROM,学习将程序代码以mif格式文件加载于lpm_ROM中;
  3.在初始化存储器编辑窗口编辑mif文件配置ROM;
  4.验证FPGA中mega_lpm_ROM的功能。

二.实验原理
  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有5组信号:地址信号address[ ]、数据信号q[ ]、时钟信号inclock、outclock、允许信号memenable,其参数都是可以设定的。由于ROM是只读存储器,所以它的数据口是单向的输出端口,ROM中的数据是在对FPGA现场配置时,通过配置文件一起写入存储单元的。
实验中主要应掌握以下三方面的内容:
  1.lpm_ROM的参数设置;
  2.lpm_ROM中数据的写入,即LPM_FILE初始化文件的编写;
  3.lpm_ROM的实际应用,在实验台上的调试方法。

三.实验步骤
  1.建立工程:
  A.新建一个存储器初始化(.mif)文件。
  B.打开QuartusII,在顶部菜单中选File -> New other files ->memory initialization file ,单击OK,在弹出的对话框中输入字数64和字长8,单击OK, 打开存储器初始化编辑窗口。利用View菜单命令,改变地址或字长的显示格式等,选择要编辑的字(反白显示),直接输入内容。然后点File ->save as,在弹出的对话框中选择 “保存在” D:\lpm_rom,输入文件名Mif1,文件名后缀选择.mif,取消最下面一行的Create new project based on this file的选择框的对勾,点击保存完成。
  C.打开QuartusII,选File ->New Block Diagram/schematic File单击OK,进入图形输入界面,单击鼠标右键,点Insert ->Symobl…,在libraries库中选择需要的元件,(如果知道元件名称也可以直接输入),在这里我们在Name框中直接输入lpm_rom,点OK,在弹出的窗口中选择VHDL,在What name do you want for the output file? 点Browse,选择元件存放的文件夹D:\lpm_rom,给元件取名lpm_rom0,点击next ,进入LPM_ROM选择对话框,在currently select device family中选择芯片Cyclone III,选宽8位,64字节,选中Dual clock,点next进入下一界面, 去掉已打勾的“q”output port,然后点next进入下一界面,点browse,选前面已建立的D: D:\lpm_rom\ Mif1。mif文件,点next -> next,Finish完成lpm_rom0的输入。重复点鼠标右键选Insert Symobl…,在libraries库中择其他需要的input,output引脚。连接到lpm_rom0对应的端口,修改输入引脚名称一个为a[5…0],时钟名为clk, 输出引脚的名称为q[7…0],然后点save,在弹出的窗口Do you want to create a new project on this file? 回答“是”,点next -> next ,在窗口中选择存入新建的文件夹D:\lpm_rom中,项目名lpm_rom0,lpm_rom0,点next->next,在设备窗口中分别选择:Family为CycloneIII, package为PQFP, Pin count为240, Speed grade为8,点next -> next ->选择EP3C40Q248C8,Finish保存。
  D.在快捷键中,点击编译键►完成编译。如果有错误,可返回前面重新检查、修改输入后再次编译,直到看到提示编译成功信息。
  2.波形仿真:
  A.打开QuartusII,选File File -> New other files -> Vector Waveform File,点击OK进入仿真界面。
  B.在左空白处双击左键,在新出现的对话框的Radix中选择Hexadecimal(16进制),点Node Finder点list选中需要仿真的信号,a[5…0],clk,[7…0]点击OK->OK。
  C.加入信号。
  D.选仿真需要的时间,点击Edit,选择End time (100 us)。点a[0],设置为高电平。点clk (10 ns),一般可设置时钟的周期为10-100 us ,End time为1-100 us。
  E.保存。系统会自动把后缀加上。
  F.仿真。点快捷键 仿真。
  3.引脚锁定
  仿真完成后,选择菜单Assignments-> pins->Location,根据实验电路结构图NO。0和芯片引脚对照表, 查出a[5…0],clk,q[7…0] ,在核心芯片EP3C40Q240C8上所对应的引脚号,进行引脚锁定。引脚锁定后再次编译,点快捷键►编译。
  4.下载
  将电脑与实验箱通过并口连接接好,点快捷键,在出现的*.sof文件上, 选中program/configure点快捷键。即可设计下载到FPGA中。最后是用实验箱进行硬件测试。

四.实验要求
  1.实验前认真复习LPM-ROM存储器部分的有关内容。
  2.记录实验数据,写出实验报告,给出仿真波形图。
  3.通过本实验,对FPGA中EAB构成的LPM-ROM存储器有何认识,有什么收获?

五. 实验结果
  1.存储器初始化文件内容:

  2.LPM_ROM图形文件:

  3.波形仿真结果:

  4.引脚锁定结果:

  5. 下载到FPGA:

  6.FPGA实验板初始化状态:

  选择实验电路模式为NO。0,24位数据输出由数码8至数码3显示,6位地址由键2、键1输入,键1负责低4位,地址锁存时钟CLK由键8控制,每一次上升沿,将地址锁入,数码管8/7/6/5/4/3将显示ROM中输出的数据。发光管8至1显示输入的6位地址值。
例如:当由键2、键1输入的地址为000001时,数码管3显示000001F,表示读取的数据为十进制的1;当由键2、键1输入的地址为010001时,数码管3显示000011FF,表示读取的数据为十进制的17。由此可见,本次实验成功地验证了FPGA中mega_lpm_ROM的功能。
六.思考题
  1.如何在图形编辑窗口中设计LPM-ROM存储器?怎样设计地址宽度和数据线的宽度?
  答:进入图形输入界面,双击鼠标左键,在Name框中输入lpm_rom,点OK,在弹出的窗口中选择VHDL,在What name do you want for the output file?中点Browse,选择元件存放的文件夹D:\lpm_rom,给元件取名lpm_rom0,点击next,进入LPM_ROM选择对话框,在currently select device family 中选择芯片Cyclone III,选宽8位,64字节。
  2.怎样导入LPM-ROM的设计参数文件和存储LPM-ROM的设计参数文件?
  答:点next进入下一界面,去掉已打勾的“q”output port,点next进入下一界面,点browse,选前面已建立的D: D:\lpm_rom\ Mif1。mif文件,点next->next,最后点击Finish完成lpm_rom0的输入。
  3.怎样对LPM-ROM的设计参数文件进行软件仿真测试?
  答:选File File->New other files->Vector Waveform File,点击OK进入仿真界面。在左空白处双击左键,在新出现的对话框的Radix中选择Hexadecimal(16进制),点Node Finder点list选中需要仿真的信号:a[5…0],clk,[7…0]点击OK。加入信号,选仿真需要的时间,点击Edit,设置End time为100 us。设置A组信号的变化为从0-63(十进制),每隔10us变化一次,同时设置时钟的周期为20us。保存,点快捷键 仿真。
  4.怎样在实验台上对LPM-ROM进行测试?
  答:仿真完成后,选择菜单Assignments->pins->Location,根据实验电路结构图NO。0和芯片引脚对照表,查出a[5…0],clk,q[7…0],在核心芯片EP3C40Q240C8上所对应的引脚号,进行引脚锁定。引脚锁定后再次编译,点快捷键►编译。将电脑与实验箱通过并口连接接好,点快捷键,在出现的*.sof文件中选中program/configure点快捷键即可将设计下载到FPGA中,最后用实验箱进行硬件测试。
七.心得体会
  1.本次实验是这学期计组实验的第一次实验。通过本次实验,我初步掌握了FPGA中lpm_ROM的设置,复习了课本中只读存储器ROM的工作特性。
  2.通过本次实验,我学会了用文本编辑器编辑mif文件配置ROM,将代码以mif格式文件加载于lpm_ROM中;
  3.通过本次实验,我学会了如何将配置文件下载到FPGA中并进行硬件验证。
  4.虽然实验中遇到了很多困难,如电路图少连了线、引脚分配错误、USB-Blaster数据线有问题,板子内部原因等等,但最终仍在老师的指导下成功完成了实验。

西电计组实验一 存储器实验相关推荐

  1. 西电计算机原理与系统组装实验报告,西电计组实验报告.docx

    计 算 机 组 成 原 理 实 验 报 告 评 语: 成绩 教 师: 年 月 日 班 级: **** 学 号: ***** 姓 名: ** 地 点: *** 时 间: *** 计算机组成原理与体系结构 ...

  2. 计算机组成实验六MIPS汇编器,杭电计组实验6-MIPS汇编器与模拟器实验.doc

    <杭电计组实验6-MIPS汇编器与模拟器实验.doc>由会员分享,提供在线免费全文阅读可下载,此文档格式为doc,更多相关<杭电计组实验6-MIPS汇编器与模拟器实验.doc> ...

  3. 西电计科操作系统实验

    #西电计科操作系统实验: ##操作系统的实验方敏老师和黄伯虎老师要求并不一样,方敏老师的OS实验比起黄伯虎老师简直轻松的不值一提,因此选课的时候,建议大家选方敏老师,性价比更高! ##本次给大家介绍的 ...

  4. 计算机组成原理实验 实验一 存储器实验

    目录 实验1  存储器实验 一.实验目的 二.实验原理 三.实验电路 四.实验步骤 五.实验数据分析 六.思考题 实验1  存储器实验 一.实验目的 1.熟悉DVCC计算机组成原理实验机的结构,掌握其 ...

  5. 多思计组原理虚拟实验室 实验二 运算器实验

    电路图 链接:https://pan.baidu.com/s/1UF8STkWRZYxt0SMp7NsdrA?pwd=2333 提取码:2333 –来自百度网盘超级会员V5的分享 以下为电路连接图 电 ...

  6. xdoj系统_【战疫情】西电计科院教学在行动(6)——对话全面线上服务的万波老师...

    (通讯员 王孟晞 薛科)线上教学是疫情期间的特殊需要,更是我们进行信息化.智能化教学建设的需要.即使没有这次疫情,计科院也在着手进行"人工智能+教育","互联网+教育&q ...

  7. 22考研上岸西电计科初试395分经验分享

    [西电22考研 计科院834]17级毕业生 本科双非通信专业 脱产在家 辞职跨考 一战上岸西安电子科技大学! 视频原地址 备考经验分享视频 接下来我将从以下几个方面简单的介绍一下我自己,希望准备考研的 ...

  8. 西电计科微机原理期末复习笔记

    本人西电19计科,微原期末90+,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

  9. 西电计科数据库系统期末复习笔记

    本人西电19计科,数据库系统98,这是复习期间整理的笔记,基本涵盖了课程全部重点,有需要的学弟学妹可以在复习的时候参考一下.

最新文章

  1. NameValueCollection类总结和一个例子源码
  2. 【408预推免复习】操作系统之IO层次结构和IO控制方式
  3. 不包含本位置值的累乘数组
  4. 你值得拥有!一个基于 Spring Boot 的API、RESTful API 的项目
  5. Python的字符串
  6. hashlib\logging\configparser
  7. 2018.12.30|区块链技术头条
  8. 中小研发团队架构实践之生产环境诊断工具WinDbg
  9. 北大教授郑也夫斗胆谈了7个天大的问题,每个都非常狠,也很现实
  10. Go 学习笔记(11):切片
  11. 【Hadoop】同步集群时间
  12. workbench求解闭合状态尼龙槽环
  13. 单片机外文参考文献期刊_单片机_英文参考文献..doc
  14. PR模板 红黑大气手机竖屏竖版时尚短视频宣传抖音PR模板
  15. OS系列——操作系统镜像加载BIOS固件工作原理详解
  16. 《软件研发之道:微软开发团队的经验法则》目录
  17. 紫薯第10章数学 kaungbin专题14数论基础
  18. 从零开始玩单反 相机参数之光圈/快门篇(转)
  19. 搜狗 linux 五笔输入法,Ubuntu下安装搜狗、谷歌、五笔等输入法
  20. 数智赋能跨境国际物流暨WallTech沃行信息十周年庆典圆满落幕

热门文章

  1. 基于PYNQ的AD采集系统
  2. BUU Web[33-36]
  3. 大学计算机应用基础知识点王爱平,北京师范大学心理学院硕导介绍:王爱平
  4. 美国零售业初创公司排名前5位的软件开发公司
  5. 绘制小猪佩奇的python代码
  6. G. Minimal Coverage(dpdd)
  7. Spring当中循环依赖很少有人讲,今天一起来学习!
  8. tiptop自定义发送邮件
  9. C# Behavior Tree -- 行为树
  10. HTML/CSS中的空格如何处理