Как преобразовать каждую LVDS-пару ПЛИС в законченное решение SERDES


PDF версия

Передовая технология Align Lock Loop создает основу для реализации быстрых, простых и доступных линий связи между микросхемами (chip-to-chip) и между платами (board-to-board).

Незадолго до написания этой статьи автор провел беседу с сотрудниками компании Align Engineering, которая анонсировала революционную запатентованную технологию Align Lock Loop (ALL). Эта технология позволяет каждую LVDS-пару ввода/вывода (LVDS I/O pair) в ПЛИС использовать как за­конченную реализацию функции SERDES (Serializer/Deserializer — уст­ройство преобразования параллельной формы представления информации в последовательную, и наоборот — прим. перев.).
Данная статья представляет из себя краткое введение в эту технологию.

 

Фазовая автоподстройка частоты и восстановление синхросигнала

Прежде чем приступить к данной теме, полезно вспомнить о той роли, которую играют схемы фазовой автоподстройки частоты (ФАПЧ) и восстановления синхросигнала в электронных устройствах.
Схема ФАПЧ — это электронная схема с замкнутым контуром, которая может быть использована для управления частотой путем формирования выходного сигнала, имеющего жесткую связь с фазой входного («опорного») сигнала. В данной статье и входной, и выходной сигналы будут рассматриваться как сигналы синхронизации.
Посредством цепи обратной связи, соединенной с фазовым детектором, ФАПЧ реагирует на частоту и фазу входного сигнала, автоматически увеличивая или уменьшая частоту управляемого генератора до тех пор, пока не наступит синхронизация с входным/опорным сигналом как по частоте, так и по фазе (см. рис. 1).

 

Рис. 1. Общий случай ФАПЧ

Непосвященным это может показаться слишком сложным. Возникает впечатление, что схема используется только для того, чтобы из существующего сигнала получить новый, в точности похожий на исходный. На самом деле, все гораздо серьезнее. Рассмотрим, для примера, случай джиттера, при котором передние и задние фронты входного синхросигнала могут незначительно дрейфовать вперед и назад по времени. ФАПЧ удаляет джиттер и формирует хороший, «чистый и ясный» синхросигнал.
Чтобы показать, насколько важен джиттер, рассмотрим аналогово-цифровой преобразователь (АЦП), выполняющий выборку данных в определенные периоды времени. Эти данные используются затем алгоритмом цифровой обработки сигнала, который верно работает в предположении, что все выборки осуществляются через регулярные интервалы времени, определяемые некоторым синхросигналом. Неудивительно, что точность полученных данных снижается, если синхросигнал подвержен джиттеру. Чтобы справиться с этой проблемой, можно использовать схему ФАПЧ, «очищающую» синхросигнал и позволяющую снизить джиттер до фемтосекундных значений.
Конечно, на этом все не заканчивается. Частота сигнала на выходе схемы ФАПЧ может стать выше (путем умножения) или ниже (путем деления) частоты входного сигнала.
Как простой пример того, для чего может быть полезна умножающая ФАПЧ, рассмотрим случай, когда микросхема АЦП должна осуществлять выборку данных с частотой 100 МГц. Предположим также, что несколько микросхем могут работать от общего задающего генератора. Один из подходов к решению задачи — использование тактового генератора с частотой 100 МГц для синхронизации разных микросхем, однако распределение синхросигнала 100 МГц по всей плате — не очень хорошее решение. Альтернативой может быть применение задающего генератора с частотой 25 МГц, сигнал которого разведен по плате, а для каждой микросхемы при этом используются схемы ФАПЧ 4×, генерирующие сигналы 100 МГц.
Ниже перечислены различные функции ФАПЧ. Они представлены в порядке увеличения сложности, что можно трактовать как увеличение количества вентилей/транзисторов, занимаемого объема, потребляемой мощности и т.д.
Базовая ФАПЧ: в этом простейшем варианте выходной сигнал ФАПЧ имеет ту же частоту и фазу, что и сигнал на входе (фаза при необходимости может подстраиваться при помощи цепи обратной связи).
Целочисленная умножающая ФАПЧ: выходная частота ФАПЧ равна произведению входной частоты на некоторое целое число.
Целочисленная делящая ФАПЧ: выходная частота представляет собой результат деления входной частоты на некоторое целое число.
Целочисленная умножающая/де­лящая ФАПЧ: выходная частота образуется как комбинация целочисленного умножения на число m и целочисленного деления на число n входной частоты (достигается одновременным использованием двух или более ФАПЧ).
Дробная умножающая/делящая ФАПЧ: как и в предыдущем случае, за исключением того, что делители m и n могут быть вещественными/дробными числами.
ФАПЧ восстановления синхросигнала: в этом случае синхросигнал восстанавливается из потока данных, в который был встроен.
В контексте данной статьи особый интерес представляет вариант ФАПЧ для восстановления синхросигнала (Clock Data Recovery, CDR). Идея в том, что вместо использования раздельных сигналов синхронизации и данных тактовая последовательность встраивается в поток данных и может быть извлечена из него.

 

