PCIe, диагностика и улучшение глазковой диаграммы

Я реализовал дизайн, который использует PCIe. Он несколько отличается тем, что интерфейс PCIe используется в качестве канала связи между чипами на одной печатной плате (например, без разъема PCIe).

Корневое сложное устройство — это Freescale i.MX6, совместимое с PCIe Gen 2, а устройство, с которым я общаюсь, — это WiFi-модуль Marvell, который является устройством, совместимым с PCIe Gen 3. Это однополосный интерфейс, работающий на скорости 2,5 Гбит/с.

Я провел некоторые измерения целостности сигнала, припаяв высокоскоростной осциллограф с соответствующими дифференциальными датчиками прямо к другой стороне встроенных колпачков, показанных ниже:

введите описание изображения здесь

Для часов глазковая диаграмма выглядит неплохо:

введите описание изображения здесь

А вот данных TX не так много:

введите описание изображения здесь

Чип WiFi имеет встроенные терминаторы, поэтому я не думаю, что мне нужны какие-либо дополнительные терминаторы, но я могу ошибаться в этом.

Я нашел несколько регистров, которые можно установить в процессоре i.MX6 для периферийного устройства PCIe, но я не совсем уверен, что они на самом деле делают. Немного проб и ошибок тоже далеко не ушли.

введите описание изображения здесь

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

Ваше здоровье!

классный вопрос. Надеюсь увидеть хорошие ответы.
Где вы измеряете свой глаз?
И на что настроены эти регистры?
Пара вопросов: в каком ТХ проблема? с i.MX6 на Marvell или с Marvell на i.MX6? Какую фильтрацию питания вы настроили вокруг неисправного передатчика или его шин питания тактовых импульсов? Каковы текущие значения этих регистров?
@SomeHardwareGuy Я измеряю глазок передатчика прямо по другую сторону обведенных конденсаторов. С точки зрения компоновки конденсаторы для часов и TX находятся рядом с чипом WiFi. Общее расстояние, на которое направляются пары, составляет около 2,5 дюймов. i.MX6 на самом деле является частью SOM, который подключается к разъему SO-DIMM, и я разработал только плату, которая «несет» этот SOM и чип WiFi.
@akohlsmith & SomeHardwareGuy Сейчас значения примерно средние и основаны на их совете разработчиков. Я считаю, что только два из 5 регистров действительно имеют значение в любой момент времени. Кажется, что регистр FULL_SWING действует, а LOW_SWING - нет... я не определил, какой из них активен, но я работаю с поддержкой Freescale, чтобы понять, что такое значения pipe0_tx_swing и pipe0_tx_deemph, поскольку их больше нигде нет в документация. Я сообщу, если я узнаю больше об этом.
@akohlsmith, как упоминалось выше, я использую SOM, поэтому фильтрация питания, идущая от ИС управления питанием i.MX6 к фактическим рельсам, обрабатывается конструкцией SOM. На моей плате я подаю 3,3 В от силового модуля TI, который имеет довольно низкую пульсацию, 10 мкФ шунтирования и конденсаторы 100 нФ для низкочастотного шума и ограничения диапазона пФ для радиочастотного шума.

Ответы (1)

Есть довольно много вещей, которые сделают это с вами.

Вы не указали длину интерфейса. Я часто подключаю чип к чипу PCIe, и вам действительно нужно принять это во внимание, поскольку вы получите затухание примерно 0,18 дБ на дюйм из-за потерь на скин-эффекте и около 0,5 дБ на дюйм из-за диэлектрического поглощения на «обычном» FR4.

Я думаю, вы сможете получить более точные цифры из таблицы материалов печатной платы, если загрузите ее и посмотрите на тангенс угла потерь. Взгляните на Isola 370HR для типичного описания. Приведенные выше цифры довольно точны для частоты 5 ГГц. При скорости 2,5 Гбит цифры немного ниже, с общими потерями ~ 0,4 дБ на дюйм.

Я предполагаю, что помимо коммутационных и разделительных конденсаторов вы используете однослойную маршрутизацию для интерфейса. Переходы слоев могут легко сделать очень неприятные вещи с сигналом. Контролируемый импеданс будет немного отличаться от слоя к слою, и отражения являются естественным результатом (существуют способы успешной многослойной маршрутизации, но для этого требуется большая осторожность и некоторые необычные приемы).

