1.COE文件介绍
在调用存储器类IP核进行配置时往往需要对存储器进行初始化,以加载指定数据内容到存储器中。VIVADO中对ROM类存储器IP核进行初始化的文件格式是.coe(Coefficient)文件(ALTERA Quartus II中存储器初始化文件是.mif),其基本格式为:
COE文件是一种ASCII文本文件,其中,“MEMORY_INITIALIZATION_RADIX ”是关键词,定义存储器初始化值的基数,等号后面“Value”表示文件存储数据的进制,可以设置为2(二进制)、10(十进制)或16(十六进制),以分号结束;“MEMORY_INITIALIZATION_VECTOR”是关键词,定义块存储器与分布式存储器的数据(数据向量),等号后面的“Data_Value1…Data_Valuen”的数字就是数据向量,每个数据占一行,用逗号隔开,最后一个数字以分号结束。.coe文件的前两行的开头格式是固定的,不能改变。
2.COE文件的创建方法
COE文件的创建方法可以在写字板、记事本等文本编辑器中按照上述格式编辑,保存后缀为“.coe”即可。例如本任务中需要构建正弦波的数据存储模块(此处以64点数据采样),则需要将正弦波采样数据值编辑为.coe文件,其方法是打开写字板,输入【代码3-1】内容,保存为“sin64.coe”。其中,数据格式采用十进制,一共64个数据,最大数据为255(8位二进制)。
【代码3-1】sin64.coe正弦波采样值(64点)COE文件
上述文件中的正弦波采样数据值可以通过编写C语言代码或在MATLAB软件中直接生成,例如【代码3-2】所示。
【代码3-2】MATLAB生成正弦波采样数据代码
对MATLAB生成的.txt文件用文本编辑软件打开,进行如下相关处理,就能创建COE文件。(www.xing528.com)
(1)在文件最开始添加这两行关键字内容:
memory_initialization_radix=10;
memory_initialization_vector=
(2)把每一行的空格用文本替换功能换成“,”,并在最后一行添加一个“;”。
(3)将.txt文件后缀修改为.coe,保存文件并退出。
对于波形数据还可以用其他专用工具软件生成,例如Guagle_wave,它可以生成正弦波、三角波、锯齿波和任意波形采样数据。对于今后可能会用到的图像数据,也可以使用相关软件工具生成,然后再将其转化为符合COE格式的文件。下面是使用MATLAB生成正弦波、三角波、方波的代码,直接使用即可。
【代码3-3】MATLAB生成正弦波、三角波、方波的代码
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。