Перейти к содержанию
    

Выбираем униполярный самосинхронизирующийся код

:glare: Для передачи менчестера нужна вдвое большая скорость передачи в канале по сравнению со скоростью входдящего битового потока т.е. если LVDS расчитан допустим на 200МБит то реально мы сможем передать только 100

На Spartan-3 четвертой скорости можно сделать 500 Мегагерц на выходе, используя DDR регистры (проверено). Соответственно реальная скорость будет 250 Мбит/с. Вам надо больше?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:glare: Для передачи менчестера нужна вдвое большая скорость передачи в канале по сравнению со скоростью входдящего битового потока т.е. если LVDS расчитан допустим на 200МБит то реально мы сможем передать только 100

На Spartan-3 четвертой скорости можно сделать 500 Мегагерц на выходе, используя DDR регистры (проверено). Соответственно реальная скорость будет 250 Мбит/с. Вам надо больше?

Мы используем альтеру, там LVDS-ный интерфейс 640Мбит тянет и ДДР можно организовать, нам надо отжать по максимуму :)

Изменено пользователем Magnum

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если использовать внешний сериализатор/десериализатор, то задача становится чисто цифровой и понятной - в плисине надо реализовывать протоколы уровня выше физического. По это теме есть куча информации. И у альтеры и у ксайлинкса есть доки, посвященные быстрой связи между fpga на плате, быстрой последовательной передаче между платами внутри крейта (по бэкплэйну) и т.д. Нет базару...

Меня-то здесь интересует неясная для меня аналоговая часть - восстановление клока из данных. Я считал, что _просто_ это сделать нельзя, и выгоднее либо добавлять линию передачи клока, либо ставить внешний чип сер/десер. Magnum, если вы знаете простой способ или литературу или ссылки - расскажите pls, буду рад любой информации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Меня-то здесь интересует неясная для меня аналоговая часть - восстановление клока из данных. Я считал, что _просто_ это сделать нельзя, и выгоднее либо добавлять линию передачи клока, либо ставить внешний чип сер/десер. Magnum, если вы знаете простой способ или литературу или ссылки - расскажите pls, буду рад любой информации.

:blink: Так можно сделать хотябы по тому же принципу, как это делается в тех же внешних сериализаторах, где каждый пакет из 10 бит снабжается по краям старт (1) и стоп (0) битами. Таким образом всегда есть фронт между соседними пакетами. К этому фронту привязывается PLL, умножается на 12 и этой частотой тактируется входящий поток. http://cache.national.com/ds/DS/DS92LV1023.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд самое правильное - это устанавливать внешнюю микросхему сериализатора. Например TKL2201. На входе 10 бит - на выходе последовательный код. На входе последовательный код - на выходе 10 бит. Можно подключить к любой ПЛИС. Впрочем есть микросхемы и со встроенным перекодировщиком.
Позвольте заметить, что вы вводите автора темы (а заодно и себя) в заблуждение: указанная вами микросхема - это всего лишь SerDes, и никакими "волшебными" свойствами по восстановлению тактовой частоты не обладает. Эта микросхема никогда не восстановит тактовую частоту, не будь десятибитный код закодирован так, чтобы подряд не встречалось большое количество нулей либо единиц. Обычно с этой микросхемой применяется кодирование 8В/10В, о котором упоминалось ранее. При этом, если не ошибаюсь, подряд не может следовать больше 3 одинаковых цифр, поэтому синхронизация не успевает сбиться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд самое правильное - это устанавливать внешнюю микросхему сериализатора. Например TKL2201. На входе 10 бит - на выходе последовательный код. На входе последовательный код - на выходе 10 бит. Можно подключить к любой ПЛИС. Впрочем есть микросхемы и со встроенным перекодировщиком.

Позвольте заметить, что вы вводите автора темы (а заодно и себя) в заблуждение: указанная вами микросхема - это всего лишь SerDes, и никакими "волшебными" свойствами по восстановлению тактовой частоты не обладает. Эта микросхема никогда не восстановит тактовую частоту, не будь десятибитный код закодирован так, чтобы подряд не встречалось большое количество нулей либо единиц. Обычно с этой микросхемой применяется кодирование 8В/10В, о котором упоминалось ранее. При этом, если не ошибаюсь, подряд не может следовать больше 3 одинаковых цифр, поэтому синхронизация не успевает сбиться.

Надеюсь что заблуждения не будет. Я прекрасно понимаю, что возможна передача только с использованием перекодировки 8/10. На приёме происходит восстановление тактовой частоты и выравнивание битов по приёму символа K28.5;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Надеюсь что заблуждения не будет. Я прекрасно понимаю, что возможна передача только с использованием перекодировки 8/10. На приёме происходит восстановление тактовой частоты и выравнивание битов по приёму символа K28.5;
Ну а раз так, то с подобной задачей легко можно справиться и внутренними средствами ПЛИС, без применения внешних микросхем. Если, конечно, внутри ПЛИС есть ГУН с ФАПЧ, выводы стандарта ЛВДС, и триггерная частота переключения позволяет работать с потоком данных в последовательной форме. Не так ли?
Изменено пользователем Janna

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну а раз так, то с подобной задачей легко можно справиться и внутренними средствами ПЛИС, без применения внешних микросхем. Если, конечно, внутри ПЛИС есть ГУН с ФАПЧ, выводы стандарта ЛВДС, и триггерная частота переключения позволяет работать с потоком данных в последовательной форме. Не так ли?