Для PCI Express (и Infiniband, если на то пошло) скорость нарастания и спада сигнала в передатчике имеет минимальное время нарастания и спада, чтобы свести к минимуму проблемы с электромагнитными помехами, и это время составляет 0,25 UI, что приводит к артефактам передачи сигналов 10 ГГц на каналах 2-го поколения. и артефакты 5 ГГц в поколении 1, которые необходимо учитывать.

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

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

Другие вопросы, на которые вы можете обратить внимание:

Где относительно передатчика конденсаторы связи? Они должны быть как можно ближе к передающим контактам. Как только они превысят половину длины волны 10 ГГц (около 0,6 дюйма на FR4) [удвоить это расстояние для каналов 2,5 Гбит/с], они определенно будут отражать энергию.

У меня были проблемы с геометрией конденсаторов 0402 или больше в PCI Express gen. 2, и теперь я использую устройства обратной геометрии (0204) для уменьшения эффективной последовательной индуктивности. Кажется, они очень хорошо справляются со своей задачей.

Глядя внимательно на глазковую диаграмму для переходных битов (кстати, у вас хороший прицел - это то, что вам нужно для этого), кажется, что начальный привод сигнала управляет оконечной линией (сигнал достигает 0,5 В (номинальное) в классической манере линии передачи). Это не особенно длинная линия (время прохождения туда и обратно - это время, когда сигнал достигает полного V [номинал]).

вы говорите, что канал работает на скорости 2,5 Гбит/с (поколение 1), и это то, что показывают трассировки осциллографа, но вы можете поэкспериментировать с полем устранения акцента (посмотрите в справочном руководстве, а также в листе электрических данных). (см. примечание ниже). «Стандартные» значения деакцентирования предназначены для номинальной ссылки, а не встроенной ссылки, такой как у вас здесь (и что я также регулярно делаю). Если вы можете получить его примерно до 6 дБ, вы можете получить лучшие результаты.

Номинальное снижение акцента составляет 3,5 дБ для Gen 1 и 6 дБ для Gen2. Я отмечаю, что приведенное выше поле, по-видимому, подразумевает, что канал Gen 2 составляет 3,5 дБ — вы можете немного покопаться в этом. Ссылка, которая у вас есть, требует как минимум 3,5 дБ ослабления акцента.

Обратите внимание, что глаз у приемника будет совсем другим, но это важно . В качестве эксперимента прочитайте счетчики ошибок в процессоре (большинство из них имеют счетчик повторных попыток); если вы не видите существенных ошибок, возможно, вы гонитесь за чем-то, что на самом деле не является проблемой. Если вы видите большое количество ошибок, возможно, что-то из этого может помочь.

И еще: чрезмерные амплитуды запуска и расфокусировки так же плохи , как и слишком низкие.

Может быть, это поможет вам немного: Надеюсь на это.

Примечание. Freescale документирует все, просто иногда он находится не там, где вы ожидаете его найти. Убедитесь, что у вас также есть последние исправления устройства.

Обновить . Добавлены примечания о геометрии конденсаторов.

До узла 2,5 Гбит/с устройства 0402 работают нормально. Мой удобный калькулятор показывает, что типичное устройство 0402 имеет импеданс около 10 Ом (индуктивный) на этой частоте и 21 Ом на 5 ГГц (самая высокая интересующая частота). Это не так уж плохо для дифференциальной системы на 100 Ом, так как эффективное сопротивление тесно связанной пары несколько меньше, чем у прямого сложения.

Собственный резонанс для этого устройства составляет 19 МГц, что значительно ниже всех интересующих частот, поэтому любой фазовый шум возникает из-за ESL. Сохранение импеданса ниже примерно 1/3 эффективного импеданса дорожки означает, что фазовый шум (и, следовательно, дополнительная межсимвольная интерференция), который мы получим, будет находиться в диапазоне от 1 до 17 градусов (односторонняя дорожка от тесно связанной пары обычно имеет (Z (diff)/2)*1,25, поэтому для 100 diff несимметричный импеданс составляет около 65 Ом). Это количество фазового шума управляемо.

На частоте 10 ГГц эффективное сопротивление составляет около 44 Ом и может начать мешать дифференциальной паре, внося чрезмерный фазовый шум в интересующую полосу частот, поскольку максимальная фаза теперь составляет около 34 градусов. Хотя я успешно выполнил Gen 2 с устройствами 0402, у меня также были проблемы с более длительными пробегами, и теперь я использую устройства с обратной геометрией 0204 для этой скорости и выше.

Для каналов с кодированием 8b/10b интересующая полоса частот находится в диапазоне от битовой скорости/5 до битовой скорости * 2. Нижний предел ограничен кодированием длины серии, а верхний предел ограничен требованием спецификации для минимального времени нарастания и спада. .

