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

 
 
> Десериализатор 600 MHz на Stratix II
boulon
сообщение Aug 11 2009, 08:34
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 25-08-06
Пользователь №: 19 820



Добрый день.

Столкнулся с проблемой следующего характера.
Реализовываю десериализатор, который принимает 8 LVDS 12-битных потоков с АЦП ADC5271 (50MSPS, 12 bits) на частоте 600 MHz, которые синхронизируются частотой 50 MHz тоже от этой микросхемы.
Из приходящей частоты 50 MHz сделал 2 клока 300MHz (сдвиг 180 град) для фиксации четных и нечетных бит и 50MHz для конечной фиксации 12-бит слова. Настроил фазы всех этих частот по паттернам из микросхемы (микросхема может генерировать 2 паттерна "101010101010" и "111111000000") для настройки. Все работает хорошо, но...
При добавлении новых модулей в стратикс и новой компиляции происходит рассинхронизация - меняется расскладка и приходится каждый раз подбирать фазы клоков. А так как на плате стоит 8 микросхем АЦП, то работа достаточно долгая и нудная.
Зафиксировал десериализатор при помощи FloorPlan. Помогло, но не надолго. Сейчас, как я понимаю, могут меняться пути от ног микросхемы, куда приходят данные, до модуля десериализатора на кристале.
Нужно как то все зафиксировать чтобы при добавлении новых модулей и компиляции не было нужды каждый раз снова корректировать фазы клоков.
Уверен есть людт которые решали такую проблему.
Как грамотно разрешить ситуацию? Возможно можно зафиксировать раз и навсегда пути до модуля.

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DmitryR
сообщение Aug 11 2009, 08:54
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(boulon @ Aug 11 2009, 12:34) *
Уверен есть людт которые решали такую проблему.

Вы правильно уверены, только зря не поискали по форуму: эта тема раз в пару месяцев обсуждается стабильно. Меняются только ADC, но все они на самом деле работают одинаково. Краткий пересказ:
- ловить данные надо по двум фронтам LCLK
- определять нулевой бит и записывать в FIFO надо по ADCLK
- если внутренности FPGA работают на ADCLK то без FIFO можно обойтись, если на синхронной, но другой частоте (например от PLL, которая раздает по плате частоты) - то FIFO можно заменить на эластичный буфер
Go to the top of the page
 
+Quote Post
boulon
сообщение Aug 11 2009, 10:22
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 25-08-06
Пользователь №: 19 820



Цитата(DmitryR @ Aug 11 2009, 11:54) *
Вы правильно уверены, только зря не поискали по форуму: эта тема раз в пару месяцев обсуждается стабильно. Меняются только ADC, но все они на самом деле работают одинаково. Краткий пересказ:
- ловить данные надо по двум фронтам LCLK
- определять нулевой бит и записывать в FIFO надо по ADCLK
- если внутренности FPGA работают на ADCLK то без FIFO можно обойтись, если на синхронной, но другой частоте (например от PLL, которая раздает по плате частоты) - то FIFO можно заменить на эластичный буфер


я все так и делаю. Проблема в том, что при добавлении модуля и компиляции все расстраивается и надо снова подбирать фазы клоков.
Можно ли как то зафиксировать пути сигналов от ног и до модуля дессериализации?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 11 2009, 11:19
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(boulon @ Aug 11 2009, 14:22) *
я все так и делаю.

Цитата(boulon @ Aug 11 2009, 12:34) *
Из приходящей частоты 50 MHz сделал 2 клока 300MHz (сдвиг 180 град) для фиксации четных и нечетных бит и 50MHz для конечной фиксации 12-бит слова.

Еще раз: вы делаете АБСОЛЮТНО не так, как я сказал. Или очень плохо описываете свои мысли. Не надо ничего делать из приходящей 50, LCLK - это 300 МГц. Надо прямо на ней хлопать по двум фронтам.
Go to the top of the page
 
+Quote Post
boulon
сообщение Aug 11 2009, 11:30
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 44
Регистрация: 25-08-06
Пользователь №: 19 820



Цитата(DmitryR @ Aug 11 2009, 14:19) *
Еще раз: вы делаете АБСОЛЮТНО не так, как я сказал. Или очень плохо описываете свои мысли. Не надо ничего делать из приходящей 50, LCLK - это 300 МГц. Надо прямо на ней хлопать по двум фронтам.