Рис. 2. Внедрение тактовой последовательности в поток данных: а) простой поток данных; б) более сложный поток данных

Для начала рассмотрим поток данных, состоящий из чередующихся нулей и единиц, т.е. 010101010101…, как показано на рис. 2а, где каждый переход от нуля к единице и обратно происходит по фронту синхросигнала опорного генератора, встроенного в передатчик.
Ясно, что в этом случае восстановление тактовой последовательности не представляет сложности (в сущности, поток данных и есть тактовый сигнал).
Рассмотрим теперь более сложный поток данных, показанный на рис. 2б. И снова переходы данных между 0 и 1 (и наоборот) происходят по «тактовым фронтам» в соответствии с сигналом опорного генератора, встроенного в передатчик, однако теперь сам поток данных может содержать случайную последовательность нулей и единиц. В этом случае реализация встроенной в приемник функции CDR будет гораздо более сложной задачей.

 

Кодирование 8 бит/10 бит

Здесь мы забегаем немного вперед, так как концепция кодирования 8/10 (и родственных схем кодирования) не будет наглядна, пока не начат разговор о SERDES и ALL. Причина, по которой это понятие вводится сейчас, заключается в том, что эта тема важна в контексте обсуждения функций CDR.
Для начала предположим, что используется некоторое оборудование для высокоскоростной последовательной передачи данных и что передается идеальный сигнал, состоящий из последовательности чередующихся нулей и единиц, как показано на рисунке 3.

 

Рис. 3. Передача и прием идеального высокоскоростного последовательного сигнала

В этом простом примере сигнал, генерируемый передатчиком, показан как чистый меандр. Однако в реальности такой сигнал будет иметь существенно «аналоговый» вид. Кроме того, сигнал, как его «видит» приемник, будет иметь фазовый сдвиг относительно показанного на рисунке 3; на рисунке сигналы выровнены для лучшей иллюстрации соответствия передаваемых и принимаемых битов.
В быстрых системах со скоростями передачи данных, измеряемыми Гбит/с, линии связи между передающими и приемными микросхемами (а также выводы этих микросхем) поглощают существенную часть высокочастотных компонент сигналов, и это означает, что приемник будет «видеть» только радикально ослабленную версию оригинального сигнала.
Конечным результатом такого подавления высокочастотных составляющих является то, что сигнал, вышедший с передающей микросхемы, сильно искажен и становится еще хуже, когда достигает приемника.
Однако сигнал, как его «видит» приемник на рисунке 3, по-прежнему колеблется вокруг некоторого среднего уровня, значит приемник может обнаружить сигнал и извлечь из него полезную информацию (данные и восстановленный синхросигнал).
Давайте теперь посмотрим, что может произойти, если изменить поток данных таким образом, чтобы он начинался с передачи серии из трех последовательно идущих единиц, как показано на рисунке 4.

 

Рис. 4. Передача серии идентичных битов

