这里通过两种方式来实现FPGA查表生成正弦波 先看图 这是FPGA通过查ROM表生成正弦波的原理
下面开始介绍具体实现方法: 这里我使用的开发板是MAX10 10M50DAFC7G,不同的开发板接口可能不同,注意查找对应资料,正确连接端口。
一:通过.v文件调用,根据地址直接查表生成所需的正弦波
通过此种方式获取.v文件可以使用软件编程的方式,常见的有c、MATLAB等等,这里通过MATLAB代码来实现.v文件数据的生成。
%generater sin table no negtive number
len = 512;
ow = 8;
iw = round(log2(len));
x = round((sin(0:2*pi/len:(2*pi-2*pi/len))+1)*(2^(ow-1)-1));
fid = fopen('sin_table_test.v','w');
fprintf(fid,'module sin_table(\n');
fprintf(fid,' input [%d:0]address,\n',iw-1);
fprintf(fid,' output reg[%d:0]data\n',ow-1);
fprintf(fid,' );\n');
fprintf(fid,'always @(*)\n');
fprintf(fid,'begin\n');
fprintf(fid,' case(address)\n');
for k=1:len
if(x(k) |