Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прием данных от АЦП в ПЛИС
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Работаем с ПЛИС, области применения, выбор
Олег Гаврильченко
Создается проект на XILINX VIRTEX-6. В нем также используется АЦП ADS42LB49. Данные идут в режиме DDR.
Данные от АЦП в ПЛИС идут по 7 линиям в режиме DDR, то есть на каждой линии данных передается 1 бит на фронте, и 1 бит на спаде CLK. CLK также идет от АЦП. Скорость 250 MSPS.
Я хочу спросить, как сделать правильно прием данных от АЦП в ПЛИС, и как затем передать эти данные от тактового домена с CLK АЦП в домен ПЛИС?

Мне не понятны следующие вопросы:
1. Руководства XILINX говорит, что так как на такой большой скорости между линиями CLK и линиями данных возникает разброс по времени, лучше не захватывать данные АЦП по CLK АЦП, а подать CLK АЦП на PLL в ПЛИС, и сдвинуть выходной CLK PLL на правильную фазу. Эту фазу нужно подобрать динамически, так чтобы фронты CLK PLL приходились посередине бита данных от АЦП. Это описано, например, здесь http://www.elec.canterbury.ac.nz/intranet/...tes/xapp268.pdf. Однако, там рассматривают АЦП с 1 линией данных. А у ADS42LB49 линий 7. Если я правильно понимаю, мне нужно сформировать 7 CLK PLL, по 1 для каждой линии данных, и захватывать DDR данные по нему?

2. Как передать захваченные данные от домена с CLK PLL в тактовый домен, по которому работает логика ПЛИС? Если через FIFO, то по какому CLK записывать данные в это FIFO?

Спасибо за ответы!
blackfin
slaa545?
RobFPGA
Приветствую!

Цитата(Олег Гаврильченко @ Feb 6 2018, 20:46) *
..
ADS42LB49 линий 7. Если я правильно понимаю, мне нужно сформировать 7 CLK PLL, по 1 для каждой линии данных, и захватывать DDR данные по нему?
Для VIRTEX-6 правильнее будет двигать не clk, а динамически менять задержку (IDELAY) на каждом входном пине данных. Поищите на сайте XILINX есть апноты и даже демо проекты для динамической подстройки окна приема.

Цитата(Олег Гаврильченко @ Feb 6 2018, 20:46) *
2. Как передать захваченные данные от домена с CLK PLL в тактовый домен, по которому работает логика ПЛИС? Если через FIFO, то по какому CLK записывать данные в это FIFO?
Ну а раз клок от ADC останется в гордом одиночестве то ответ очевиден.

Удачи! Rob.
AndreiUS
Цитата(Олег Гаврильченко @ Feb 6 2018, 20:46) *
Мне не понятны следующие вопросы:
1. Руководства XILINX говорит, что так как на такой большой скорости между линиями CLK и линиями данных возникает разброс по времени, лучше не захватывать данные АЦП по CLK АЦП, а подать CLK АЦП на PLL в ПЛИС, и сдвинуть выходной CLK PLL на правильную фазу. Эту фазу нужно подобрать динамически, так чтобы фронты CLK PLL приходились посередине бита данных от АЦП. Это описано, например, здесь http://www.elec.canterbury.ac.nz/intranet/...tes/xapp268.pdf. Однако, там рассматривают АЦП с 1 линией данных. А у ADS42LB49 линий 7. Если я правильно понимаю, мне нужно сформировать 7 CLK PLL, по 1 для каждой линии данных, и захватывать DDR данные по нему?

2. Как передать захваченные данные от домена с CLK PLL в тактовый домен, по которому работает логика ПЛИС? Если через FIFO, то по какому CLK записывать данные в это FIFO?


1. Два варианта.
Первый, самый простой - сделать динамическую подстройку CLK с помощью IDELAY. Программируете АЦП на выдачу тестовых паттернов, затем начинаете двигать CLK. Как только находите два положения срыва входных данных, ставите в IDELAY среднее значение задержки, это и будет центр данных.

Второй вариант, самый правильный. Как писали выше делать все то же самое на пинах данных. Такой метод, кстати, применяется и для динамической памяти.
2. Если у вас обработка не непрерывная, то ответ очевидный - записывать в FIFO по входному клоку от АЦП.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.