coe文件:
起始1行:
memory_initialization_radix=10;
该行设置文件中的数据格式:2–2进制、10–10进制、16–16进制
第二行:数据向量,后面跟数据,除最后一个数据以“;”结尾,其他的以“,”隔开。
memory_initialization_vector=
0,
1,
2,
3,
4,
9;
ROM初始化
rom在调用IP后在ip界面设置初始化文件路径
在初始化后,如果coe文件更改了,一定要regenerate ip 否则仿真的时候初始化文件有可能一直是之前的;
另外
matlab的for循环是从1开始的,如果256个数则是1:256而不是0:255
如下是matlab生成coe文件的代码,C语言也是一样的,只不过matlab数据处理方便些。
fid = fopen('F:\WORK\dds\matlab\sin_dat.coe','wt');
fprintf(fid,"memory_initialization_radix=10;\n");
fprintf(fid,"memory_initialization_vector=\n");
for index = 1:512
if index == 512
fprintf(fid,"%8.0f;\n",fix_p_sin_data(index));
else
fprintf(fid,"%8.0f,\n",fix_p_sin_data(index));
end
end
fclose(fid);