49.关于Quartus和ISE中ROM的初始化和仿真的一些小结
最近在玩Altera的FPGA,当我用Quartus II自带的IP核生成ROM时,出现了各种问题,于是在网上各种查资料,终于解决了我的问题。这里做一下小结,方便自己日后查阅。
Quartus II 和ISE在仿真和初始化时有些些区别,这里简要介绍一下二者的初始化和仿真步骤:1、用Quartus II创建并仿真ROM
Step1:在Quatus II工程下生成一个ROM
Step2:编写.mif文件,作为ROM的初始化文件
Step3:将.mif文件拷贝到Modelsim工程下
Step4:进行Modelsim仿真
初始化文件.mif文件的编写需要按照一定的格式,很多文章都有介绍,我这里也总结一下:初始化文件一般有.hex文件和.mif文件,但是一般都是用文本文件写好初始化的数据,然后将后缀改为.mif,这样做简单方便,故使用的比较广泛。先看一个简单的mif文件的内容(可以用记事本将mif文件打开,看到里面的代码):
DEPTH=256; %存储器的纵向容量,就是存多少个数据,本例中是256个
WIDTH=8 ; %存储器的横向宽度,就是每个数据多少位,8位宽
ADDRESS_RADIX=DEC ; %设置地址基值(实际就是地址用什么进制的数表示) 可以设为BIN(二进制),OCT(八进制),DEC(十进制),HEX(十六进制)
DATA_RADIX=DEC ; %设置数据基值 同上
%数据区里的地址和数据值要和这里设置的值一致,即这里如果设置了
%DEC那么,数据区的地址和数据都要用十进制来表示。
CONTENT %开始数据区
BEGIN
0:0; %前面是地址,后面是数据,都是用十进制表示(上面的DEC)
1:1;
……%如果表示成这样 [0..255]:10; 意思就是从0到255都是数据10.
255:255;
END; %结束
2、用ISE创建并仿真ROM
Step1:在ISE工程下生成一个ROM
Step2:编写.coe文件,作为ROM的初始化文件
这一步与Quartus II不同,因为Quartus II中ROM的初始化文件为.mif或者.hex,而在ISE中ROM的初始化文件是.coe文件,所以需要编写.coe文件。.coe文件的格式很简单,下面就是一个.coe文件的内容:
MEMORY_INITIALIZATION_RADIX=16; //表示ROM内容的数据格式是16进制
MEMORY_INITIALIZATION_VECTOR=
0a,
0b,
0c; //每个数据后面用逗号或者空格或者换行符隔开,最后一个数据后面加分号
Step3:用Core Generator完成ROM的例化后会生成一个.mif文件,这是Modelsim进行ROM仿真时需要的初始化文件,将.mif文件拷贝到Modelsim工程下。
Step4:进行Modelsim仿真
49.关于Quartus和ISE中ROM的初始化和仿真的一些小结的更多相关文章
- [转载](转)ISE中ROM初始化文件(.coe)的建立
原文地址:(转)ISE中ROM初始化文件(.coe)的建立作者:老徐 UltraEdit 对于ROM模块,主要是生成相应的.coe文件. 1.在Matlab中生成正余弦波形的浮点值,并量化为16bit ...
- 在Xilinx ISE中生成ROM时需要注意的事
在Xilinx ISE中生成ROM时,需要指定.coe文件.需要做到两件事.其一,要使用memory_initialization_radix= ; memory_initializatoin_vec ...
- [转载]ISE中COE与MIF文件的联系与区别
原文地址:ISE中COE与MIF文件的联系与区别作者:铁掌北京漂 在ISE中,当用Blcok Memory Generator 生成某个ROM模块时,经常要对ROM中的内容作初始化.这时,就需要我们另 ...
- 在Powershell ISE中添加sharepoint的智能提示,Enable SharePoint PowerShell Commandlets in the PowerShell ISE
Powershell ISE在默认状态下有一个不好的地方就是不会显示关于SharePoint的一些智能提示,例如你写一个"get-"后面提示的选项里没有sp开头的一些对象.于是找了 ...
- EDK中如何使用ISE中生成的IP
EDK中如何使用ISE中生成的IP: 网上上有说这个的文章,但是很复杂,也就是添加bdd文件,其实这些都不需要自己操作的,我们可以在EDK中import 中添加ngc文件,ngc文件就是core ge ...
- ISE 中使用system generate
本文讲解简单的ISE中使用system generate,system generate基本使用规则在此不详细说明可以见博客http://blog.csdn.net/xiabodan/article/ ...
- ISE中的Force Process Up-to-Date功能:ISE中如何在未综合实现的前提下打开ChipScope ?
ISE中如何在未综合实现的前提下双击Analyze Design Using ChipScope打开ChipScope ? 有时,你正在ISE中调试程序,在ChipScope中看到了现象,顺手修改了程 ...
- 编写高质量代码改善C#程序的157个建议——建议49:在Dispose模式中应提取一个受保护的虚方法
建议49:在Dispose模式中应提取一个受保护的虚方法 在标准的Dispose模式中,真正的IDisposable接口的Dispose方法并没有做实际的清理工作,它其实是调用了下面的这个带bool参 ...
- ISE中FPGA的实现流程
一.ISE实现的步骤 在综合之后,我们开始启动FPGA在ISE中的实现过程,整个过程包括以下几个步骤: 1.Translate ...
随机推荐
- IE 不兼容的几个js问题及解决方法
IE 不兼容的几个js问题及解决方法 1 Table的问题 在动态新增tr或者td时,createElecment() 一般用appendChild();都不生效,解决办法是用新增tbody, 如 ...
- Linux设备驱动开发环境的搭建(转)
经过两周的摸索,终于对Linux设备驱动开发有了个初步的认识,下面对Linux设备驱动开发环境的搭建做个小结,以方便自己以后查询,同时也能给同道的初学者一点帮助. 刚接触Linux设备驱动时,初学者往 ...
- 011OK6410开发板介绍
1.系统资源: (1)处理器:三星ARM11,S3C6410A,主频533MHz/667MHz (2)nor flash (3)nand flash:1G字节NAND Flash (4)RAM:128 ...
- Android IOS WebRTC 音视频开发总结(二一)-- 黑屏问题
本文主要介绍音视频通话中收到第一帧图像后视频一直卡住的问题,文章来自博客园RTC.Blacker,转载请说明出处. 因为苹果AppStore要求从2015年2月1日开始所有所有上架App必须支持arm ...
- Ubuntu下fcitx安装。(ibus不会用)
1 安装命令: sudo apt-get install fcitx-table-wbpy 2 然后将语言支持中的键盘输入方式系统选项,选为fcitx. 3 注销系统后即可使用.
- ThinkPHP实现联动菜单;
联动菜单,首先给你看看前端是怎么写的:
- ASP.net UrlRewrite的防盗链功能
ASP.net中如何实现基于UrlRewrite的防盗链. ASP.net中最快实现UrlRewrite的方法这篇文章中说了如何做UrlRewrite,那只是一个最简单的应用 其实利用UrlRewri ...
- jquery 消息提醒插件 toastmessage
最近做系统,想到使用后台要使用消息提醒,但是一直苦恼消息提醒的效果,于是找了一个toastmessage,还不错.记录下使用的方法. 第一步:引入需要的文件 <script type=" ...
- sliding windows (poj 2823) 题解
[问题描述] 给你一个长度为N的数组,一个长为K的滑动的窗体从最左移至最右端,你只能见到窗口的K个数,每次窗体向右移动一位,如下表: [样例输入] 8 3 1 3 -1 -3 5 3 6 7 [样例输 ...
- 第七节:使用实现了dispose模式的类型
知道类型如何实现dispose模式之后,接下来看一下开发人员怎样使用提供了dispose模式的类型.这里不再讨论前面的SafeHandle类,而是讨论更常用的FileStream类. 可以利用File ...