Jump to content

    

ЦАП в ПЛИС

По поводу построения сигма-дельта ЦАП у Xilinx есть апликуха с кодом на Верилоге xapp154 Synthesizable Delta-Sigma DAC, проверял работает (кстати в xapp155 дается сигма-дельта АЦП).

Share this post


Link to post
Share on other sites
Залил в upload/BOOKS/

Спасибо, добрый человек!

Когда разбирался с сигма-дельта модуляторами, половина всех статей ссылается на этот "Андырстендинг", который я так и не смог найти :(

 

Есть ещё хороший материал для ознакомления:

www.cscamm.umd.edu/programs/ocq05/adams/adams_ocq05.pdf

рассматривается добавление гистерезиса в квантователь, и профит, который от этого получаем.

Share this post


Link to post
Share on other sites
По поводу построения сигма-дельта ЦАП у Xilinx есть апликуха с кодом на Верилоге xapp154 Synthesizable Delta-Sigma DAC, проверял работает (кстати в xapp155 дается сигма-дельта АЦП).

 

Спасибо. Нашел вот описание на него. Как бы обозвать сам код на Verilog, ШИМ конвертор? Тут нашел интересную информацию по данному поводу. Цап-ом называется конструкция код+фильтр.

Share this post


Link to post
Share on other sites

Попалась на глаза эта тема и заинтересовала.

Возник вот такой вопросик. В целях удешевления борды (не ставить внешние DACи), возможно ли на втором сыклоне сделать 8-битный DAC с выходной частотой 40MHz?

Share this post


Link to post
Share on other sites
возможно ли на втором сыклоне сделать 8-битный DAC с выходной частотой 40MHz?

 

С Altera не работал, но на Xilinx можно, используя IP-Core осцилятор, сгенерировать 40 МГЦ, а дальше с помощью xapp154 Synthesizable Delta-Sigma DAC.

Share this post


Link to post
Share on other sites

При использовании ядра NCO ЦАП все равно потребуется. Иначе как цифровой код в аналог переводить.

 

Сделать полосовой сигма-дельта ЦАП можно - надо взять прототип сигма-дельта модулятора нижних частот, заменить все элементы z^-1 на -z^-2 (то есть вместо одного элемента задержки сделать задержку на два такта и отрицание) и запустить его на частоте в 4 раза выше требуемой несущей (это самый простой способ, можно также сделать модулятор с произвольной, и даже, перестраиваемой на лету центральной частоой, но тогда архитектура усложнится). Будет ли такое решение дешевле и эффективнее, чем подключение внешнего ЦАП - большой вопрос, поскольку понадобится внешний полосовой фильтр для устранения внеполосного шума модулятора.

Share this post


Link to post
Share on other sites
При использовании ядра NCO ЦАП все равно потребуется. Иначе как цифровой код в аналог переводить.

 

А чем плох, модулятор для ЦАП на ПЛИС:

 

    ‘timescale 100 ps / 10 ps
    ‘define MSBI 7 // 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; // Output of Delta adder
reg [‘MSBI+2:0] SigmaAdder; // Output of Sigma adder
reg [‘MSBI+2:0] SigmaLatch; // Latches output of Sigma adder
reg [‘MSBI+2:0] DeltaB; // B input of Delta adder

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)
          begin

          SigmaLatch <= #1 1’bl << (‘MSBI+1);
          DACout <= #1 1‘b0;
         
         end
else

begin
     
       SigmaLatch <== #1 SigmaAdder;
       DACout <= #1 SigmaLatch[‘MSBI+2];
end
end
endmodule

 

 

Получить по DACout ШИМ последовательность и ее уже не фильтр.

 

Share this post


Link to post
Share on other sites

Если просто взять сгенерировать сигнал с частотой 40 МГц и подать его на модулятор из XAPP154, ничего хорошего не выйдет, потому что там, если я правильно понял при беглом взгляде, модулятор типа lowpass (нижних частот). Частота среза передаточной характеристики по шумам у lowpass модулятора, даже при максимальной тактовой частоте FPGA, будет ниже 40 МГц и шум на этой частоте уже будет большим - разрешения 8 бит не получится. Чтобы получить полосу 40 МГц при помощи Lowpass сигма-дельта модулятора нужна тактовая частота около 1 ГГц, или больше, и сам модулятор должен быть уже третьего-четвертого порядка.

 

 

 

А чем плох, модулятор для ЦАП на ПЛИС:

 

 

Получить по DACout ШИМ последовательность и ее уже не фильтр.

 

То ли я пост не до конца прочитал, то ли Вы быстро его отредактировали, но я видел в нем только упоминание ядра NCO, а про XAPP154 ничего не заметил. Если что, sorry, к вечеру мозг отказывается нормально соображать.

 

Share this post


Link to post
Share on other sites
Попалась на глаза эта тема и заинтересовала.

Возник вот такой вопросик. В целях удешевления борды (не ставить внешние DACи), возможно ли на втором сыклоне сделать 8-битный DAC с выходной частотой 40MHz?

 

А что такое выходная частота ЦАП? Частота смены данных?

 

ИМХО: Если использовать сигма-дельта первого порядка и однобитный ЦАП, то отношение С/Ш с передискретизацией улучшается примерно 9 дБ/октава. 8 бит реальный ЦАП будет иметь около 40 дБ С/Ш. То есть Вам нужно будет сделать передискретизацию минимум на 4 октавы, то есть выходная частота однобитного ЦАП будет 40МГц*16раз. Можно сделать сигма-дельта второго порядка, тогда отношение С/Ш будет улучшаться 15дБ/октава и частота дизайна будет выше 40МГц*4раз.

 

Можно попробовать 2-битный вывод с цепочкой R-2R, в этом случае скорострельности должно хватить. И еще вклад джиттера было бы неплохо подсчитать.

Share this post


Link to post
Share on other sites

Спасибо Всем за ответы и ссылки, особенно Aleksandr_KPI! Покурил XAPP154 всё красиво, но увы, для моего случая такой вариант не прокатит по скорости. :crying:

Share this post


Link to post
Share on other sites
Спасибо Всем за ответы и ссылки, особенно Aleksandr_KPI! Покурил XAPP154 всё красиво, но увы, для моего случая такой вариант не прокатит по скорости. :crying:

Можно сделать модулятор второго порядка, однобитный поток вытащить через LVDS + сериализатор. Судя по спецификации циклона 2, такое возможно.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this