在调用ROM的IP Core时,需要对其进行初始化,利用MATLAB生成其初始化数据文件。
工具:ISE 14.7、MATLAB、notepad++
废话不多说,直接上MATLAB代码,生成了一个1024个正余弦文本文件,有些细节不用管,是我后面涉及到FFT用到的东西。实际上只需要后面打开文件写入那几句代码即可。
clear all
clc
f_signal = 50*10^3; %信号频率Hz
f_sample = 10^6; %采样频率Hz
T = 1/f_sample;
data_length = 1024;
n = 0:data_length-1;
x = n/f_sample;
y1 = 1+cos(2*pi*f_signal*x);
y2 = 1+sin(2*pi*f_signal*x);
y1 = y1 * 32678;
y2 = y2 * 32678;
fid = fopen('F:Xilinxprojectdatacos_data1.txt','wt');
fprintf(fid,'%.0f
',y1);
fclose(fid);
fid = fopen('F:Xilinxprojectdatasin_data1.txt','wt');
fprintf(fid,'%.0f
',y2);
fclose(fid);
注意 :fprintf(fid,'%.0f
',y1);
中%.0f与
之间是有个空格的。
生成的数据如上图所示,每个数据后面紧跟一个”空格“,将其替换为”,“(半角逗号),将最后一个数据的”,“替换成”;“(半角分号)。然后在数据最上面增加两句:
memory_initialization_radix=10;
memory_initialization_vector=
”10“代表十进制数,然后将文本后缀”.txt“,改为”.coe“,即为ROM初始化文件格式。然后在IP core生成器重添加该文件即可,注意如果文件格式有问题,在添加后会出现红色的提示文字,如果没有则代表添加的文件没问题。