一、MATLAB生成sin,cos的数据文件
构造256点的正余弦表,分别得到 cos和sin的查找表
matlab代码: 求sin
fid = fopen('sin.txt','a' );
str1 = 'MEMORY_INITIALIZATION_RADIX=10;';
str2 = 'MEMORY_INITIALIZATION_VECTOR=';
fprintf(fid,'\t%s\n \t%s\n', str1,str2);
for k=1:256;
y(k) =sin(2*pi*k/256);
y(k) = int16(y(k)*2^15); %这一步主要是考虑是表中数据的格式Q(s,16,15).
fprintf(fid,'\t%d%c\n',y(k),',');
end
fclose(fid);
matlab代码:求cos
fid = fopen('cos.txt','a' );
str1 = 'MEMORY_INITIALIZATION_RADIX=10;';
str2 = 'MEMORY_INITIALIZATION_VECTOR=';
fprintf(fid,'\t%s\n \t%s\n', str1,str2);
for k=1:256;
y(k) =cos(2*pi*k/256);
y(k) = int16(y(k)*2^15);
fprintf(fid,'\t%d%c\n',y(k),',');
end
fclose(fid);
二、Vivado实现
源文件:
module rom(
input clk,
input rst,