В этом случае (напомним, что данный сценарий — излишне пессимистичный, используется исключительно для того, чтобы обрисовать предмет разговора) сигнал на входе приемника нарастает в течение всего времени, пока передаются первые три бита. Уровень сигнала становится выше своей «средней» величины, и это означает, что даже после того, как сигнал возвращается к последовательности 010101…, приемник на самом деле будет продолжать «видеть» бесконечную серию единиц.
8/10 — это схема кодирования, в которой исходные 8-разрядные слова (имеющие 256 возможных значений) отображаются на множество 10-разрядных слов (1024 возможных значений). При этом каждое из исходных 8-разрядных слов может иметь несколько 10-разрядных аналогов. В результате, даже если передатчик должен передать группу нулей или единиц, он может выбирать среди различных 10-разрядных слов с тем, чтобы обеспечить уровень сигнала в пределах всей последовательности «колеблющимся» вокруг средней величины.
Кроме обеспечения неизменной величины постоянной составляющей, как было описано выше, кодирование 8/10 также используется для обеспечения достаточного количества смен уровня в сигнале для облегчения восстановления тактовой последовательности приемником. Немаловажно то, что некоторые 10-разрядные коды могут быть использованы как управляющие символы — например, для объявления начала или конца
кадра.
Примеры приложений, в которых используется кодирование 8/10 — это стандарты PCIexpress, Serial RapidIO, Gigabit Ethernet (за исключением основанного на витой паре 1000Base-T), InfiniBand и XAUI.

 

Эволюция схем ввода/вывода (I/O)

В «старину» передать сигналы от одной микросхемы к другой было куда проще, чем сегодня. В те уже давно ушедшие времена инженеры обычно работали с транзисторно-транзисторной логикой (ТТЛ), в которой уровни сигналов менялись от 0 до 5 В. Мало того, частоты тактовых сигналов, с которыми приходилось иметь дело, составляли всего несколько сотен килогерц. Тогда было бы трудно поверить, что через несколько десятилетий речь пойдет о гигагерцовых частотах и гигабитных скоростях.
В настоящее время преобладает КМОП-технология. Подведем краткий итог эволюции различных типов схем ввода/вывода:
– параллельный асинхронный ввод/вывод, КМОП-технология (ФАПЧ или CDR не требуются);
– параллельный синхронный ввод/вывод, КМОП-технология (ФАПЧ или CDR не требуются);
– параллельный, синхронизированный с источником ввод/вывод, КМОП-технология (требуется ФАПЧ);
– параллельный, синхронизированный с источником ввод/вывод, LVDS-технология (требуется ФАПЧ);
– последовательный, синхронизированный с источником ввод/вывод, LVDS-технология (требуется ФАПЧ);
– мультигигабитный SERDES (требуется CDR).
Рассмотрим вкратце каждый из этих случаев с тем, чтобы вспомнить наиболее важные моменты указанных технологий.

 

Параллельный асинхронный ввод/вывод, КМОП-технология

Начнем с рассмотрения ПЛИС, работающей в режиме мастера и осуществляющей обмен (чтение и/или запись данных) с некоторым ведомым устройством. В этом случае мастер управляется внешним тактовым генератором, и два компонента должны быть соединены параллельной шиной данных с добавлением некоторых управляющих сигналов, например Chip Select (CS) и Read/Write (R/W) (см. рис. 5).

 

Рис. 5. Параллельное асинхронное взаимодействие КМОП-компонентов (одно ведомое устройство)

Преимущество этой схемы в ее относительной простоте. Недостатком же является то, что используется много выводов. Еще один минус схемы — требуется несколько периодов тактового сигнала для установки линий R/W и CS в нужное состояние, и только затем можно выполнять операцию чтения/записи.
Если требуется несколько ведомых устройств, шина данных и сигнал R/W копируются для всех ведомых; в то же время, для каждого ведомого устройства требуется индивидуальный сигнал CS, как показано на рисунке 6.

 

Рис. 6. Параллельное асинхронное взаимодействие КМОП-компонентов (несколько ведомых устройств)

