[转载](转)ISE中ROM初始化文件(.coe)的建立
UltraEdit
对于ROM模块,主要是生成相应的.coe文件。
1.在Matlab中生成正余弦波形的浮点值,并量化为16bit定点波形数值:
% 生成 ROM 的 .coe文件
clc
clear all
close all
x = linspace(0,
pi/2
,1024);
% 在区间[0,2pi]之间等间隔地取1024个点
y_cos =
cos(x);
y_sin =
sin(x);
y_cos = y_cos *
2^16;
y_sin = y_sin *
2^16;
fid =
fopen('D:/cos_coe.txt','wt'); fprintf(fid,
' .0f n ' , y_cos);
fclose(fid);
fid =
fopen('D:/sin_coe.txt','wt');
fprintf(fid, ' .0f
n ' ,
y_sin);
fclose(fid);
2.生成.coe文件。在D盘根目录下,将cos_coe.txt和sin_coe.txt的后缀改成.coe。打开文件,把每一行之间的空格用文本替换功能换成“,”(这可以通过强大的UltraEdit来实现!),并在最后一行添加一个分号“;”。最后,在文件的最开始添加下面两行:
memory_initialization_radix=10;
memory_initialization_vector=
然后,保存文件退出。
3.将coe文件加载到BLOCKROM所生成的ROM中。新建一个BLOCKROM的IP
Core, 其位置为“Memories & Storage
Elements---->RAMs &
ROMs----->Block Memory Generator
v2.4”。在第1页中选择“single port
rom”,在第2页中选择位宽为16,深度为1024,在第3页下载coe文件,如下图,然后双击Finish,完成IP
Core的生成。如果coe文件生成得不对,Browse前面的框中是显示红色的文件名,coe文件错误类型主要有数据基数不对和数据的长度不对两种。
另一种方法:
Xilinx的ROM的初始化是一件很麻烦的事情,要导入Coe文件。
Alteral是mif和hex文件,有专门的软件可以生成。
coe文件的格式如下:
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
512,515,518,522,525,528,531,535,538,54
。。。。。。。。12,23;
注意:前面的2行不要动,RADIX后面的数字表示的是进制,这里取10进制。结尾用的是分号
在matlab中关键的步骤如下,我们以一个周期1000个采样,位数为10位的正弦表格为例子。
n=0:999
;y=round(sin(2*pi*0.001*n)*512)+512;//后面加上512是为了防止出现负数
y=mod(y,1024);//因为是10位,所以,没有1024,对1024取余数,把1024转化成0
dlmwrite('b.txt',y);//dlmwrite函数是使得产生的数据之间是用逗号隔开的。
得到b.txt文件,用记事本打开,在最上面加上
MEMORY_INITIALIZATION_RADIX=10;
MEMORY_INITIALIZATION_VECTOR=
同时数据结尾用分号结尾
最后另存为,选择后缀为.coe,将文件导入到ROM以后,单击show,或者是显示初始数据的按钮(各个ISE不太一样),说明数据导入正确。
MODELSIM下rom仿真。
利用Xilinx公司的芯片做FPGA开发的时候用到了ROM,肯定要对ROM做仿真,经过了一天的努力,总算可以做仿真了,现在把过程写出来,供大家参考一下。
1.首先需要编译XINLINX的库文件,常用有三个库xinlixcorelib,unisims,simprims,编译过程在上一个帖子中。
2.Modelsim不支持mif文件只支持HEX文件,这里需要对文件进行转换,下载DLL文件convert_hex2ver.dll下载地址为:
http://www.eccsdk.com/bbs/read.php?tid=1562&fpage=2
3.把Modelsim安装目录下的配置文件modelsim.ini文件中进行修改,把
List of dynamically loaded objects for Verilog PLI
applications
; Veriuser = veriuser.sl
修改为
List of dynamically loaded objects for Verilog PLI
applications
Veriuser = C:/Modeltech_6.1e/win32/convert_hex2ver.dll
其中 C:/Modeltech_6.1e/win32/convert_hex2ver.dll为dll文件的保存位置
4.把rom.v和rom.mif文件拷贝到同一个目录下,在仿真时首先需要加载XIlinx的仿真库,然后按照一般仿真过程就可以了
[转载](转)ISE中ROM初始化文件(.coe)的建立的更多相关文章
- 49.关于Quartus和ISE中ROM的初始化和仿真的一些小结
最近在玩Altera的FPGA,当我用Quartus II自带的IP核生成ROM时,出现了各种问题,于是在网上各种查资料,终于解决了我的问题.这里做一下小结,方便自己日后查阅. Quartus II ...
- 生成用于ROM初始化的coe文件---使用matlab
生成用于ROM初始化的coe文件---使用matlab t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; r=ceil(y*(2^8-1)); fid = fopen('si ...
- [转载]解析WINDOWS中的DLL文件---经典DLL解读
[转载]解析WINDOWS中的DLL文件---经典DLL解读 在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库.现在就走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! ...
- Xilinx FPGA使用——ROM初始化文件
在调用ROM的IP Core时,需要对其进行初始化,利用MATLAB生成其初始化数据文件. 工具:ISE 14.7.MATLAB.notepad++ 废话不多说,直接上MATLAB代码,生成了一个10 ...
- 使用matlab生成用于ROM初始化的coe文件(转)
reference:https://www.cnblogs.com/chensimin1990/p/9759368.html t=0:2*pi/2^12:2*pi; y=0.5*sin(t)+0.5; ...
- 【转载】Xcode6中添加pch文件
//原文地址:http://www.cnblogs.com/YouXianMing/p/3989155.html 1. 新建工程: 2. 创建pch文件:cmd+n->other->PCH ...
- 在ORACLE中移动数据库文件
转载: 在ORACLE中移动数据库文件 --ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成. --由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等, --我們可能会考虑移动数 ...
- [转载]ISE中COE与MIF文件的联系与区别
原文地址:ISE中COE与MIF文件的联系与区别作者:铁掌北京漂 在ISE中,当用Blcok Memory Generator 生成某个ROM模块时,经常要对ROM中的内容作初始化.这时,就需要我们另 ...
- 在Xilinx ISE中生成ROM时需要注意的事
在Xilinx ISE中生成ROM时,需要指定.coe文件.需要做到两件事.其一,要使用memory_initialization_radix= ; memory_initializatoin_vec ...
随机推荐
- SpringMVC——-Controller返回格式化数据如JSON、XML的配置方式和机制
1.本文内容 我们在Web项目开发过程中,一般来说访问一个处理器,然后会返回一个视图,或者跳转到另外的处理器.但是随着项目越来越复杂,需求越来越复杂,对于处理器返回数据的类型要求也越来越多.比如要求能 ...
- 使用conda安装命令时一直出现问题,因为从2019年4月添加的国内镜像都不能用了
安装过程中出现以下问题:(历尽千辛万苦,终于才查到原来是清华源,腾讯源都不能用了)The remote server could not find the noarch directory for t ...
- JavaEE-实验二 Java集合框架实验
该博客仅专为我的小伙伴提供参考而附加,没空加上代码具体解析,望各位谅解 1. 使用类String类的分割split 将字符串 “Solutions to selected exercises ca ...
- Centos7 yum 源安装nginx
一.建立nginx源 vim /etc/yum.repos.d/nginx.repo [nginx]name=nginx repobaseurl=http://nginx.org/packages/c ...
- opencv2中访问像素的简单方法-自定义一个宏CV_MAT_ELEM2
利用Mat的step[0],step[1]访问像素的行列,自定义一个宏CV_MAT_ELEM2(src,dtype,y,x),src是待访问的Mat,dtype是src的数据类型(int,float, ...
- 在webpack搭建的vue项目中如何管理好后台接口地址
在最近做的vue项目中,使用了webpack打包工具,以前在做项目中测试环境和生产环境的接口地址都是一样的,由于现在接口地址不一样,需要在项目打包的时候手动切换不同的地址,有时候忘记切换就要重新打包, ...
- MyView 的无奈问题
这不是为难我吗这种问题 据说这是内置库!!!!!可是: 找不到呀!!!!!!!!!! 后期补充: 是因为我的一个目录名字起了冲突
- Java中集合关键字的区别
1. ArrayList.Vector和Stack有什么区别? 1.ArrayList的方法和实现基本上和Vector一样,底层都是数组的实现(简:API基本一样) 2.Stack继承了Vec ...
- Synchronized及其实现原理(一)
一.Synchronized的基本使用 Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法.Synchronized的作用主要有三个:(1)确保线程互斥的访问同步 ...
- 记录一些Xampp的使用过程和遇到的问题
1.Xmapp需要安装在C盘的Xampp目录,否则很容易出错,一定要在C:/xampp,这样Apache和MySQL才能正常启动,和错误提示的端口冲突或者路径错误无关. 2.Xmapp尽量选择低版本的 ...