Определение путей высокоскоростных сигналов с помощью xSignal
Задача
С постоянным ростом скоростей переключения устройств возникает задача поддержания целостности сигнала и обеспечения синхронизации сигналов. Целостностью сигналов можно управлять посредством трассировки с управляемым импедансом, что достигается путем тщательного определения как стекапа платы, так и ширины трассировки для каждого слоя.
Обеспечение синхронизации достигается путем согласования длин трасс путей сигналов. Для набора путей двухвыводных сигналов, каждый из которых проходит от одного выходного вывода к одному входному, расчет и сравнение длин является прямолинейным процессом. Однако дело обстоит иначе для многих типовых конструктивных решений, где в пути сигнала может быть последовательный оконечный компонент или где в сигнале может быть больше двух выводов, которые могут быть растрассированы с помощью сбалансированной Т-образной или сквозной топологии, как показано на изображении ниже.
Решение
Работа конструктора заключается в реализации технических требований, таких как максимально допустимая длина трасс в соответствии с допуском синхронизации, в виде набора правил проектирования, например правила Length для обеспечения требований к синхронизации и правила Matched Length для обнаружения потенциального рассогласования.
Затем конструктор рассматривает сигналы с точки зрения их функции (например: "Этот адресный сигнал должен быть проложен от этого соединителя до каждого устройства памяти. Для этого я проведу трассировку с использованием сквозной топологии с оконечным резистором на конце. Может также понадобиться последовательный оконечный резистор на источнике."). Хотя адрес A0 проходит через оконечный резистор, для конструктора этот сигнал остается сигналом A0 по другую сторону от этого резистора.
Но редактор плат видит каждый сигнал просто как набор соединенных выводов (обычно эти наборы называются цепями) – цепь A0 идет от вывода соединителя к одному выводу запоминающего устройства, затем к другому выводу запоминающего устройства и т.д. При добавлении оконечного резистора эта линия адреса становится двумя отдельными цепями, что усложняет проектировщику определение важных конструктивных требований, таких как правила проектирования Length и Matched Length.
Чтобы справиться с этой задачей, существует функциональная возможность под названием xSignals, которая позволяет корректно обрабатывать пути высокоскоростных сигналов, коими они являются, т.е. как пути сигналов, которые проходят от источника до точки назначения через оконечные компоненты и ветви.
Создание нового xSignal
xSignal является заданным пользователем путем сигнала между двумя узлами. Это могут быть два узла одной цепи или два узла разных цепей.
xSignal определяются следующими способами:
- С помощью xSignals Multi-Chip Wizard. Это самый распространенный подход к созданию xSignals, который подробно рассмотрен на странице xSignals Multi-Chip Wizard.
Либо можно использовать другие способы, при которых сначала выделяются нужные объекты, после чего выбирается подходящая команда:
-
Создание отдельного xSignal на основе выделенных контактных площадок. Выделите нужную начальную и конечную контактную площадку (это могут быть контактные площадки разных цепей, если есть последовательный оконечный компонент). Контактные площадки могут быть выделены непосредственно в проектной области либо можно использовать панель PCB в режиме Nets для поиска и выделения контактных площадок (как показано на изображении ниже). Когда контактные площадки выделены, щелкните ПКМ по выделенной контактной площадке в проектной области и запустите команду xSignals » Create xSignal from Selected Pins либо щелкните ПКМ одной из выделенных контактных площадок в панели PCB и запустите команду Create xSignal. Новый xSignal будет приведен в списке в режиме xSignals панели PCB.
- Выделите исходный компонент, щелкните ПКМ по нему и выберите команду xSignal » Create xSignals between Components из контекстного меню. Будет открыто диалоговое окно Create xSignals Between Components, где этот компонент будет выделен. Описание этого диалогового окна приведено ниже.
- Выделите один или множество последовательных компонентов в проектной области, щелкните ПКМ по одному из них и выберите команду xSignal » Create xSignals from Connected Nets из контекстного меню. Будет открыто диалоговое окно Create xSignals From Connected Nets, где будут выделены этот компонент и подключенные к нему цепи. Описание этого диалогового окна приведено ниже.
- Также могут возникнуть ситуации, когда необходимо создать xSignal внутри существующего xSignal. В этом случае можно использовать режим xSignal панели PCB. Убедитесь, что в верхней части панели включена опция Select, найдите существующий xSignal, выделите нужные контактные площадки в разделе xSignal Primitives панели, щелкните ПКМ по одной из выделенных контактных площадок в проектной области и используйте способ, описанный под пунктом 2 этого списка, чтобы завершить процесс.
Диалоговое окно Create xSignals Between Components
Если необходимо определить большое количество xSignals, эффективно использовать диалоговое окно Create xSignals Between Components, которое вызывается с помощью команды Design » xSignals » Create xSignals. Слева будут представлены исходные компоненты (Source Components) и связанные с ними цепи (Source Component Nets), справа будут представлены целевые компоненты (Destination Components), что позволяет создать один или множество xSignals в одно действие. Этот подход состоит в следующем:
- Выберите исходный компонент.
- Выберите целевые компоненты.
- Выберите нужные исходные цепи.
- Нажмите кнопку Analyze. Система найдет все возможные xSignal между выбранными компонентами, которые включают в себя выбранные цепи, и представит их список в разделе xSignals. Обратите внимание, что алгоритм анализа следует текущей топологии выбранных цепей, и это влияет на предлагаемые xSignal (подробнее об этом ниже).
- После выполнения анализа, в нижнем разделе диалогового окна будет приведен список возможных xSignals, и все они будут выбраны для создания. Тщательно проверьте список предложенных xSignal и оставьте включенными только те, которые необходимы.
- Выберите нужный класс в нижней части диалогового окна или введите название, чтобы создать новый класс. Если класс не выбран, xSignal также будут созданы, и вы сможете их добавить в любой класс xSignal в диалоговом окне Object Class Explorer (Design » Classes).
- Нажмите OK для создания xSignal.
Диалоговое окно будет закрыто, и вы вернетесь в проектную область. Новые xSignal будут приведены в режиме xSignals панели PCB.
Диалоговое окно Create xSignals From Connected Nets
Хорошим подходом к созданию xSignal, которые включают в себя последовательные оконечные компоненты, является использование команды Create xSignals from connected nets. Эта команда доступна, когда выделен какой-либо компонент, в подменю Design » xSignals главного меню или подменю xSignals контекстного меню.
Эта команда разработана для создания xSignal от выделенного последовательного оконечного компонента, такого как резистор или конденсатор. Она поддерживает как один или множество дискретных компонентов, так и один или множество групповых компонентов, таких как резисторные матрицы. После запуска команды будет открыто диалоговое окно Create xSignals From Connected Nets.
Роль топологии цепей
Когда вы определяете xSignal, он проходит между двумя узлами или контактными площадками. Однако при выборе этого xSignal в режиме xSignals панели PCB он фактически следует пути линий соединения, которые проходят между этими двумя контактными площадками, обозначая, что это путь, по которому, как считает система, xSignal будет растрассирован. Причина, по которой так происходит, является следование топологии, заданной для этой цепи. Топология цепи определяется применимым правилом проектирования Routing Topology. Топологией по умолчанию является кратчайшая (Shortest).
Ниже показана простая анимация, показывающая ЦПУ, соединенный с четырьмя чипами памяти DDR3, которые планируется растрассировать с помощью сквозной топологии. Класс DRAM_A2 xSignal содержит четыре xSignal. На анимации сначала выбирается класс, затем по очереди выбирается каждый xSignal. Вы можете увидеть, как путь xSignal следует топологии цепи, которая в данном случае задана кратчайшей (по умолчанию).
Команды создания xSignal
Помимо команд Design » xSignals » Create xSignals, в подменю xSignals будут доступны другие команды создания xSignal при соблюдении определенных условий.
Ниже приведена сводка по командам и условия, при которых они доступны:
Команда | Описание |
---|---|
Create xSignal from selected pins | Сразу создает один xSignal. Эта команда доступна, когда в проектной области выделено две или больше контактных площадок. Это та же самая команда, которая доступна при щелчке ПКМ по одной из выделенных контактных площадок. |
Create xSignals between components | Эта команда доступна, когда в проектной области выделены компоненты. При ее запуске будет открыто диалоговое окно Create xSignals Between Components, где эти компоненты будут предварительно выбраны. Убедитесь, что выбраны нужные исходные и целевые компоненты, после чего завершите процесс анализа/создания. |
Create xSignals from connected nets | Используйте эту команду, если есть один или множество последовательных оконечных компонентов, для которых нужно создать xSignal. Выделите оконечные компоненты, затем запустите команду, чтобы открыть диалоговое окно Create xSignals from Connected Nets, готовое к завершению процесса создания набора xSignal. |
Create xSignals | Открывает диалоговое окно Create xSignals Between Components. Эта команда доступна всегда. |
Определение точки ветвления в сбалансированной Т-образной топологии
Одна из сложностей стратегии сбалансированной Т-образной трассировки заключается в выравнивании длины стволов и ветвей после точки ветвления. Доступными узлами в цепи являются только контактные площадки, поэтому нельзя определить отдельные xSignal для ствола и от точки ветвления до конца каждой ветви. Точки ветвления обозначены красными кругами на изображении ниже.
Одним из способов решения этой проблемы является добавление в цепь компонента из одного вывода. Создайте компонент с одной контактной площадкой, размер которой соответствует размеру используемых в конструкции переходных отверстий. Если контактная площадка компонента точки ветвления является однослойной, то ее также можно использовать в сочетании с глухим или скрытым переходным отверстием путем его размещения на начальном или конечном слое переходного отверстия, что предоставляет полную гибкость того, как будет создана трассировка. Если вы хотите включить компонент точки ветвления только на плату, задайте этому компоненту тип (Type) Mechanical
, чтобы исключить его из состава изделия и предотвратить проблемы синхронизации со схемой. Если вы планируете включить компонент точки ветвления в схему, задайте тип компонента Standard (no BOM)
.
Когда точка ветвления является узлом в цепи, вы можете определить xSignal только для ствола, для каждой главной ветви и каждой второстепенной ветви, если необходимо. Это может использоваться для определения области действия правил проектирования согласования длины, что предоставляет конструктору полный контроль над точным выполнением выравнивания длин.
Работа с панелью xSignal
Панель PCB включает в себя режим xSignals. Выберите его из выпадающего списка в верхней части панели, чтобы отобразить информацию обо всех классах xSignal (список xSignal Classes), всех xSignals (список xSignals) и их примитивах (список Primitives). Режим xSignals панели используется для изучения существующих xSignal и управления ими.
Щелкните ПКМ в нужном разделе панели для выполнения задач редактирования, связанных xSignal, в том числе:
- Добавление (Add), удаление (Delete) и изменение (Edit) элементов класса xSignal – классы xSignal крайне важны для корректного создания правил. То, как xSignal объединяются в классы, будет зависеть от того, какие длины сигналы цепей должны быть выровнены, что определяется выбранной стратегией трассировки. Команды Add и Delete доступны в контекстном меню. Дважды щелкните ЛКМ по существующему классу, чтобы отредактировать его.
- Изменение цвета xSignal (изменить цвет всех линий соединения в xSignal). Это можно выполнить для класса xSignal или выбранных xSignal. Использование цвета может упростить работу с платой со множеством объектов. Помимо изменения цвета линий соединения, в качестве оверлея трассировки также можно использовать цвет цепи, что очень помогает идентифицировать нужные цепи в процессе трассировки.
Отображение и скрытие линий xSignal
При щелчке ЛКМ в панели для выделения xSignal к проектной области будет применено затенение, выделение и масштабирование в зависимости от настроек соответствующих опций в верхней части панели. Если xSignal уже растрассирован, будет показана тонкая линия вдоль пути, который система использует для расчета длины сигнала xSignal.
Удаление xSignal
Выделите xSignal в панели и нажмите кнопку Delete под списком xSignals. Либо щелкните ПКМ и выберите команду Delete из контекстного меню или нажмите клавишу Delete
.
Ключевые слова xSignal
Редактор плат включает в себя мощный и доступный для сложной настройки механизм фильтрации, который используется для определения объектов при их поиске в проектной области, для применения правил при выполнении интерактивных и автоматических задачах конструирования и для проверки на соответствие правилам. Конструктор задает механизму фильтрации интересующие его объекты путем написания запроса с помощью ключевых слов, которые распознаются этим механизмом.
Для использования в фильтрах правил проектирования и проектной области доступны ключевые слова xSignal, приведенные ниже.
Ключевые слова проверки принадлежности
- InxSignal – находится ли объект в указанном xSignal, например
InxSignal('DRAM_A0_PP1')
. - InxSignalClass – находится ли объект в указанном классе xSignal, например
InxSignalClass('PCIE')
. - IsxSignal – является ли объект xSignal с указанным названием, например
IsxSignal('DRAM_A0_PP1')
.
Ключевые слова проверки атрибутов
- InAnyxSignal – входит ли объект в какой-либо xSignal, например
InAnyxSignal
.
Поддержка правил проектирования для xSignals
Правила проектирования – это способ перевода конструктивных требований в набор инструкций, которые редактор плат может понять и выполнить. Правила могут проверяться при размещении объектов, что называется онлайн-проверкой правил проектирования (Online DRC), или в качестве пост-процесса, что называется пакетной проверкой правил проектирования (Batch DRC). xSignal можно использовать для определения объектов, к которым должны быть применены правила.
► Узнайте больше о Правилах проектирования
► Узнайте больше о Согласовании длины
Правило Matched Length
Правило проектирования Matched Length используется для обеспечения того, чтобы длины указанных цепей находились в заданном диапазоне. Это правило крайне важно для высокоскоростных конструкций, где задачей является не просто определение того, сколько времени займет прохождение сигналов (что определяется их общей длиной), а того, насколько важно, чтобы указанные сигналы приходили одновременно. В зависимости от скоростей переключения сигналов, назначения сигнала и материалов платы, допустимая разница может составлять как целых 500 милов, так и всего 1 мил.
На изображении ниже показан пример правила проектирования Matched Length, настроенное на действие на xSignal в классе xSignal PCIE
и на проверку разницы длины внутри каждой дифференциальной пары в этом классе xSignal. У каждой пары в классе должны быть растрассированные длины, которые приводят к рассогласованию задержки (Delay Tolerance) не более 2ps
между двумя цепями в этой паре.
На изображении ниже показан класс цепей xSignal PCIE_TX
, выбранный в панели, и эти xSignal, выделенные в проектной области.
Правило Length
Правило проектирования Length используется для обеспечения того, чтобы общая длина трассировки находилась в заданном диапазоне. Это правило обычно используется для того, чтобы целевые цепи не превышали указанную длину, например, чтобы обеспечить соответствие требованиям по времени прохождения сигнала. Правило проектирования Length учитывает запросы для xSignal, перечисленные выше.
Правило Return Path
Правило проектирования Return Path проверяет непрерывность возвратного пути сигнала на указанных опорных слоях выше и ниже сигналов, заданных в правиле. Возвратный пути может быть сформирован из заполнений, регионов и заливок полигоном, размещенных на сигнальных слоях, или это может быть экранный слой.
Слоями возвратного пути являются опорные слои, заданные в выбранном профиле импеданса. Добавьте новое правило проектирования Return Path в категорию правил High Speed
.
На изображении ниже показано нарушение правила Return Path, где в полигоне возвратного пути xSignal есть отверстие для перехода.
Точный расчет длины
Ключевым требованием к определению правил проектирования для высокоскоростных конструкций является точный расчет длин трассировки. Традиционным подходом к расчету длины сигналов является суммирование длин центральных линий всех сегментов трассировки, а также вертикальных расстояний, определенных высотами переходных отверстий исходя из толщины платы.
Это не подходит для высокоскоростных конструкций по ряду причин, таких как:
- Объекты друг над другом и перекрывающиеся объекты – алгоритм, который просто складывает длину центральных линий всех объектов в цепи, не учитывает объекты друг над другом или перекрывающиеся объекты.
- Прохождение пути трассы внутри объекта – часто объекты трассировки полностью находятся внутри контактной площадки или переходного отверстия, что может привести к ненужному слагаемому общей длины, как показано на первом изображении ниже. На втором изображении показан правильный способ расчета длины, когда в трассировку входит заполнение.
- Длина переходных отверстия – глухие и скрытые переходные отверстия не проходят через все слои платы, поэтому толщина платы не является достаточно точной для определения вертикальной длины. Нужно использовать фактическую высоту, беря в расчет толщины проводящих и диэлектрических слоев, через которые проходит переходное отверстие.
Редактор плат рассчитывает максимально точную длину трассировки.
Задержка сигнала от вывода к корпусу
В каждой высокоскоростной конструкции с частотой свыше 500 МГц провод соединения с чипом вносит задержку в сигнал. Эта задержка внутри устройства называется задержкой сигнала от вывода к корпусу (pin-package delay). Даже если два устройства полностью совместимы по выводам с точки зрения проекта и платы, пролетное время в корпусе может отличаться для разных устройств, что необходимо принимать в расчет. Информацию о пролетном времени можно найти в документе IBIS 6 устройства, и ее нужно учитывать на этапе планирования входов/выходов или после синтеза ПЛИС. У всех производителей устройств должна быть возможность предоставить задержки в корпусе, указанную как задержку в пикосекундах или как длину.
Задержку можно включить в проект как длину от вывода к корпусу (Pin Package Length) или как задержку распространения (Propagation Delay) с помощью соответствующих полей в свойствах вывода в редакторе схем или контактной площадки/переходного отверстия в редакторе плат. Введенные значения учитываются следующим образом:
Pin Package Length – все длины от вывода к корпусу в каждой цепи добавляются в редакторе плат для получения общей длины внутри устройств, которая включается в общую длину сигнала (Signal Length) этой цепи. Откройте режим Nets панели PCB, чтобы узнать больше о длине сигнала.
Propagation Delay – все заданные пользователем значения задержки, определенные для выводов/контактных площадок и переходных отверстий в каждой цепи, добавляются в задержку трассировки этой цепи в редакторе плат. Задержка трассировки автоматически рассчитывается решателем полей Simbeor®, встроенным в Layer Stack Manager. Задержки в контактных площадках и переходных отверстиях не рассчитываются автоматически, но могут быть заданы пользователем.
Включение задержки в схеме
Длины от вывода к корпусу могут быть заданы в качестве атрибута вывода схемного компонента в панели Properties в режиме Pin. Система по умолчанию использует единицы измерения документа. Если необходимо, введите единицы измерения вместе со значением.
Определение задержки в редакторе плат
Значения длины от вывода к корпусу и задержки распространения передаются в редактор плат, что можно увидеть в режиме Pad панели Properties.
Изучение длины от вывода к корпусу и задержки распространения в панели PCB
Значение Pin/Pkg Length автоматически включается в расчеты длин сигналов (Signal Length), которые отображаются в различных режимах панели PCB. Выберите режим Nets панели, чтобы изучить (или изменить) значение Pin/Pkg Length выводов в выбранной цепи. Обратите внимание, что столбец Routed Length отображает длину трассировки, а столбец Signal Length отражает длину трассировки плюс все длины внутри устройств в этой цепи.
На изображении ниже столбец Delay показывает, что есть две пары xSignal, которые не соответствуют правилу проектирования Matched Length. Поскольку подсвечиваются значения в столбце Delay, правило настроено на использование единиц измерения задержки, а не длины.
Как длина включается в xSignal
Значение Pin/Pkg Length автоматически включается в общую длину xSignal, когда:
- Сигнал входит в определение xSignal.
- Эта контактная площадка не соединена в сквозной трассировке (есть только одна трасса, соединенная с этой контактной площадкой).
Терминология цепей
В редакторе плат используется следующая терминология:
- Net (Цепь) – набор выводов компонентов (узлов), соединенных между собой. Порядок соединения этих узлов называется топологией. Топологией по умолчанию является кратчайшая.
- From-To (От-До) – концептуально, From-To проходит между двумя узлами в цепи. From-To могут быть созданы в соответствии с топологией или расположением узлов в этой цепи. Например, топология цепи может идти от R1-1 к U1-5 к U3-2 до R5-2. У этой цепи может быть три From-To: от R1-1 до U1-5, от U1-5 до U3-2 и от U3-2 до R5-2. При изменении топологии изменяются и возможные From-To. Создание From-To осуществляется в режиме From-To панели PCB нажатием кнопки Generate для их создания в зависимости от топологии или выделением двух контактных площадок и нажатием кнопки Add From To.
- xSignal – определенный пользователем набор узлов внутри одной цепи (от одного узла до другого) или комбинации двух цепей, которые включают в себя последовательный компонент, например оконечный резистор.