у меня нету на альтере такого клока, все что заведено на плате это 50 MHz для синхронизации нулевого бита (начало слова) и данные (8 последовательных потоков). Теперь для фиксации каждого бита мне надо 50 мегагерц умножать в 6 раз и получать нужные клоки - 300 мегагерц. Вобщем, у меня модуль делает из входного клока 50MHz 3 частоты: 300MHz, 300MHz(180 град) и 50 MHz уже для фиксации всех 12 бит после их накопления в сдвиговых регистрах.
Да, действительно, я это не описал раньше.

Цитата(SM @ Aug 11 2009, 14:29) *
Fast Input Register = ON

спасибо, если это поможет

Сообщение отредактировал boulon - Aug 11 2009, 11:37
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Aug 11 2009, 12:04
Сообщение #6


Профессионал
*****

Группа: Свой
Сообщений: 1 535
Регистрация: 20-02-05
Из: Siegen
Пользователь №: 2 770



Цитата(boulon @ Aug 11 2009, 15:30) *
у меня нету на альтере такого клока, все что заведено на плате это 50 MHz для синхронизации нулевого бита (начало слова) и данные (8 последовательных потоков).

То есть человек, который делал плату даже не поинтересовался, что же это за выход такой у АЦП, LCLK. Поэтому у вас теперь будет гемморой, если вообще что-то выйдет. И вот почему:
1. Фронт ADCLK может гулять +-350ps, то есть 700 ps p-p (стр. 7), и вместе с ним будет гулять фаза умноженного клока, а у вас все окно данных 1666 ps, минус фронт еще 180 ps минимум (на той же странице).
2. Из документации непонятно, какой у этого ADCLK джиттер и соответственно непонятно, какой он будет у вас на выходе PLL.
Вобщем я думаю, что тут без периодической перекалибровки не получится. И в любом случае я бы не отдал такую плату заказчику: надо переделать, разведя LCLK, и все станет легко.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- boulon   Десериализатор 600 MHz на Stratix II   Aug 11 2009, 08:34
|- - SM   Цитата(boulon @ Aug 11 2009, 14:22) Можно...   Aug 11 2009, 10:36
||- - boulon   Цитата(SM @ Aug 11 2009, 13:36) Можно, ис...   Aug 11 2009, 10:53
||- - SM   Цитата(boulon @ Aug 11 2009, 14:53) нет я...   Aug 11 2009, 11:00
||- - boulon   Цитата(SM @ Aug 11 2009, 14:00) Если триг...   Aug 11 2009, 11:26
||- - SM   Цитата(boulon @ Aug 11 2009, 15:26) то ес...   Aug 11 2009, 11:29
|- - SM   Цитата(boulon @ Aug 11 2009, 15:30) спаси...   Aug 11 2009, 11:36
||- - boulon   Цитата(SM @ Aug 11 2009, 14:36) Смотрите ...   Aug 11 2009, 11:57
||- - SM   Цитата(boulon @ Aug 11 2009, 15:57) пишут...   Aug 11 2009, 12:00
|- - boulon   Цитата(DmitryR @ Aug 11 2009, 15:04) То е...   Aug 11 2009, 12:31
|- - DmitryR   Увы, я абсолютно уверен, что глобально решить эту ...   Aug 11 2009, 12:42
|- - boulon   Цитата(DmitryR @ Aug 11 2009, 15:42) Увы,...   Aug 11 2009, 12:54
|- - DmitryR   Не смешивайте две проблемы. Сначала сделайте работ...   Aug 11 2009, 13:13
|- - boulon   Цитата(DmitryR @ Aug 11 2009, 16:13) Не с...   Aug 11 2009, 13:19
|- - DmitryR   AN367 читайте. Цитата(boulon @ Aug 11 2009, ...   Aug 11 2009, 13:55
|- - ArMouReR   Цитата(boulon @ Aug 11 2009, 16:19) фазы ...   Aug 16 2009, 12:47
- - SM   Задействуйте DDR-регистры, и фаза должна перестать...   Aug 11 2009, 13:08
|- - boulon   Цитата(SM @ Aug 11 2009, 16:08) Задейству...   Aug 11 2009, 14:18
|- - SM   Цитата(boulon @ Aug 11 2009, 18:18) подск...   Aug 11 2009, 14:28
- - boulon   Даю отчет. Сделал как советовали, используя входн...   Sep 30 2009, 12:06


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 15:00
Рейтинг@Mail.ru


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