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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> LVDS receiver, с изменяемой частотой в Cyclone III, Cyclone IV
max-i-mum
сообщение Dec 13 2010, 11:00
Сообщение #1





Группа: Новичок
Сообщений: 9
Регистрация: 4-05-06
Пользователь №: 16 781



Подскажите, плиз, кто работал с LVDS приемниками.

Есть сенсор с LVDS выходами (17 пар + клок пара), нужно его подключить к третьему или четвёртому циклону.
десериализация в 10 бит, и lvds не ddr-овские (т.е. данные с частотой клока)
Засада в том, что частота клока и данных может менятся от 50 до 480MHz
Раньше с LVDS дела не имел, и появились вопросы:
1) если сгенерить lvds receiver со встроенным PLL, то там частота задается жестко. Если задать 480MHz то будет ли приемник нормально работать на меньших частотах?
2) если генерить lvds receiver с внешним PLL, то ему клок нужен в 2 раза медленнее (т.е. ddr) как это можно обойти и привязаться к реальному клоку ?
3) а вообще реализовать в Cyclone lvds receiver который бы работал на разных частотах можно ?

И ещё:
как по опыту, стоит ли использовать циклоновский PLL в качестве генератора клока для сенсора в диапазоне 50 - 480MHz?
если нет, то какие есть внешние перестраиваемые PLL-ки в этом диапазоне?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 14 2010, 05:49
Сообщение #2


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

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



Берете LVDS заводите на Fast Input Registers, клок - на source-synchronous PLL и все. Правда Циклон не потянет 480 МГц (если вы только не поставите С6), и придется сделать на входе триггеры DDR, а частоту 240, что тоже не является проблемой. Как PLL, сконфигурированная на конкретную частоту поведет себя на других частотах - вопрос, но PLL можно по ходу дела переконфигурировать. Проблема одна - у Cyclone-IV максимальная входная частота PLL 472.5 МГц. Поэтому проще будет поставить внешнюю PLL (например от National) с двумя выходами: один выход отправить на ресивер, а другой (деленый пополам) - на Циклон.

А еще проще возможно было бы просто использовать внутренний ресивер в Cyclone-IV GX.
Go to the top of the page
 
+Quote Post
max-i-mum
сообщение Dec 14 2010, 16:55
Сообщение #3





Группа: Новичок
Сообщений: 9
Регистрация: 4-05-06
Пользователь №: 16 781



Спасибо, прошляпил я что циклон не может принять 480MHz.
Сбило с толку что квартус позволил так сконфигурировать LVDS приемник.
И если я правильно понял, то в циклоне сделать LVDS приемник (не DDR) базирующийся на внешнем изменяемом клоке невозможно?
только танцы с бубном в виде внешнего PLL ?
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 15 2010, 03:48
Сообщение #4


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

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



Даже если принять самый жесткий вариант, при котором
- PLL при изменении внешней частоты будет тихо впадать в маразм, не теряя lock
- сигнала о том, что внешняя частота изменилась, нет
Все остается возможным. Надо завести в FPGA постоянную максимально высокую частоту (от генератора) и с ее помощью считать примерно период входной частоты. При его изменении переконфигурировать и сбрасывать основную PLL. Вот и все.
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 17 2010, 01:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Извините, если не очень въехал в Ваш вопрос. Но мне пока не видится проблемы: клок подаём на сдвиговый регистр, на его вход - с пинов данных. ПЛЛ не требуется. Десериализовать легче, чем сериализовать. Т.к. деление частоты - операция чисто цифровая. А умножение - с привлечением аналоговых устройств (ГУН и т.п., не считая цифровый ПЛЛ). Соответственно при изменении частоты не будет никаких проблем, т.к. всё останется полностью синхронным.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 17 2010, 03:38
Сообщение #6


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

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



Цитата(Krys @ Dec 17 2010, 07:23) *
Извините, если не очень въехал в Ваш вопрос. Но мне пока не видится проблемы: клок подаём на сдвиговый регистр, на его вход - с пинов данных. ПЛЛ не требуется.
Если бы все было так просто - не делали бы в FPGA быстрых аппаратных десериализаторов, да не изобретали бы source syncronous mode для PLL.
Go to the top of the page
 
