реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Spartan-6 и АЦП 210MSPS., Valid data window?
Voloh
сообщение Jan 19 2012, 14:41
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 11-12-06
Пользователь №: 23 370



Всем привет.
Необходимо использовать АЦП на 210МГц вместе со Spartan-6. Выбор пал на AD9613-210.
DS: http://www.analog.com/static/imported-file...eets/AD9613.pdf
Мне не понятны параметры времянок(

Data Propagation Delay (tPD) 4.8 ns
DCO Propagation Delay (tDCO) 5.5 ns
DCO to Data Skew (tSKEW) 0.3 ... 0.7 ... 1.1 ns

Чтобы АЦП подходило по времянкам, я должен видеть, что окно валидных данных на выходе АЦП больше, чем Tsetup + Thold на входе ПЛИС. Не забываем также и про всевозможные джиттеры.
А какое оно, это окно? Допустим, данные станут валидными за 1.1ns (либо за 0.3ns) до переключения сопровождающего их клока. Но здесь не указано через сколько ns после фронта данные перестанут быть валидны и начнут переключаться на следующее слово.

Смотрел Техасовские АЦП. У них иная система параметров - указываются выходные Tsetup и Thold, которые обеспечивает микросхема относительно фронта своего клока.
А тут вот непонятно..

И второй вопрос:
Какой запас по сетапу и холду на входе ПЛИС необходимо иметь, чтобы был гарантированный прием от АЦП. +/- 10% от периода достаточно?
Go to the top of the page
 
+Quote Post
Hoodwin
сообщение Jan 20 2012, 06:08
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 881
Регистрация: 21-03-10
Из: _// \\_
Пользователь №: 56 107



Действительно, немного загадочное описание. Я думаю, что tSKEW - по своему определению и является Tsetup? поскольку отсчитывается от момента установления данных до момента фиксации тактового перепада. При этом само это время много меньше периода тактирования: 700 пс (типовое значение) против 4800 пс. Само по себе окно данных в даташите не указали, но это, видимо, потому, что о нем можно говорить только после уточнения параметров принимающей стороны: емкостей, импедансов и т.п. Но даже если подходить пессимистически, посчитав окно данных равным трети периода, то 4800 / 3 ~= 1600 пс. Из чего вытекает, что Thold = 500...1300 пс. И этого вполне достаточно для ПЛИС.
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 20 2012, 19:38
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Voloh @ Jan 19 2012, 18:41) *
Всем привет.
Необходимо использовать АЦП на 210МГц вместе со Spartan-6. Выбор пал на AD9613-210.
DS: http://www.analog.com/static/imported-file...eets/AD9613.pdf
Мне не понятны параметры времянок...

АЦП всего на 210 МГц, а вы сетапы и холды считаете. Проблемы если и будут - то уж никак не во входных цепях(сердезах) - тут у спартана6 всё просто супер - почти как у виртекса (циклоны курят в сторонке).
Вот люди, например, гравицапу на 2.1ГГц к спартану приделали и радуются:
http://www.mvd-fpga.com/cores/en/up_converter_overview.html

А вот разгонится ли дальнейшая ваша система обработки на 210МГц в спартане - вот это вопрос - тут нужно и прикидочный проектик накатать и PlahAhead в руках покрутить и подумать.

P.S. конечно можно специально разработать печатную плату так, что разброс длин дорожек от АЦП к ПЛИС будет полметра - тогда возникнут проблемы и данные съедут на полпериода тактовой.

P.S2. Ну и как всегда у аналоговых девиц имеется волшебный SPI, который "Allows the user to vary the DCO delay".
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jan 20 2012, 21:02
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515



Цитата(Voloh @ Jan 19 2012, 18:41) *
Data Propagation Delay (tPD) 4.8 ns
DCO Propagation Delay (tDCO) 5.5 ns
DCO to Data Skew (tSKEW) 0.3 ... 0.7 ... 1.1 ns

Чтобы АЦП подходило по времянкам, я должен видеть, что окно валидных данных на выходе АЦП больше, чем Tsetup + Thold на входе ПЛИС. Не забываем также и про всевозможные джиттеры.

Тут всё понятно - данные типично задерживаются относительно входного клока АЦП на 4.8, а DCO на 5.5, то есть DCO отстаёт. tSKEW показывает диапазон отставания DCO от данных. В более привычных терминах можно сказать, что tSETUP_min(гарантированное время выставления данных до фронта DCO) составляет 0.3ns, а tHOLD_min(гарантированное время удержания данных после фронта DCO) составляет минимальную половину периода минус 1.1ns , на частоте 200МГц это 2.5ns-???-1.1ns=>1.4ns - ???. На сколько полупериод может получиться короче, чем 2.5ns из-за нестабильности клока - вопрос. Не забываем, что там два параллельных АЦП, поэтому канал 200МГц DDR. Уложиться в такое окно на Spartan 6 достаточно сложно, так как не получится задействовать автокалибровку задержки данных, поскольку не гарантируется регулярное переключение сигнала на всех линиях с АЦП между 0 и 1.

