Подскажите, как создать на ПЛИС одноразрядный дельта-сигма АЦП. С помощью него мне нужно синусоидальный сигнал, создаваемый при помощи IP_Core, преобразовать в ШИМ последовательность и выдать через ногу ПЛИС. Так выглядит функция синуса которую мне нужно преобразовать . Собственно пример кода у меня есть на Verilog, но я не совсем его понимаю. К примеру согласно теории для работы дельта-сигма АЦП нужна отрицательная обратная связь, а в коде я ее не вижу.
Код: Выделить всё
`define MSBI 9 // Most significant Bit of DAC input
//This is a Delta-Sigma Digital to Analog Converter
module dac(DACout, DACin, Clk, Reset);
output DACout; // This is the average output that feeds low pass filter
reg DACout; // for optimum performance, ensure that this ff is in IOB
input [`MSBI:0] DACin; // DAC input (excess 2**MSBI)
input Clk;
input Reset;
reg [`MSBI+2:0] DeltaAdder;
reg [`MSBI+2:0] SigmaAdder;
reg [`MSBI+2:0] SigmaLatch;
reg [`MSBI+2:0] DeltaB;
always @(SigmaLatch)
DeltaB = {SigmaLatch[`MSBI+2], SigmaLatch[`MSBI+2]} << (`MSBI+1);
always @(DACin or DeltaB)
DeltaAdder = DACin + DeltaB;
always @(DeltaAdder or SigmaLatch)
SigmaAdder = DeltaAdder + SigmaLatch;
always @(posedge Clk or posedge Reset)
begin
if(Reset = 0)
begin
SigmaLatch <= #1 SigmaAdder;
DACout <= #1 SigmaLatch[`MSBI+2];
end
end
endmodule