Конечно, вот только требуется частота 1.25 ГГц. Это позволяет сделать Xilinx Virtex 2 Pro, Xilinx Virtex 4 FX, Altera Stratix GX; В этих микросхемах есть такие узлы. Но сами микросхемы дорогие. Поэтому я высказываю мнение, что лучше поставть дешёвый Spartan 3 (или Cyclon) и внешний сериализатор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Конечно, вот только требуется частота 1.25 ГГц.ваю мнение, что лучше поставть дешёвый Spartan 3 (или Cyclon) и внешний сериализатор.
Ну никто не говорил, что требуются такие заоблачные частоты :)

Конечно, вот только требуется частота 1.25 ГГц. Это позволяет сделать Xilinx Virtex 2 Pro, Xilinx Virtex 4 FX, Altera Stratix GX; В этих микросхемах есть такие узлы. Но сами микросхемы дорогие.
Поверьте, такие узлы есть и в более дешёвых микросхемах, просто они не работают на указанной вами частоте.

Таким образом, мы приходим к выводу, что внешняя микросхема SerDes требуется только в том случае, где не позволяет быстродействие ПЛИС

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не проще ли поставить внешнюю пару приема-передачи DVB-ASI (типа cy7c924). И будут 200 мбит/с и последовательная шина и другие вкусности. Или проект уже готов и на плате ничего не изменить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А не проще ли поставить внешнюю пару приема-передачи DVB-ASI (типа cy7c924). И будут 200 мбит/с и последовательная шина и другие вкусности. Или проект уже готов и на плате ничего не изменить?

Конечно проще, но тратить лишние 100у.е. на внешний интерфейс, имея всё необходимое на борту 20уёвого циклона смысла не вижу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может, автору стоит разместить эту тему или ссылку на эту тему в группе тем, где обсуждаются интерфейс ЛВДС?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Господа, мы опять вернулись к обсуждению физического уровня протокола и вопросу восстановления клока из потока данных средствами fpga. Мое утверждение (и вопрос) заключается в том, что _только _ с помощью внутреннего pll сделать это нельзя (корректно говоря - я не знаю как :) ), т.к. pll в циклонах и стратиксах (про ксайлинксы не знаю, но думаю, что примерно также) может только * и / частоту + сдвигать результат. Основание моего убеждения - изучение вопроса примерно полгода назад (была проработка проекта) плюс тот факт, что в application notes у altera и xilinx в lvds-передачах участвует клок, передаваемый по отдельной линии.

Я задал вопрос Magnum, но он описал мне принцип восстановления частоты и дал почему-то ссылку на внешний чип сериализатора. Однако, как все мы знаем, между принципом и его реализацией в железе могут встретится некоторые трудности (читайте статьи про квантовые вычисления).

Вопрос остался открытым: можно ли и как с помощью pll в fpga восстановить клок из данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ни в коей степени не претендую на правильность, но у меня следующие рассуждения: какая разница внутри ПЛИС стоит ПЛЛ или вне? Ведь ПЛЛ состоит из одного и того же: ГУН, ФАПЧ, ФНЧ. Я смотрел в хэндбуке на стратикс2 вид ПЛЛ - всё так, как я описал.

Конечно, не исключаю, что ПЛЛ внутри ПЛИС не сможет подстроиться под тактовую, получаемую из данных, из-за особенностей построения. Но из хэндбука не следует ни подтверждения этой мысли, ни опровержения. Так что остаётся проверять. Или слушать совет того, кто уже проверял.

pll в циклонах и стратиксах (про ксайлинксы не знаю, но думаю, что примерно также) может только * и / частоту + сдвигать результат. Основание моего убеждения - изучение вопроса примерно полгода назад (была проработка проекта) плюс тот факт, что в application notes у altera и xilinx в lvds-передачах участвует клок, передаваемый по отдельной линии
Ничто не мешает подать на вход клока этот же сигнал данных. В теории. Ну а вообще, надо проверять, "вытянет" ли ПЛЛ такие трюки или будут срывы. Всё зависит от конкретной реализации ПЛЛ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Janna,

именно о конкретной реализации pll я и говорю. Например, feedback есть только у стратиксов (которые дороги), а в дешевых циклонах у pll есть только вход частоты, сигналы сброса и разрешения. Будет ли pll хватать клок из потока данных - это вопрос экспериментальный. По моему опыта прочтения буржуйских доков - если не описано, или описано нечетко - значит не работает.

 

Забыл еще упомянуть an356 у альтеры (Serial Digital Interface Reference Design for Cyclone & Stratix Devices). Там клок не восстанавливается, а используется чисто цифровой способ - oversampling (делаются 4 клока опорной частоты, сдвинутые на 90 градусов каждый и смотрят когда во входном потоке есть переходы уровней).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...