Есть такой проектик скачанный с opencores генратор синуса
`timescale 1ns / 1ps
module sin(
input reset, // async reset
input clock, // input clock
output [15:0] sin, // sin output: signed, 16-bit
output [15:0] cos, // cos output: signed, 16-bit
output sin_sqr, // sign(sin)
output cos_sqr // sign(cos)
);
parameter width = 16;
parameter InitCos = 32640;
reg [width-1:0] sin1, cos1;
always @(posedge clock, posedge reset) begin
if(reset) begin
sin1 <= 0;
cos1 <= InitCos;
end
else begin
sin1 <= sin;
cos1 <= cos;
end
end
//the computator
assign sin = sin1 + {{7{cos1[15]}}, cos1[15:7]};
assign cos = cos1 - {{7{sin[15]}}, sin[15:7]};
//sign
assign sin_sqr = !sin[15];
assign cos_sqr = !cos[15];
endmodule
Очень уж заманчивая реализация всего 40 ячеек на cyclone 3
Никто не знает что за алгоритм?
При частоте квантования 100 МГц частота синуса получается около 124 килогерц!
Как бы это дело пересчитать под нужную частоту например 400 Гц?