Есть такой проектик скачанный с 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 Гц?
|