正弦波发生器的verilog实现(一)
使用工具:
Matlab、Modelsim、ISE(也可以使用vivado,这里以ISE为例)
离散正弦波的产生
- 将连续的正弦波离散化,通过matlab实现。在这里,产生256个采样点。
clc;
clear all;
s_p = 0:255; %正弦波一个周期的采样点
N = 2^8;
sin_data = sin(2*pi*s_p/N);
%定点化
fix_p_sin_data = fix(sin_data*127);
for i=1:N
if fix_p_sin_data(i) < 0
fix_p_sin_data(i) = N + fix_p_sin_data(i);
else
fix_p_sin_data(i) = fix_p_sin_data(i);
end
end
fid = fopen('/home/sp_ram_256X8.coe','wt');
fprintf(fid, "%8.0f\n", fix_p_sin_data);
fclose(fid);
- 在matlab中
plot
结果如下图: