|
Как работают скоростные дифф линии?, CSI-2 D-PHY |
|
|
|
Jan 17 2018, 08:04
|

фанат Linux'а
    
Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008

|
Доброго времени суток! У меня неудобный вопрос, который постыдно задавать, но вот я понимаю как работают обычные линии IO, представляю как работают мультигигабитные SERDESы. Но у меня нет понятия, как работают быстрые дифференциальные линии в ПЛИС, пока не было опыта, но сейчас надо освоить. Я так понимаю, к каждой (или один на несколько пар?) такой быстрой дифф паре приставлен, если рассматривать Xilinx, такой компонент как ISERDESE2. И такой компонент надо тактировать на целевой частоте, но данные будут поступать на 1/8 частоте, которая получена из исходной высокой путем простого деления?
Сложнее для понимания прием таких сигналов, хотя такой задачи пока не стоит. Как осуществляется синхронизация? Нужно самостоятельно подкручивать фазу? Извините, если вопросы новичка, и вообще не в тот раздел - перенесите тогда, пожалуйста.
--------------------
|
|
|
|
|
 |
Ответов
|
Jan 17 2018, 11:08
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(AVR @ Jan 17 2018, 11:04)  Доброго времени суток! У меня неудобный вопрос, который постыдно задавать, но вот я понимаю как работают обычные линии IO, представляю как работают мультигигабитные SERDESы. Но у меня нет понятия, как работают быстрые дифференциальные линии в ПЛИС, пока не было опыта, но сейчас надо освоить. Я так понимаю, к каждой (или один на несколько пар?) такой быстрой дифф паре приставлен, если рассматривать Xilinx, такой компонент как ISERDESE2. И такой компонент надо тактировать на целевой частоте, но данные будут поступать на 1/8 частоте, которая получена из исходной высокой путем простого деления?
Сложнее для понимания прием таких сигналов, хотя такой задачи пока не стоит. Как осуществляется синхронизация? Нужно самостоятельно подкручивать фазу? Извините, если вопросы новичка, и вообще не в тот раздел - перенесите тогда, пожалуйста. Если для 7 series FPGA, то используются ISERDESE2 и IDELAYE2 (может у каких-то нету), смысл синхронизации примерно в следующем: 1) клок поставить в центр "глаза" данных (АЦП гонит тест паттерн FF00, на линиях имеем 11110000 и 11110000, с помощью элемента IDELAYE2 меняем задержку клока линии данных, находим значение задержки при котором выход приёмника изменяется и запоминаем, далее увеличиваем задержку, находим второе значение при котором данные изменились, (зн_2+зн_1)/2 это центр данных, загоняем это значение в IDELAYE2 соответствующей линии 2) далее выстовляем тест паттерн на АЦП, битслипом добиваемся правильного приёма паттерна 3) синхронизация выполнена Вообще у Xilinx много разных док на эту тему (xapp524, xapp585, xapp855, xapp586, xapp1064 - когда-то знающие люди советовали), и где-то тут обсуждалось, ищите.
|
|
|
|
|
Jan 17 2018, 11:21
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Цитата(doom13 @ Jan 17 2018, 14:08)  Если для 7 series FPGA, то используются ISERDESE2 и IDELAYE2 (может у каких-то нету), смысл синхронизации примерно в следующем: 1) клок поставить в центр "глаза" данных (АЦП гонит тест паттерн FF00, на линиях имеем 11110000 и 11110000, с помощью элемента IDELAYE2 меняем задержку клока, находим значение задержки при котором выход приёмника изменяется и запоминаем, далее увеличиваем задержку, находим второе значение при котором данные изменились, (зн_2+зн_1)/2 это центр данных, загоняем это значение в IDELAYE2) 2) далее выстовляем тест паттерн на АЦП, битслипом добиваемся правильного приёма паттерна 3) синхронизация выполнена
Вообще у Xilinx много разных док на эту тему (xapp524, xapp585, xapp855, xapp586, xapp1064 - когда-то знающие люди советовали), и где-то тут обсуждалось, ищите. Но есть нюанс. Если это не АЦП, который умеет выдавать тестовую последовательность. А некий протокол передачи где тестовая последовательность чередуется с данными, то нужен несколько иной алгоритм... Отличия незначительные, но они есть. Могу рассказать как я делал. Правда делал на Altera, но смысл от этого не поменяется. P.S. А вообще гораздо интереснее можно ли потом после подстройки как-то динамически отслеживать изменение фазы. И корректировать её. Мало ли температура в помещении повысилась и задержка стала другой.... Я пока не нашел решения.
|
|
|
|
|
Jan 17 2018, 12:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 404
Регистрация: 11-03-11
Из: Минск, Беларусь
Пользователь №: 63 539

|
Цитата(Flip-fl0p @ Jan 17 2018, 14:21)  Но есть нюанс. Если это не АЦП, который умеет выдавать тестовую последовательность. А некий протокол передачи где тестовая последовательность чередуется с данными, то нужен несколько иной алгоритм... Отличия незначительные, но они есть. Могу рассказать как я делал. Правда делал на Altera, но смысл от этого не поменяется. P.S. А вообще гораздо интереснее можно ли потом после подстройки как-то динамически отслеживать изменение фазы. И корректировать её. Мало ли температура в помещении повысилась и задержка стала другой.... Я пока не нашел решения. Не вопрос, написал то, с чем имел дело  На альтере - Cyclone V, если не ошибаюсь, будет отличаться, там нет возможности регулировать задержку для каждой линии в отдельности, тут есть. Немного обманул, давно было, не клок должен задерживаться с помощью IDELAYE2, а каждая линия данных относительно клока. 1. Центр бита данных совмещается с фронтом клока 2. Синхронизация с АЦП У Вас ведь фаза PLL крутилась, как быть в случае кривизны платы, когда для всех линий задержки отличаются и значительно?
|
|
|
|
|
Jan 17 2018, 12:37
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Цитата На альтере - Cyclone V, если не ошибаюсь, будет отличаться, там нет возможности регулировать задержку для каждой линии в отдельности, тут есть. Именно так. Хотя в I/O Buffer есть линии задержки. И вроде к управлению этими линиями можно получить доступ через ядро мегавизарда. Цитата У Вас ведь фаза PLL крутилась, как быть в случае кривизны платы, когда для всех линий задержки отличаются и значительно. Для каждой линии применять отдельную частоту и подстраиваться индивидуально...
|
|
|
|
Сообщений в этой теме
AVR Как работают скоростные дифф линии? Jan 17 2018, 08:04 _Anatoliy Цитата(AVR @ Jan 17 2018, 11:04) Сложнее ... Jan 17 2018, 09:55 Flip-fl0p del. Jan 17 2018, 10:14    doom13 Цитата(Flip-fl0p @ Jan 17 2018, 15:3... Jan 17 2018, 12:50     _Anatoliy Цитата(doom13 @ Jan 17 2018, 15:50) Динам... Jan 17 2018, 12:57      doom13 Цитата(_Anatoliy @ Jan 17 2018, 15:57) Эт... Jan 17 2018, 13:00 AVR Спасибо за инфу про алгоритмы синхронизации. Попро... Jan 19 2018, 07:37 Flip-fl0p Посмотрите ещё на xapp460 и xapp495. Jan 19 2018, 08:01 AVR Дело идет к практике. Не знаю, возможно стоили бы ... Feb 21 2018, 20:36 XVR Цитата(AVR @ Feb 21 2018, 23:36) Но выясн... Feb 22 2018, 05:53  AVR Цитата(XVR @ Feb 22 2018, 08:53) Смотрите... Feb 24 2018, 19:59 Aner А из того перечня стандартов LVDSов у Xilinx ничег... Feb 21 2018, 22:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|