+Quote Post
Cordroy
сообщение Dec 17 2010, 09:50
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 13-09-10
Из: Israel
Пользователь №: 59 464



Цитата(Krys @ Dec 17 2010, 08:23) *
Но мне пока не видится проблемы: клок подаём на сдвиговый регистр, на его вход - с пинов данных. ПЛЛ не требуется.


На вход сдвигового регистра подается клок умноженый на N. Для этого и нужен ПЛЛ, причем чтобы держал фазу 0 (или сколько требуется) между принятым и умноженым клоком.
Go to the top of the page
 
+Quote Post
max-i-mum
сообщение Dec 17 2010, 11:07
Сообщение #8





Группа: Новичок
Сообщений: 9
Регистрация: 4-05-06
Пользователь №: 16 781



Цитата(Cordroy @ Dec 17 2010, 15:50) *
На вход сдвигового регистра подается клок умноженый на N. Для этого и нужен ПЛЛ, причем чтобы держал фазу 0 (или сколько требуется) между принятым и умноженым клоком.

Не, ничего умножать не нужно, клок приходит высокочастотный, его поделить нужно чтобы получить клок десериализованных данных.
Вопрос в том делать это ПЛЛ-кой (и при изменении частоты клока перегружать ПЛЛ-ку с новыми параметрами), или на логике ?

По ходу ещё вопрос возник:
если LVDS приемник (сгенерённый визардом) делать с внешней PLL то он предупреждает что к паралельному выходу нужно подцепить регистры-защёлки.
Разве он сам внутри их не должен ставить ?
И каким НЧ клоком их тактировать (сдвиг фазы ноль, или 180 гадусов)? в описании нарисованны регистры тактируемые инверсным клоком.

P.S.
совсем уже запутался: в доках сказано что для циклона десериализатор генерится на логике, и вместе с тем обещают чуть ли не 800 мегабит в секунду по LVDS входу.
Разве не запредельная частота для циклона получается ? как это они с 800MHz данными то оперируют ?
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 18 2010, 03:03
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(max-i-mum @ Dec 17 2010, 20:07) *
Не, ничего умножать не нужно, клок приходит высокочастотный, его поделить нужно чтобы получить клок десериализованных данных.
Ну вот, значит, я правильно понял постановку задачи.
Цитата(max-i-mum @ Dec 17 2010, 20:07) *
Вопрос в том делать это ПЛЛ-кой (и при изменении частоты клока перегружать ПЛЛ-ку с новыми параметрами), или на логике ?
Я бы сделал на логике. Делить - не умножать. Куда проще.
Цитата(max-i-mum @ Dec 17 2010, 20:07) *
если LVDS приемник (сгенерённый визардом) делать с внешней PLL то он предупреждает что к паралельному выходу нужно подцепить регистры-защёлки.
Разве он сам внутри их не должен ставить ?
Ну видимо всё зависит от замысла разработчиков. Если говорят, что не должен - значит не должен. Если в автомобиле нет багажника, то это был замысел разработчиков. И они ничего не должны. И это не значит, что они забыли приделать к кузову багажник.
Цитата(max-i-mum @ Dec 17 2010, 20:07) *
И каким НЧ клоком их тактировать (сдвиг фазы ноль, или 180 гадусов)? в описании нарисованны регистры тактируемые инверсным клоком.
Я бы тактировал клоком с нулевым сдвигом, т.к. это вписывается в концепцию синхронного дизайна. А если 180 градусов - то формально это уже другой клоковый домен. Со всеми вытекающими.

А вообще, покажите, пожалуйста, где "предупреждает" и где "нарисованы".