Естественно, вместо генерирования мастером уникальных сигналов CS можно выводить адрес, который декодировался бы внешней схемой для формирования этих сигналов, однако здесь рассматривается максимально простая схема.

 

Параллельный синхронный ввод/вывод, КМОП-технология

Схема очень похожа на предыдущий случай за исключением того, что тактовый генератор управляет работой всех устройств, как показано на рисунке 7.

Рис. 7. Параллельное синхронное взаимодействие КМОП-компонентов (одно ведомое устройство)

 

Преимущество этой схемы в том, что каждая операция чтения/записи требует только одного периода тактового сигнала. Недостаток в том, что теперь требуется соблюдать баланс синхросигнала на всех линиях, чтобы все устройства получали тактовые импульсы в одно и то же время. Это заметно усложняет систему, особенно с увеличением тактовой частоты.

Параллельный, синхронизированный с источником ввод/вывод, КМОП-технология

Чтобы пояснить следующий пример, предположим, что требуется организовать связь между ПЛИС и микросхемой АЦП. Устройство-мастер (ПЛИС) должно принимать непрерывный поток данных (выборок) от ведомого устройства (АЦП). Далее предположим, что требуемая скорость передачи данных настолько высока, что более невозможно гарантировать синхронность работы обоих устройств при использовании общего задающего генератора.
Решение состоит в применении техники синхронизации с источником: ведомое устройство генерирует собственный синхросигнал, который идет параллельно с линией данных (см. рис. 8).

 

Рис. 8. Параллельное, синхронизированное с источником взаимодействие КМОП-компонентов (одно ведомое устройство)

Заметим, что на рисунке 8 показаны только линии данных и синхронизации; некоторые дополнительные управляющие сигналы для упрощения опущены. Отметим также, что использование одного системного синхросигнала для управления обоими устройствами, как показано на рисунке 8, лишь один из возможных вариантов. Другим распространенным способом является управление устройствами от разных задающих генераторов.
При использовании такого подхода синхронизирующий сигнал, генерируемый ведомым устройством, подвержен тем же задержкам и дрейфу, что и сигнал данных, что облегчает надежное распознавание данных принимающим устройством.
Обратим внимание на то, что по сравнению с блоком ФАПЧ, логика SSC (Source Synchronous Control, управление синхронизацией от источника) довольно проста. В случае ведомого устройства (АЦП), как ФАПЧ, так и SSC реализуются как аппаратная логика, а вот в случае ПЛИС, ФАПЧ реализуется аппаратным макроблоком, в то время как SSC — программированием связей.
Недостаток такого подхода заключается в разрастании количества схем ФАПЧ — сначала требуется ФАПЧ в ведомом для привязки к внешнему синхросигналу (и устранению джиттера), а затем ФАПЧ необходима в мастере для привязки к синхросигналу, генерируемому ведомым (и устранению джиттера).
Кроме того, каждое новое ведомое устройство будет требовать дополнительного макроблока ФАПЧ в ПЛИС. Что еще хуже, каждое ведомое устройство ведет себя так, как будто вокруг кроме него (и генератора синхросигнала) ничего не существует. Результат для ПЛИС — появление нескольких зон синхронизации (multiple clock domains), по одной для каждого ведомого устройства.

 

Параллельный, синхронизированный с источником ввод/вывод, LVDS-технология

Принцип почти идентичен описанному в предыдущем разделе. Единственное существенное отличие в том, что сигнал синхронизации и каждый сигнал данных передается LVDS-парой (Low-Voltage Differential Signaling — низковольтный дифференциальный интерфейс).
Три основных преимущества, связанных с использованием LVDS: а) низкая потребляемая мощность, б) низкий уровень излучаемых электромагнитных помех (EMI) и в) лучшая устойчивость к внешним электромагнитным помехам.
Главный недостаток заключается в том, что для каждого сигнала требуется два вывода в каждом устройстве.

 

Последовательный, синхронизирован­ный с источником ввод/вывод, LVDS-технология

