生成ROM时需要提供coe文件,如下图所示。
此coe文件实质上是Memory的初始化文件,并且Xilinx对它具有特定的格式要求。
Coe文件格式下图显示了coe文件格式要求,其中前两行是固定的。
第一行定义了Radix,可以为2、10或16,这意味着第二行中定义的数据向量的内容可以为二进制,十进制或十六进制。
这里需要说明的是,定义的数据向量的每个数据都可以是空格或逗号(但此时最后一个数据应以分号结尾)或回车和换行符。
作为主流算法开发和验证平台之一,Coe文件生成Matlab通常成为大量数据的重要来源。
因此,在Matlab下生成coe文件是一种非常常见的操作。
这里使用了Matlab提供的一些文件操作功能,例如fopen,fprintf和fclose。
在这里,我们定义函数gen_coe,该函数接收两个参数fn和数据。
其中fn是生成的coe文件的名称,而data是行向量或列向量。
必须为十进制整数。
Python提供了扩展的库Numpy,可以轻松地对矩阵执行操作,并使用Python快速生成coe文件。
这里提供了两个版本。
这两个函数具有相同的参数fn和data,与上述Matlab函数具有相同的含义。
在gen_coe_v1中,数据写入操作由write()完成。
在gen_coe_v2中,数据写入操作通过np.savetxt完成。
在这种情况下,np.savetxt接收3个参数,第一个参数是文件ID,第二个参数是矩阵的行索引,第三个参数是写入格式。
原始标题:如何生成ROM的coe文件文章来源:[微信公众号:Lauren's FPGA]欢迎您的关注!请指出转载文章的来源。