И недавно уже поднимался вопрос по констрейнам spartan-6 + ADC, поищите.
Go to the top of the page
 
+Quote Post
VladimirB
сообщение Jan 21 2012, 07:40
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 614
Регистрация: 12-06-09
Из: рядом с Москвой
Пользователь №: 50 219



Цитата(Timmy @ Jan 21 2012, 01:02) *
...Уложиться в такое окно на Spartan 6 достаточно сложно...

Откуда возьмётся нестабильность клока, если клок идёт с АЦП?
Не забываем про BUFIO2 в Спартане и про возможность варьировать DCO delay АЦП в пределах 0-3.3нс
Go to the top of the page
 
+Quote Post
BlackOps
сообщение Jan 26 2012, 08:09
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121



В спартан6 например ести примитива ИДДР2, это флип-флоп работающий в режиме ДДР. Ставите ПЛЛ, регенерируете клоки входные, подаете эти клоки на ИДДР2 (или аналогичную примитиву в виртексе), задаете равнение по первому или второму клоку, а дальше тот клок по которому задано равнение подключаете к памяти итд.

Прикрепляю картинку для наглядности.

clk_p и clk_n это клоки поступающие от АЦП, затем первая строка это данные поступающие на 0.5нс раньше, вторая строка если они поступают на 0.5нс позже, третья строка это промежуток времени который включает в себя верные данные вне зависимости от максимальной задержки.

ПЛЛ генерирует смещенные клоки C0 и C1, для захвата данных. C0 и C1 подаются на ИДДР2 как и сами данные (первое слово и второе).

красное поле это промежуток полученный из Даташит Репорт, вобщем он должен быть короче чем зеленый промежуток (валид дата как вы назвали), это означает что ФПГА осиливает АЦП данной скорости.

желтая линия показывает смещение относительно референс клока для того чтобы правильно задать констрейны. Констрейны чтобы правильно задать нужно сгруппировать клоки C0 и C1 и указать смещение их пиков относительно clk_p. А вот сами констрейны:

NET "adc1_clk_p" TNM_NET = "adc1_clk_p";
TIMESPEC TS_adc1_clk_p = PERIOD "adc1_clk_p" 5 ns HIGH 50 %;

NET "adc1_data*" TNM = "IN_DDR";

NET "C0" TNM_NET = "clk0_grp";
NET "C1" TNM_NET = "clk180_grp";
TIMEGRP "IN_DDR" OFFSET = IN -500 ps VALID 1500 ps BEFORE "adc1_clk_p" TIMEGRP "clk0_grp";
TIMEGRP "IN_DDR" OFFSET = IN -3000 ps VALID 1500 ps BEFORE "adc1_clk_p" TIMEGRP "clk180_grp";



Теперь обраите внимание на следующих отрывок из Даташит Репорт:
Data Sheet report:
-----------------
All values displayed in nanoseconds (ns)

Setup/Hold to clock adc1_clk_p
------------+------------+------------+------------+------------+------------------+--------+
|Max Setup to| Process |Max Hold to | Process | | Clock |
Source | clk (edge) | Corner | clk (edge) | Corner |Internal Clock(s) | Phase |
------------+------------+------------+------------+------------+------------------+--------+
adc1_data_n | -0.515®| SLOW | 1.831®| FAST |C0 | 1.250|
| -3.010®| SLOW | 4.257®| FAST |C1 | 3.750|
adc1_data_p | -0.516®| SLOW | 1.831®| FAST |C0 | 1.250|
| -3.011®| SLOW | 4.257®| FAST |C1 | 3.750|
------------+------------+------------+------------+------------+------------------+--------+


Из этого даташит репорта можно определить требование Setup/Hold, и то каким образом ИСЕ сгенерирует Слэки:

1.250ns - 0.515ns = 0.735ns Setup time, поэтому Setup Slack для группы "C0" укасзан как: 0.75ns-0.735ns = 0.015ns

1.831ns - 1.250ns = 0.581ns Hold time, поэтому Hold Slack для группы "C0" указан как: 0.75ns-0.581ns = 0.169ns



3.750ns - 3.010ns = 0.740ns Setup time, поэтому Setup Slack для группы "C1" указан как: 0.75ns-0.740ns = 0.010ns

4.257ns - 3.750ns = 0.507ns Hold time, поэтому Hold Slack для группы "C1" указан как: 0.75ns-0.507ns = 0.243ns


Исходя из выделенных цифр и составлена красное поле на диаграмме.


Я вижу у вас АЦП немного другой, но если принцип уже ясен то разобратся можно очень быстро.


А с варьированием Delay думаю не стоит вообще связыватся.
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st July 2025 - 18:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01395 секунд с 7
ELECTRONIX ©2004-2016