xilinx ram coe初始化读取

xilinx ram coe初始化读取,第1张

coe文件是你定制RAM的时候初始化文件,FPGA上电就加载在RAM 里面了,如果想要读数据,你只需要给地址和读信号就可以了。

不过,RAM是随机存取存储器,可以修改存储中的数据,所以它可以读,也可以写。

那个idata是写有效的时候,送入ram的信号。读 *** 作时不用考虑。

如果你不想修改储存数据(只读不写),可以使用ROM的IP核。

在用core gen 产生rom的时候,有个步骤,导入用户的coe文件(所有rom的参数都可以在这个文件中设置,如果不设置,rom生成之后,使用默认参数):

-----------------------

一个标准的coe文件的格式如下:

MEMORY_INITIALIZATION_RADIX=2//数据格式,此为2进制,还可以为8,10,16进制

MEMORY_INITIALIZATION_VECTOR=

01110100,

00100000,

11110101,

10000000,

01111000,

00100010,

00000001,

00010100,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

01110100,

00000101,

11110101,

10000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000,

00000000

-----------------------

再举一个例子:

Xilinx FIR滤波器系数文件格式

radix = 10 //系数的进制,此为10进制,也可以为2, 10,16进制

coefdata =

coef1,

coef2,

coef3,

coefN

文件扩展名为.coe。FIR的datasheet里没有写进制位8的情况。

在ise下,ROM初始化是靠加载coe文件完成的。其格式如下:

MEMORY_INITIALIZATION_RADIX=2//表示ROM内容的数据格式是2进制

MEMORY_INITIALIZATION_VECTOR=

00000000

00000001

00000011

但是当数据量很大的时候,直接写很不方便。

下面我将介绍,借助matlab工具来快速完成包含大量数据的coe文件的编写。

1、在matlab中将数据录入,如果数据是在txt文件中,可以读文件录入(网上很容易找到相关命令)。

2、将数据存成n行1列的数组。

3、通常录入的数据都是10进制的。可以用命令A=dec2bin(I)转为2进制字符,再用M=str2num(A)转换为数字显示。

如15,经过两次转化即为11111111;

4、将matlab数据窗口中的A双击出来,会显示n行1列的2进制数(类似excel),直接全选复制数据到txt文件中;

在txt文件开头加入:

MEMORY_INITIALIZATION_RADIX=2//表示ROM内容的数据格式是2进制

MEMORY_INITIALIZATION_VECTOR=

在txt文件的最后一个数字后加入分号“;”。

5、将txt文件后缀直接改为coe文件类型。这时我们需要的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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11489774.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存