Цитата(max-i-mum @ Dec 17 2010, 20:07) *
P.S.
совсем уже запутался: в доках сказано что для циклона десериализатор генерится на логике, и вместе с тем обещают чуть ли не 800 мегабит в секунду по LVDS входу.
Разве не запредельная частота для циклона получается ? как это они с 800MHz данными то оперируют ?
Покажите, что написано где. Может, неправильно поняли. Недавно делал SerDes на спартане 3А. Там тоже в какой-то доке рассказывали байку, что прокачивают 600 Мбит/с через LVDS и с использованием DDR клока. Планируем завести их схему хотя бы на 300 Мбит/с.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Victor®
сообщение Dec 18 2010, 05:25
Сообщение #10


Lazy
******

Группа: Свой
Сообщений: 2 070
Регистрация: 21-06-04
Из: Ukraine
Пользователь №: 76



Цитата(Krys @ Dec 18 2010, 09:03) *
Недавно делал SerDes на спартане 3А. Там тоже в какой-то доке рассказывали байку, что прокачивают 600 Мбит/с через LVDS и с использованием DDR клока. Планируем завести их схему хотя бы на 300 Мбит/с.


А в чем проблема-то?
Ясное дело что придется играться с DCM, BUFIO, IDDR и т.п.
+ констрейнтить все это правильно. Недавно чуть голову не сломал с RGMII.


--------------------
"Everything should be made as simple as possible, but not simpler." - Albert Einstein
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 18 2010, 07:01
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Цитата(Victor® @ Dec 18 2010, 14:25) *
Ясное дело что придется играться с DCM, BUFIO, IDDR и т.п.
+ констрейнтить все это правильно. Недавно чуть голову не сломал с RGMII.
Именно в этом и проблема :) Что на автомате это всё не пойдёт. Только ручками исхитряться. Но ой как неохота этим заниматься.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
tvv
сообщение Dec 18 2010, 19:34
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824



Цитата(max-i-mum @ Dec 13 2010, 17:00) *
Подскажите, плиз, кто работал с LVDS приемниками.

Есть сенсор с LVDS выходами (17 пар + клок пара), нужно его подключить к третьему или четвёртому циклону.
десериализация в 10 бит, и lvds не ddr-овские (т.е. данные с частотой клока)
Засада в том, что частота клока и данных может менятся от 50 до 480MHz
Раньше с LVDS дела не имел, и появились вопросы:
1) если сгенерить lvds receiver со встроенным PLL, то там частота задается жестко. Если задать 480MHz то будет ли приемник нормально работать на меньших частотах?
2) если генерить lvds receiver с внешним PLL, то ему клок нужен в 2 раза медленнее (т.е. ddr) как это можно обойти и привязаться к реальному клоку ?
3) а вообще реализовать в Cyclone lvds receiver который бы работал на разных частотах можно ?

И ещё:
как по опыту, стоит ли использовать циклоновский PLL в качестве генератора клока для сенсора в диапазоне 50 - 480MHz?
если нет, то какие есть внешние перестраиваемые PLL-ки в этом диапазоне?


Если я правильно догодался (что стоит описать все сразу, не мучая телепатов), то у Вас 16 входов данные, один контрольный и клок. (Очень похоже на выход видеосенсора wink.gif ) По контрольному сигналу летит слово синхронизации, оно или описано в даташите, или задается через, например, spi. Вам придется подгонять чтение данных по фазе к входному быстрому клоку так, чтобы на выходе параллельной 10битной шины, попасть в нулевой бит. Все это проще сделать на altlvds! В ней уже все сделано и нет нужды изобретать велосипед. Кроме того, вы никакими констрейнами не вытятите времянку до десятков пикосекунд, а lvds это гарантирует, при правильной разводке (а неправильно фиттер не даст разложить). Другой вопрос, как меняется частота входного клока, если плавно и непредсказуемо для альтеры, это один дурдом, (не понятно, в принципе, зачем так делать) если параметрически и Вы этот момент контролируете, то делаете асинхронный сброс pll и все дела. Частота жестко не задается, жестко задается отношение битрейта к частоте! PLL ничего про Вашу входную частоту не знает, а все делает на делении и умножении простых чисел. Отношение битрейта к клоку определяет как разложены Ваши сигналы друг к другу.
800Mb это в ддр (400МГц) и, проверенно, реально работает - не сомневайтесь!
Go to the top of the page
 