ESL для различных геометрий:

0402: около 700рН

0204: около 300 рН

0805: около 1 нФ

Обновление Добавлен комментарий о 50% начальной амплитуды запуска.

Рассмотрим линию передачи, заканчивающуюся в источнике и в пункте назначения при характеристическом импедансе линии Z0.

При первоначальном запуске, если длина линии превышает длину волны сигнала, точка запуска будет равна 50% от амплитуды запуска из-за эффекта делителя напряжения (передатчик в этой точке видит только линию передачи).

Как только энергия достигает точки назначения и начинает подниматься до точки 50%, энергия в источнике эффективно «заполняет» линию энергией и достигает полной амплитуды запуска. Строго говоря, линия передачи в точке назначения видит делитель напряжения, и эффект делителя в источнике исчезает по мере приближения выхода к постоянному току (имея в виду, что эффект линии передачи применим только к переходам).

Это также можно представить как 50-процентный уровень энергии, движущийся вниз по линии передачи к конечному завершению, а затем отражающийся обратно на полном уровне. Вот почему мы видим «время прохождения туда и обратно» в точке 50% в любой точке линии.

Ваш график показывает именно такое поведение в точке линии, которая еще не находится в порту назначения , потому что эта точка 50% фактически движется вдоль линии.

В приемнике, как только энергия достигает точки 50%, полная энергия линии следует, и напряжение в приемнике продолжает расти, обеспечивая плавный переход от одного уровня к другому.

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

Это обсуждение справедливо как для дифференциальных сигналов, так и для несимметричных.

Таким образом, ваш график выше показывает классическое поведение линии передачи с небольшими отклонениями от ожидаемого поведения. На самом деле, это один из самых чистых глазков передатчика, которые я когда-либо видел.

Хороший ответ. Может быть, добавить ссылку или какие-то измерения, где вы видите отражения от ваших кепок при наличии каких-либо серьезных потерь? Я никогда не видел этого и считаю, что это скорее миф.
В комментариях под постом я уточнил, что длина составляет около 2,5 дюймов. На самом деле мы использовали Isola 370HR и довольно тщательно продумали компоновку. Сказав, что мы также используем SOM, что делает практически невозможным размещение крышек рядом с передатчиком. Я измеряю со стороны приемника соединительных колпачков, которые находятся как можно ближе к приемнику, прежде чем трассы упадут во внутренний слой с контролируемым импедансом.
Сказав выше красивый ответ. Я отмечу его правильным, даже если это не приведет непосредственно к решению моей конкретной проблемы, поскольку в нем так много полезных знаний. Любые предложения для хороших ресурсов по этой теме? Я считаю, что на самом деле практические знания заперты в Power Points и иногда в официальных документах.
Рольф: колпачки будут вызывать некоторое отражение, если они находятся на приличном расстоянии, и с этим можно справиться, но его необходимо распознать, особенно если сигнал должен исходить от внутреннего слоя к колпачкам и от них, добавив пару переходы. Разрыв невелик, но если бюджет ссылок увеличивается, это может стать той соломинкой, которая сломала хребет верблюду.
Еще несколько вопросов, если не возражаете! Что вы имеете в виду, когда сравниваете начальное 0,5 В с Vfull и упоминаете время в оба конца ...? Вы хотите сказать, что первая часть измеряет отражение и сигнал, а последняя часть — просто сигнал? Уместно ли это видеть или плохо? В любом случае, чтобы удалить его?
Вы принудительно переводите свою ссылку в режим polling.compliance, чтобы выполнить это тестирование, или вы просто делаете это с переходами кодирования 8b/10b? "Принимающий" чип должен быть отключен или его нужно перевести в какой-то определенный режим? Прямо сейчас чип WiFi просто включен и ничего особенного не делает.
Для большинства тестов я просто позволяю ссылке работать нормально, и это нормально для более чем 99% всех тестов. Понимание машин состояний обнаружения и опроса невероятно полезно для ссылок, которые не работают должным образом, и именно здесь я пытаюсь принудительно установить определенные состояния.
Чипу Wi-Fi не нужно делать ничего особенного — по статистике глазковая диаграмма, которую вы получите, не должна изменяться из-за трафика, поскольку канал шифруется через LFSR (иногда известный как PRBS), который поддерживает постоянную спектральную мощность. плотность при усреднении за длительный период времени (по сравнению с битовым временем). В этом случае большая часть трафика, вероятно, приходится на упорядоченный набор «бездействующий».