ISE中ROM初始化文件(.coe)的建立

转载 2016年08月26日 17:05:13

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的仿真库,然后按照一般仿真过程就可以了

嵌入式Linux文件与串口编程

-
  • 1970年01月01日 08:00

xilinx 的rom ip核使用方法

  • 2011年08月29日 11:32
  • 1021KB
  • 下载

内存初始化文件 ISE/Quartus

1.Quartus Mif File Demo: %   multiple-line comment     multiple-line comment   %                 ...
  • yunhuang2010
  • yunhuang2010
  • 2012-04-09 17:36:20
  • 805

生成和导入Xilinx ROM/RAM的初始化文件.COE(ZT)

这里比较关键,要导入ROM的值。 在LOAD INIT FILE 项上打勾,点击LOAD FILE……出现下图,要你选择一个文件。   这个文件就是你要放在ROM中的数据,文件的后缀名是.COE...
  • qq_30866297
  • qq_30866297
  • 2016-08-26 17:01:56
  • 5526

ISE中显示IP核的图形化界面

在学习别人的Verilog代码时,常常会遇到人家设置好的IP核,但是自己要用.v文件看,非常麻烦。百度了很多也没有满意的结果,最后终于找到了方法,现贴出来,希望可以解决很多跟我有同样困惑的同学比如例化...
  • u013717982
  • u013717982
  • 2017-12-19 20:44:01
  • 96

ISE添加IP核并仿真

仿真步骤: 1. 打开ISE软件,新建工程: File -> New project,然后填入工程名及工程路径...
  • u010783148
  • u010783148
  • 2017-09-15 11:39:21
  • 1421

ISE调用ROM的IP

 窗体顶端   窗体底端 RAM,而且该初始值不能改变)。有些低端的FPGA可能没有BLOCK RAM。本文主要介绍ROM的使用方法,RAM的使用方法类同。打开XILI...
  • weiweiliulu
  • weiweiliulu
  • 2013-12-19 18:04:33
  • 3030

Xilinx ISE生成rom/ram IP核

对于Xilinx ISE软件,rom中的数据初始化文件格式是.coe,如何得到.coe文件呢? 交叉编译器生成的elf文件,可以通过objcopy工具转成bin文件,然后用工具bin2coe将其再转成...
  • yanxaut
  • yanxaut
  • 2015-08-18 18:55:14
  • 6683

Modelsim仿真包含ROM文件的方法-convert_hex2ver.dll

在百度上找到解决办法! rom初始化文件可以用 .mif 和 .hex。.mif文件是用来给Quautus综合网表用的,而.hex可以被用来作为modelsim仿真的数据输入。换句话说modelis...
  • rzld66666
  • rzld66666
  • 2017-05-24 10:26:13
  • 826

modelsim仿真带ROM的程序需要convert_hex2ver.dll

  • 2013年06月21日 23:22
  • 20KB
  • 下载
收藏助手
不良信息举报
您举报文章:ISE中ROM初始化文件(.coe)的建立
举报原因:
原因补充:

(最多只允许输入30个字)