在調用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:\Xilinx\project\data\cos_data1.txt','wt');
fprintf(fid,'%.0f \n',y1);
fclose(fid);
fid = fopen('F:\Xilinx\project\data\sin_data1.txt','wt');
fprintf(fid,'%.0f \n',y2);
fclose(fid);
注意 :fprintf(fid,'%.0f \n',y1);
中%.0f與\n之間是有個空格的。
生成的數據如上圖所示,每個數據後面緊跟一個”空格“,將其替換爲”,“(半角逗號),將最後一個數據的”,“替換成”;“(半角分號)。然後在數據最上面增加兩句:
memory_initialization_radix=10;
memory_initialization_vector=
”10“代表十進制數,然後將文本後綴”.txt“,改爲”.coe“,即爲ROM初始化文件格式。然後在IP core生成器重添加該文件即可,注意如果文件格式有問題,在添加後會出現紅色的提示文字,如果沒有則代表添加的文件沒問題。