В случае последовательной, синхронизированной с источником схемы LVDS, требуется наличие трех сигналов: Clock, Data, и Frame (см. рис. 9).

Рис. 9. Последовательная, синхронизированная с источником LVDS-схема (одно ведомое устройство)

 

Как и в любой другой технологии последовательной передачи данных с синхронизацией по источнику, ПЛИС потребует отдельной ФАПЧ для синхронизации с каждым ведомым устройством.

 

Мультигигабитный SERDES

На самом верху «пирамиды» находятся высокоскоростные коммуникационные схемы, такие, как PCIexpress, как показано на рисунке 10, в которых сигнал данных содержит встроенную синхронизирующую последовательность.

 

Рис. 10. Мультигигабитный SERDES (одно ведомое устройство)

 

Заметим, что первоначально PCIexpress была задумана как техника связи между платами (board-to-board); использование ее для связи между микросхемами (chip-to-chip) пришло позднее. В стандартных реализациях используются раздельные линии синхронизации для каждого устройства.
Минимальная конфигурация состоит из одной «связи» (×1), содержащей линию передачи и линию приема, в каждой из которых используется специальная дифференциальная сигнальная пара. Бóльших скоростей передачи данных можно достичь путем использования нескольких линий, что обычно обозначается как ×4, ×8 и т.д.
В настоящее время для пропускной способности одной линии связи обычно приводятся цифры 2,5 или 5,0 Гбит/с (в случае решений 10 Гбит/с таких скоростей добиваются, используя 4 линии с пропускной способностью 2,5 Гбит/с).
Однако приведенные цифры могут ввести в заблуждение. Проблема в том, что поток данных передается в закодированном виде, например по схеме 8/10, о которой уже упоминалось (для сетей обычно применяется родственная схема 64/66, тем не менее, в данной статье будет рассматриваться схема 8/10). Это означает, что для каждых 8 бит данных, которые требуется передать или принять, в конечном итоге реально используется 10 бит. Таким образом, для скорости линии связи (Link Rate) 2,5 Гбит/с соответствующая скорость передачи данных (Data Rate) на самом деле составит 2,5/10 × 8 = 2,0 Гбит/с.
Прежде чем пойти дальше, еще раз подчеркнем: в случае 10-Гбит/с сети Ethernet значение скорости линии Link Rate = 4 × 3,125 Гбит/c, при этом скорость данных Data Rate = 4 × 2,5 Гбит/c. Сравнивая параметры линий связи, важно соблюдать осторожность, так как одни, говоря о скорости передачи, подразумевают скорость передачи данных (Data Rate), в то время как другие — скорость линии связи (Link Rate), которая на 25% выше в случае кодирования 8/10.
Обратим внимание на то, что в сравнении с блоком CDR логика управления (Ctrl) довольно проста. И снова, в случае ведомого (АЦП) как функции CDR, так и функции Ctrl реализованы как аппаратная логика, а в случае ПЛИС CDR реализуется аппаратным макроблоком, в то время, как функция Ctrl — программированием связей.
Достоинства решений с мультигигабитным SERDES в том, что они чрезвычайно быстры и требуют малого количества выводов. Недостатки — дороговизна, увеличение площади кристалла и по­требляемой мощности, а также сложность использования.

 

Align Lock Loop приходит на помощь

