Добро пожаловать в новый выпуск проекта модуля вычислений Pi.MX8 SoM! В этом обновлении мы будем наносить последние штрихи на наш дизайн печатной платы и подготавливать дизайн к производству прототипа.
В последней статье мы завершили трассировку сигнальных слоев. Это была самая трудоемкая часть разработки печатной платы для модуля Pi.MX8. Однако перед нами все еще стоят две задачи, требующие не меньшего внимания: трассировка силовых плоскостей и настройка задержек сигналов.
Давайте начнем с силовых плоскостей. Я обычно предпочитаю проводить настройку задержек на последних этапах, поскольку меандры, необходимые для настройки длины, часто заполняют оставшееся пространство на плате. Например, размещение дополнительных переходных отверстий (VIAs), которое иногда может быть необходимо при трассировке силовых сетей, может потребовать от нас корректировки примитивов настройки длины для создания необходимого пространства. Заполняя оставшееся пространство примитивами настройки длины в последнюю очередь, мы можем избежать дополнительной доработки.
Доступные слои силовых плоскостей
Посмотрев на стек слоев, мы видим, что у нас есть два специализированных слоя питания. Эти слои отделены от соседних слоев земли тонким препрегом. Такое уплотнение слоев увеличивает емкость плоскостей с низкой индуктивностью и может помочь снизить импеданс системы распределения питания на высоких частотах.
Давайте сначала проложим линии питания для высоких токов. В нашем случае это основные и памятные линии для SoC i.MX8 и контроллера DRAM с микросхемой LPDDR4.
Основное питание и питание памяти для SoC
Линии VCC_ARM и VCC_SOC используют удаленное датчиковое управление, что означает, что узел обратной связи преобразователей напряжения не подключен к выходным конденсаторам рядом с MIC, а к питающим контактам i.MX8. Это делается для компенсации падения напряжения через плоскость питания или полигон. Поскольку ток в этих линиях может быть относительно высоким, а PMIC должен регулировать эти напряжения с высокой точностью, важно "измерять" напряжение непосредственно на нагрузке. На следующем рисунке показано падение напряжения через полигон питания:
Падение напряжения через полигон питания
Полигон питания для линии VCC_ARM проложен на слое 6. Трасса, проложенная близко к контуру полигона, является сигналом дистанционного измерения. В идеале мы хотели бы измерять напряжение дифференциально, чтобы компенсировать паразитные эффекты, вносимые током возвратного пути, и сделать обратную связь менее чувствительной к помехам, но в нашем случае это не будет необходимо. Мы будем следовать рекомендациям опорного дизайна.
Полигон VCC_SOC
Трасса обратной связи использует "сетевую перемычку" вблизи контактов SoC для подключения сети обратной связи к сети питания. Без использования сетевой перемычки нам пришлось бы вручную обеспечивать чистую изоляцию между трассой обратной связи и полигоном питания. Такой подход подвержен ошибкам. Сетевая перемычка - это просто посадочное место, состоящее из короткого сегмента трассы с двумя маленькими площадками на каждом конце. Установив тип компонента как сетевую перемычку, Altium Designer не создаст ошибку короткого замыкания для этого компонента.
Полигон VCC_ARM и линия питания DRAM проложены аналогичным образом на слое 5.
Выделенный полигон VCC_ARM и линия питания DRAM в фиолетовом цвете
Оставшиеся силовые шины распределены по слоям 5 и 6. Полигоны системного питания 1.8V и 3.3V охватывают всю плату, поскольку многие компоненты, подключенные к этим шинам, распределены по всей плате.
Последний шаг маршрутизации силовых плоскостей заключается в настройке анализа AC и DC PDN и проверке, находятся ли результаты в пределах границ значений импеданса, установленных руководством по аппаратному дизайну SoC.
Симуляция AC должна включать разделительные конденсаторы с точной эквивалентной моделью, характеристики выхода понижающего регулятора и геометрию разводки. Мы не будем подробно останавливаться на настройке симуляции в этой статье, но должны помнить о ней как о обязательном этапе проверки.
Целевой импеданс силовых шин
Симуляция DC требует только геометрии разводки и характеристик нагрузки SoC в качестве входных данных для расчета падения напряжения на силовых полигонах и выделения областей с чрезмерной плотностью тока.
С завершением разводки сети питания мы можем перейти к последнему пункту нашего списка задач - настройке задержек.
На модуле Pi.MX8 множество интерфейсов с строгими требованиями к времени и необходимостью настройки задержек. Мы рассмотрим самые критические интерфейсы и увидим, как мы можем использовать X-Signals для настройки задержек даже через несколько компонентов.
Начнем с интерфейса DRAM. Руководство по проектированию оборудования i.MX8 предоставляет всю необходимую информацию для настройки задержек. Прежде чем мы сможем приступить к корректировке любых трасс, мы должны сначала проверить, включена ли задержка корпуса в символ библиотеки схем.
NXP предоставляет времена задержки корпуса, которое является временем, необходимым сигналу для прохождения от шарика BGA i.MX8 к кремниевому чипу. Различные длины на интерпозере влияют на общее время задержки, поэтому важно учитывать их.
Задержка контактов корпуса в символе схемы
Мы можем использовать редактор списка библиотек схем для вставки всех задержек контактов корпуса из документа руководства по проектированию оборудования i.MX8 сразу, используя диалоговое окно умной вставки сетки.
Задержки контактов в формате таблицы через панель инструментов SCHLIB List
Требования к настройке задержек для интерфейса LPDDR4 описаны в руководстве по проектированию аппаратного обеспечения i.MX8. В руководстве группы зависимостей задержек классифицируются на группы часов, управления/команд и байтов. Временные окна для каждой группы ссылаются на сигналы часов и строба. Все дифференциальные сигналы должны быть согласованы до 1 пс между комплементарными сигналами в паре.
Требования к настройке задержек на печатной плате LPDDR4-4000
Сигналы в группе адреса/команды/управления должны соответствовать двум требованиям по времени. Одно требование определяет максимальную задержку между каждым сигналом в группе, в то время как второе требование определяет максимальное временное окно всей группы относительно сигнала часов.
Вот почему мы используем несколько групп сигналов X, чтобы обеспечить целевое использование правильных сигналов в рамках правил проектирования.
Классы сигналов X для настройки LPDDR4
При использовании правил настройки задержек с чередованием, мне нравится дополнительно отслеживать общие значения задержек в таблице Excel для целей документирования. Однако этот шаг является необязательным и зависит от личных предпочтений, поскольку все требования к времени могут быть определены в настройках правил Altium Designer.
Документация по настройке задержек в Excel
После того, как классы X-сигналов были определены и правила проектирования установлены, мы можем начать настройку задержек в разводке. Помимо настройки задержек внутри пары, большинство корректировок должно быть выполнено на линиях адреса/команд/управления:
Настройка задержек линий адреса/команд/управления
Сами данные линии практически не требуют настройки задержек. Вокруг пар сигналов часов, проложенных на верхнем слое, у нас есть достаточно места, которое мы можем использовать для настройки задержек:
Настройка задержек сигналов часов на верхнем слое
Как и в случае с сетью питания, нам необходимо провести верификационные симуляции для интерфейса DRAM. Нас особенно интересует, можем ли мы наблюдать эффекты перекрестных помех, поскольку части трассировок расположены относительно близко друг к другу. Как правило, следует сохранять расстояние в 3 раза больше толщины диэлектрика до соседних дорожек. Однако в этой статье мы не будем подробно останавливаться на настройке и деталях симуляции.
После завершения настройки задержек интерфейса DRAM давайте рассмотрим другое применение X-сигналов. Плата PiMX8 имеет два интерфейса, которые могут управлять внешним дисплеем - LVDS и MIPI-DSI.
MIPI-DSI также использует низковольтную дифференциальную сигнализацию (LVDS), поэтому мы можем использовать мультиплексор для выбора любого из этих интерфейсов, поскольку они имеют одинаковые технические характеристики. При использовании мультиплексора для переключения между интерфейсами, нам также необходимо учитывать, что любая маршрутизация, выполненная после мультиплексора (на общей стороне), повлияет на задержку как интерфейса MIPI-DSI, так и LVDS. Это можно учесть, создав отдельный класс X-сигналов для интерфейса MIPI-DSI и интерфейса LVDS, что позволяет более свободно настраивать задержку на печатной плате.
В этом примере, возможно, можно было бы избежать необходимости в таком подходе, если бы вся маршрутизация на общей стороне была настроена на строгое окно задержек, как между парами, так и от пары к паре. Однако, используя два отдельных класса X-сигналов, мы получаем лучший контроль над временным бюджетом каждого интерфейса.
X-сигналы позволяют нам преодолеть разрыв через мультиплексор и выполнить настройку длины для каждого интерфейса по всей длине сигнала до и после мультиплексора.
Тот же подход используется на интерфейсе PCIe для преодоления разрыва через последовательные конденсаторы AC связи.
LVDS подключен к мультиплексору
MIPI-DSI подключен к мультиплексору
Все высокоскоростные интерфейсы на плате Pi.MX8 настраиваются с задержкой с использованием X-сигналов, поскольку они обеспечивают более точную длину пути всего сигнала. Мы не будем рассматривать каждый интерфейс отдельно, поскольку настройка правил задержки и корректировка трассировки являются повторяющейся задачей, которая не сильно отличается в своем общем подходе между интерфейсами.
Это был последний шаг в завершении трассировки на плате Pi.MX8. Следующий этап - проведение тщательной проверки правил проектирования и экспорт набора данных для производства.
В следующем обновлении мы рассмотрим платы и начнем собирать некоторые прототипы. Это будет последний шаг к первому включению модуля Pi.MX8, так что оставайтесь с нами!