+Quote Post
DmitryR
сообщение Dec 20 2010, 06:02
Сообщение #13


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

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



Цитата(max-i-mum @ Dec 17 2010, 17:07) *
совсем уже запутался: в доках сказано что для циклона десериализатор генерится на логике, и вместе с тем обещают чуть ли не 800 мегабит в секунду по LVDS входу.
Разве не запредельная частота для циклона получается ? как это они с 800MHz данными то оперируют ?

Как 400 МГц DDR. Не запредельная.
Go to the top of the page
 
+Quote Post
tvv
сообщение Dec 20 2010, 06:33
Сообщение #14


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 8-10-04
Пользователь №: 824



Цитата(DmitryR @ Dec 20 2010, 12:02) *
Как 400 МГц DDR. Не запредельная.

Все работает в соответствии с описанием: таблица 1-31 на странице 1-22. В чем вопрос собственно?
Go to the top of the page
 
+Quote Post
max-i-mum
сообщение Dec 20 2010, 07:20
Сообщение #15





Группа: Новичок
Сообщений: 9
Регистрация: 4-05-06
Пользователь №: 16 781



Цитата(tvv @ Dec 20 2010, 12:33) *
Все работает в соответствии с описанием: таблица 1-31 на странице 1-22. В чем вопрос собственно?

спасиб, не обратил внимания что клок DDR (в 2 раза медленее).
Получается что сдвиговый регистр в LVDS приемнике циклона (а в циклоне он реализуется просто на обычной логике) может работать на частоте 437.5 МГц?
А более 800Mbs получается за счёт DDR модулей в I/O правильно ?

Цитата(tvv @ Dec 19 2010, 01:34) *
Если я правильно догодался (что стоит описать все сразу, не мучая телепатов), то у Вас 16 входов данные, один контрольный и клок. (Очень похоже на выход видеосенсора wink.gif ) По контрольному сигналу летит слово синхронизации, оно или описано в даташите, или задается через, например, spi. Вам придется подгонять чтение данных по фазе к входному быстрому клоку так, чтобы на выходе параллельной 10битной шины, попасть в нулевой бит. Все это проще сделать на altlvds! В ней уже все сделано и нет нужды изобретать велосипед. Кроме того, вы никакими констрейнами не вытятите времянку до десятков пикосекунд, а lvds это гарантирует, при правильной разводке (а неправильно фиттер не даст разложить). Другой вопрос, как меняется частота входного клока, если плавно и непредсказуемо для альтеры, это один дурдом, (не понятно, в принципе, зачем так делать) если параметрически и Вы этот момент контролируете, то делаете асинхронный сброс pll и все дела. Частота жестко не задается, жестко задается отношение битрейта к частоте! PLL ничего про Вашу входную частоту не знает, а все делает на делении и умножении простых чисел. Отношение битрейта к клоку определяет как разложены Ваши сигналы друг к другу.
800Mb это в ддр (400МГц) и, проверенно, реально работает - не сомневайтесь!

Всё правильно видеосенсор :-) с 16 выходами данных, 1- синхронизация и клок.
На счёт синхронизации Вы имеете вииду bitslip control (rx_data_align) ?
Тоже склоняюсь к использованию визарда altlvds, тем более в первый раз.

Частоту задаю я сам (всё о ней знаю), а сенсор уже выдает данные в нужной фазе со своим клоком (но частота та, что я задал).
На счёт "PLL ничего про Вашу входную частоту не знает, а все делает на делении и умножении простых чисел" не согласен, иначе зачем он её спрашивает в визарде ?
Кроме того провел эксперимент: сделал две ПЛЛ с одинаковыми коэфициентами умножения/деления но разными частотами, и посмотрел advanced настройки.
Так вот разные внутренние параметры (VCO phase tap for M counter, VCO post scale counter, .....) у ПЛЛ-ек получились разные, так что не всё равно какую частоту на ПЛЛ подавать
(при одинаковых коэфициентах умножения/деления но для разных входных частот создаются разные ПЛЛ)
Go to the top of the page
 
+Quote Post

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

 


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


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