Перед тем как сбросить завесу таинственности с Align Lock Loop (ALL), кратко проанализируем некоторые вопросы, имеющие особенное отношение к рассматриваемой теме. Начнем с того, что идеальное решение по организации ввода/вывода должно иметь следующие характерис-
тики:
– минимальное количество выводов;
– отсутствие необходимости распространения синхросигнала;
– единственная зона синхронизации (single clock domain);
– гибкость;
– простота использования;
– экономичность.
Что касается последнего пункта, то имеются в виду малые: стоимость, площадь кристалла, потребляемая мощность и сложность.
Теперь примем во внимание, что ПЛИС можно разделить на три основные категории:
– дешевые (например, семейства Cyclone/Spartan);
– дорогие (например, семейства Stratix/Virtex);
– очень дорогие (например, семейства StratixGX/VirtexPro).
Разумеется, доступные ресурсы представителей разных семейств ПЛИС различаются, однако у них есть и общее:
– память (от сотен тысяч до миллионов бит);
– логические элементы (от десят­ков-сотен до тысяч);
– входы/выходы (от сотен до тысяч);
– блоки DSP (сотни);
– блоки ФАПЧ (не меньше дюжины);
– блоки CDR (не меньше пяти).
Последние строки, показывающие количество блоков ФАПЧ и CDR, определяют разбиение ПЛИС на категории дешевых, дорогих и очень дорогих приборов. Именно отсюда вытекает концепция Align Lock Loop (ALL), которая не требует наличия ФАПЧ или CDR в ПЛИС. Чтобы понять, как это работает, рассмотрим ситуацию, показанную на рисунке 11.

 

Рис. 11. Align Lock Loop (одно ведомое устройство)

То, что блок CDR изображен меньшим блоком, чем функция ALL, — условность; данная схема используется только для иллюстрации того, каким образом части схемы связаны воедино. В реальности логика ALL — это малая часть функции CDR. Как обычно, ALL в ПЛИС мастера реализуется программированием связей, а ALL в ведомом — как аппаратная логика.
Идея заключается в том, что при включении питания системы мастер инициирует обмен настроечной последовательностью, при котором он посылает определенную последовательность символов (заметим, что мастеру не требуются ни ФАПЧ, ни CDR). Ведомый использует свой CDR для восстановления синхросигнала и данных. Данные проходят через блок коррекции фазы и затем передаются назад на микросхему мастера.
Микросхема мастера вводит в поток данных контрольные коды, которые используются блоком коррекции фазы ведомого устройства для модификации фазовых соотношений сигнала данных, который возвращается мастеру. В конечном итоге происходит полная синхронизация, и настроечный сеанс (длящийся менее микросекунды) заканчивается; ведомое устройство теперь может начинать передачу мастеру реальных данных.
Другой интересный момент заключается в том, что каждое ведомое устройство может использовать свою схему «природного кодирования». В случае 12-разрядного АЦП, к примеру, в аппаратном блоке ALL/CDR можно использовать принцип кодирования 12/14. То, что ALL в ПЛИС мастера полностью реализуется программированием связей, означает, что она (схема ALL) «протоколо-независима» и может быть сконфигурирована для использования различных требуемых схем кодирования.
Кроме того, тот факт, что ПЛИС мастера не требуются ни ФАПЧ, ни CDR, означает, что в данном случае могут быть использованы недорогие ПЛИС. Введение дополнительных ведомых микросхем требует только программирования новых функций ALL в ПЛИС. К тому же, все ведомые устройства можно настроить таким образом, чтобы ПЛИС работал с одной зоной синхронизации (single clock domain).
Конечно, при скоростях передачи данных от 300 Мбит/с до 1,5 Гбит/с отдельный ALL-канал имеет меньшую пропускную способность, чем соответствующая SERDES-линия. Однако разработчики могут использовать какую-либо LVDS-пару для реализации канала ALL, а несколько других каналов сгруппировать для увеличения полной пропускной способности.

 

Заключение

Концепция ALL представляется захватывающей идеей. Важно, чтобы производители устройств, таких, как АЦП, или поставщики IP, предлагающие CDR-функции, используемые в таких устройствах, были уверены в том, что это того стоит.
Производителя АЦП мало заботит, покупают ли пользователи его микросхем дешевые или дорогие ПЛИС, ведь это совсем другие устройства. Однако добавление в АЦП сравнительно простой логики, требуемой для реализации ALL, способно расширить область применения устройств: теперь их можно будет использовать как в традиционных разработках, так и в системах, основанных на ALL.
Представляется, что это должно привести к существенному росту продаж за счет инженеров, которые желают использовать недорогие ПЛИС.

Оставьте отзыв

Ваш емейл адрес не будет опубликован. Обязательные поля отмечены *