如何生成ROM的coe文件

在生成ROM时需要提供coe文件,如下图所示。这个coe文件本质上就是Memory的初始化文件,Xilinx对其有具体的格式要求。

coe文件格式

coe文件格式要求如下图所示,其中前两行是固定的。其中第一行定义了Radix,可以是2、10或16,意味着第2行定义的数据向量内容可以是二进制、十进制或十六进制。这里需要说明的是定义的数据向量各个数据之间可以是空格,也可以是逗号(但此时最后一个数据要以分号结尾)或者回车换行符。

生成coe文件

Matlab作为主流的算法开发与验证平台之一往往成为很多数据的重要来源,因此,在Matlab下生成coe文件是非常普遍的操作。这里要用到Matlab提供的一些文件操作函数,如fopen、fprintf和fclose等。在此,我们定义函数gen_coe,它接收两个参数fn和data。其中fn为生成的coe文件名,data为行或列向量。要求为十进制整数。

Python提供了扩展库Numpy,可以方便地实现对矩阵的操作,利用Python也可以快捷地生成coe文件。这里提供两个版本。两个函数都有相同的参数fn和data,含义与上文提到的Matlab函数保持一致。在gen_coe_v1中,通过write()完成了写数据操作。在gen_coe_v2中,则是通过np.savetxt完成了写数据操作。在这个案例中,np.savetxt接收3个参数,第一个参数为文件ID,第二个参数为矩阵的行索引,第三个参数为写入格式。

2020文章汇总
文 | Teacher Gao 图 | Teacher Gao
Copyright @ TeacherGaoFPGAHub
(0)

相关推荐