Трассировка дифференциальных пар
Главная страница: Трассировка
В дифференциальной системе передача сигнала осуществляется через пару взаимосвязанных проводников, один из которых переносит сигнал, а второй – равный, но противоположный по знаку сигнал. Дифференциальная передача сигнала разработана для тех ситуаций, когда логическая «земля» источника сигнала не может быть должным образом соединена с логической «землей» нагрузки. Дифференциальная передача сигнала не восприимчива к электрическим шумам – основным помехам, присутствующим в электронных изделиях. Другим важным преимуществом дифференциальной передачи сигналов является минимизация электромагнитных излучений, создаваемых сигнальной парой.
Трассировка дифференциальной пары на плате – это метод создания сбалансированной передающей системы, способной проводить дифференциальные (прямой и противоположный) сигналы на печатной плате. Обычно эта дифференциальная трассировка будет взаимодействовать с внешней дифференциальной передающей системой, такой как соединитель или кабель.
Важно учитывать, что в то время как коэффициент связи, достигаемый в витой паре, может быть более 99%, то в трассировке дифференциальной пары он обычно меньше 50%. По мнению экспертов, задачей трассировки на плате является не достижение определенного дифференциального импеданса, а обеспечение качественной передачи дифференциального сигнала целевому компоненту от внешнего кабеля.
Согласно Ли Ритчи (Lee Ritchey), признанному эксперту в области проектирования быстродействующих плат, успешная дифференциальная передача требует следующего:
- Задать каждому из трассируемых сигналов импеданс, равный половине импеданса входящего дифференциального кабеля.
- Каждая из двух сигнальных линий корректно подключена к приемнику с собственным характеристическим импедансом.
- Две линии должны иметь длину, одинаковую в пределах, допустимых семейством микросхем и используемой в проекте частотой. Необходимо уделить внимание сохранению синхронизации и согласованию длин, достаточному для соответствия допустимой в проекте разности фаз. Пример допуска на длину: быстродействующий проект USB, длина должна быть согласована в пределах 150 милов (3,81 мм); синхронизирующие сигналы DDR2 должны быть согласованы в пределах 25 милов (0,635 мм).
- Используйте одновременную трассировку двух сигналов для достижения согласования длины. При необходимости допускается разделить трассы для обхода препятствий.
- Допускается изменение слоя, пока поддерживаются импедансы сигналов.
Определение дифференциальной пары на схеме
Определение дифференциальной пары на схеме осуществляется размещением директивы Differential Pair (Place » Directives) на каждой цепи пары. Обратите внимание, что цепи пары должны быть поименованы метками цепей с суффиксами _N и _P. Размещение директивы Differential Pair на каждой цепи пары применяет к ним параметр с именем (Name) DifferentialPair
и значением (Value) True
.
Определения дифференциальных пар передаются на плату в процессе синхронизации.
Использование директивы Blanket для определения множества пар
Если необходимо определить большое количество пар, существует альтернативный подход – размещение директивы Blanket. Это позволяет применять директивы ко множеству цепей, которые находятся под Blanket (система обнаруживает цепи, электрические точки объектов Net Label которых находятся в пределах Blanket). Затем директиву Blanket достаточно пометить одной директивой Differential Pair, как показано на рисунке ниже.
На этом рисунке также показано, что помимо того что цепи будут определены как элементы дифференциальных пар (с помощью директивы Differential Pair), все включенные цепи станут элементами класса цепей RocketIO
, а пары станут элементами класса дифференциальных пар ROCKET_IO_LINES
и что будет создано правило Differential Pair Routing. Поскольку в этой директиве Differential Pair указан класс цепей, в редакторе плат областью действия этого правила будет класс цепей RocketIO
после того, как проект будет передан в редактор плат.
Передача дифференциальных пар в редактор плат
Если директивы Differential Pair размещены на цепи в схеме, то согласно настройкам проекта по умолчанию элементы дифференциальных пар будут созданы на плате. Для настройки используются следующие параметры в диалоговом окне Options for PCB Project:
- Вкладка Comparator – Extra Differential Pairs (тогда для последующих обновлений будет осуществляться проверка различий дифференциальных пар и настроек правил, если будут созданы/изменены правила проектирования).
- Вкладка ECO Generation – Add Differential Pair (тогда для последующих обновлений будет осуществляться проверка изменений дифференциальных пар и настроек правил, если будут созданы/изменены правила проектирования).
- Вкладка Class Generation – Generate Net Classes (если вы создаете классы цепей для определения области действия правила Differential Pair Routing).
Просмотр и управление дифференциальными парами на плате
Просматривать определения дифференциальных пар и управлять ими можно в панели PCB в режиме Differential Pairs Editor. На изображении ниже показаны пары, принадлежащие классу дифференциальных пар ROCKET_IO_LINES
. Пара V_RX0
выделена, цепи в этой паре: V_RX0_N
и V_RX0_P
. Знаки - и + возле названий цепей являются системными метками, указывающими положительный или отрицательный элемент пары.
Определение дифференциальных пар на плате
Дифференциальные пары можно определять как на схеме, так и в редакторе плат. Для создания объекта дифференциальной пары нажмите кнопку Add в области Differential Pairs панели PCB в режиме Differential Pairs Editor. В открывшемся диалоговом окне Differential Pair выберите существующие цепи для положительной и отрицательной цепи пары, укажите название пары и нажмите OK. Обратите внимание, что в качестве элементов дифференциальной пары можно выбрать любые две цепи, определенные в редакторе плат.
Определение класса дифференциальной пары
Зачастую необходимо, чтобы в область действия правила попадало более одной дифференциальной пары. В этой ситуации можно определить класс дифференциальных пар, объединив их таким образом в логическую группу. Определение классов осуществляется в диалоговом окне Object Class Explorer (Design » Classes).
Использование xSignals с дифференциальными парами
Главная страница: Определении путей быстродействующих сигналов с помощью объектов xSignal
Если на пути сигнала дифференциальной пары есть последовательные элементы, будет полезно создать объекты xSignal. Объект xSignal – это заданный конструктором путь сигнала между двумя узлами. Это могут быть два узла внутри одной цепи или два узла разных цепей. С помощью xSignal можно определить путь сигнала, который включает в себя цепи по обе стороны от последовательного компонента. Расчеты длины трассировки для xSignal включают в себя длину пути, проходящего через последовательный компонент, показываемый тонкой линией при выборе объекта xSignal в режиме xSignals панели PCB.
Применимые правила проектирования
Для интерактивной трассировки дифференциальной пары создайте и настройте указанные ниже правила проектирования в диалоговом окне PCB Rules and Constraints Editor (Design » Rules):
- Правило Differential Pairs Routing – определяет ширину трасс цепей в паре, зазор между трассами в паре и общую несвязанную длину (пара становится несвязанной, если зазор больше значения Max Gap). Задайте область действия правила, чтобы оно действовало на дифференциальную пару, например
IsDifferentialPair
илиInDifferentialPairClass('All Differential Pairs')
. Обратите внимание, что настройки Min/Preferred/Max Gap могут быть использованы при трассировке, но не при проверке правил проектирования. В ходе проверки правил, расстояние между цепями проверяется согласно применяемому правилу Electrical Clearance, как обозначено выше. - Правило Electrical Clearance – определяет минимальный зазор между любыми двумя объектами (например, между контактными площадками или между трассой и контактной площадкой) любых цепей, в одной цепи или в различных цепях. Задайте область действия этого правила, чтобы оно действовало на элементы дифференциальной пары, например
InDifferentialPair
, и выберите подходящий тип объектов в области ограничений, как показано ниже.
Настройка области действия правил проектирования
Область действия правил проектирования определяет набор объектов, к которым это правило должно быть применено. Поскольку дифференциальная пара является объектом, можно использовать запросы, примеры которых приведены ниже:
- InAnyDifferentialPair – объект в любой дифференциальной паре.
- InDifferentialPair('D_V_TX1') – указывает на обе цепи в дифференциальной паре под названием
D_V_TX1
. - InDifferentialPairClass('ROCKET_IO_LINES') – указывает на все цепи во всех парах, принадлежащих классу
ROCKET_IO_LINES
. - (IsDifferentialPair And (Name = 'D_V_TX1')) – указывает на объект дифференциальной пары под названием
D_V_TX1
. - (IsDifferentialPair And (Name Like 'D*')) – указывает на все объекты дифференциальных пар, название которых начинается с буквы
D
.
Использование Differential Pair Rule Wizard для определения правил
Нажмите кнопку Rule Wizard под областью Nets панели PCB в режиме Differential Pairs Editor, чтобы открыть Differential Pair Rule Wizard и в последовательном процессе настроить требуемые правила проектирования. Обратите внимание, что область действия создаваемых правил зависит от того, что выделено при нажатии на кнопку Rule Wizard. Если была выделена одна пара, то правила будут действовать на цепи этой пары, но если был выбран класс дифференциальных пар, то правила будут действовать на цепи и все пары в этом классе.
Трассировка дифференциальной пары
Связанная страница: Интерактивная трассировка
Дифференциальные пары трассируются именно как пары, т.е. трассировка двух цепей осуществляется одновременно. Для трассировки дифференциальной пары выберите команду Interactive Differential Pair Routing из меню Route. Затем необходимо выбрать одну из цепей пары – нажмите по любой из них, чтобы начать трассировку. На анимации ниже показана трассировка дифференциальной пары.
В процессе трассировки дифференциальной пары вы можете выполнить следующие действия:
- Сочетание клавиш Shift+R для циклического переключения между режимами разрешения конфликтов (
Walkaround
,Push
,Hug and Push
,Stop at First Obstacle
,Ignore Obstacles
) - Сочетание клавиш Shift+Пробел для циклического переключения между доступными режимами изломов трасс (излом под углом 45 градусов, излом под углом 45 градусов с дугой, излом под углом 90 градусов, излом под углом 90 градусов с дугой)
- Нажмите клавишу 3 для циклического переключения между доступными значениями ширины дифференциальной пары (User Choice, Rule Min, Rule Preferred, Rule Max)
- Сочетание клавиш Shift+6 для циклического переключения между доступными значениями зазора дифференциальной пары (Rule Min, Rule Preferred, Rule Max)
- Для изменения слоя и добавления переходных отверстий: нажмите клавишу * на цифровой клавиатуре или используйте сочетание Ctrl + Shift + Вращение колеса мыши; затем
- Нажмите клавишу 4 для циклического переключения между доступными размерами переходных отверстий (User Choice, Rule Min, Rule Preferred, Rule Max)
- Нажмите клавишу 5 для переключения между доступными расположениями переходных отверстий при изменении слоя
- Нажмите клавишу 6 для циклического переключения между доступными структурами переходов или клавишу 8 для отображения списка доступных структур переходных отверстий (узнайте больше об управлении переходными отверстиями, размещаемыми в процессе интерактивной трассировки)
- Сочетание клавиш Shift+F1 для отображения всех доступных для команды сочетаний клавиш
- В режимах размещения дуг в углах нажимайте клавишу "," для уменьшения максимального радиуса дуги и "." для увеличения максимального радиуса дуги. Размер дуги можно изменять интерактивно с помощью перемещения курсора. Эта настройка определяет максимально допустимый радиус, который отображен в строке состояния в процессе трассировки.
Улучшение качества трассировки
Главная страница: Сглаживание и повторная трассировка
Редактор плат включает в себя мощные инструменты для улучшения качества существующих трасс. Инструменты, известные как Glossing (Сглаживание) и Retracing (Повторная трассировка), доступны в меню Route.
- Gloss (Сглаживание) – направлено на улучшение геометрии трасс, уменьшая количество изломов и общую длину трасс. Сглаживание сохраняет ширину существующих трасс и зазор в дифференциальной паре. Сглаживание учитывает текущую настройку Routing Gloss Effort, заданную на странице PCB - Interactive Routing диалогового окна Preferences ( показать изображение).
- Retrace (Повторная трассировка) – предполагает, что геометрия соответствует требованиям, и направлена на согласование существующей трассировки с правилами проектирования. В то время как сглаживание сохраняет ширину существующих трасс и зазоры дифференциальных пар, повторная трассировка обновляет эти значения до предпочтительных (Preferred). Повторная трассировка является эффективным инструментом в тех случаях, когда правило проектирования Differential Pair Routing было изменено, и это изменение необходимо применить к существующим трассам.
На анимации в предыдущем разделе, Трассировка дифференциальной пары, показана простая демонстрация сглаживания с параметром Routing Gloss Effort со значением Strong
.
Стратегии выделения трасс
Выделение является базовым действием для всех аспектов проектирования, в том числе при работе с существующей трассировкой. Если необходимо провести сглаживание или удаление некоторых трасс, их нужно сначала выделить.
Выделение внутри и на границе рамки
В редакторе плат можно выделять объекты, полностью попадающие в рамку, либо те, которые попадают в рамку и на ее границу. Режим зависит от направления перемещения мыши в процессе выделения объектов рамкой:
Расширение набора выделенных трасс
Обычной ситуацией является необходимость выделения множества объектов, которые касаются, например, сегмента трассы разведенной цепи или линии соединения неразведенной цепи. Относительно простой задачей является выделение набора сегментов трасс, которые идут параллельно друг другу, с помощью рамки, касающейся этих сегментов (Select Touching), как описано выше. Но интерактивное выделение целых трасс может оказаться затруднительным.
Но это можно легко сделать – выберите один или несколько сегментов и затем расширьте выделенный набор, включив в него касающиеся трассы, с помощью клавиши Tab, как показано на видео ниже.
Демонстрация способов выделения трасс
Интерактивное изменение трассировки дифференциальной пары
Главная страница: Изменение трассировки
При трассировке может возникнуть множество случаев, когда будет необходимо изменить существующие трассы – например, выходы из контактных площадок могут не понравиться вам, и вы заходите изменить их форму (как показано на видео ниже). Хотя и возможно изменить существующие трассы с помощью перетаскивания сегментов, зачастую проще выполнить трассировку повторно.
Для этого выберите команду Route » Interactive Differential Pair Routing, затем щелкните по какой-либо существующей трассе. Проложите новый путь трассы и вернитесь на существующую трассу, где это необходимо. Будет создана петля со старым и новым путями. После щелчка ПКМ или нажатия Esc для завершения трассы лишние сегменты будут автоматически удалены, в том числе и лишние переходные отверстия. Трассировка дифференциальных пар несколько отличается от трассировки одиночных цепей. В процессе трассировки одиночной цепи, последний сегмент отображается контуром (упреждающий сегмент), и он не размещается при щелчке ЛКМ. Трассировка дифференциальных пар не включает в себя упреждающие сегменты, поэтому при щелчке ЛКМ будут размещены все видимые сегменты. Наведите курсор, чтобы убедиться в отсутствии лишних сегментов.
При изменении дифференциальных пар вручную путем перетаскивания сегментов возможно расталкивание одного элемента пар другим, либо перемещение каждого из них независимо.
Отображение доступных зазоров
Бывали случаи, когда трассу было невозможно проложить через какой-нибудь зазор, и вы не могли понять почему? Такая путаница еще более вероятна при трассировке дифференциальных пар. В Altium Designer существует возможность для помощи в таких ситуациях под названием динамическое отображение границ зазоров. Когда эта функция включена, области, определяемые существующими объектами + применяемым правилом для зазоров, отображаются в виде затененного полигона внутри локальной круглой области, как показано на видео ниже. Нажмите Ctrl+W для включения или отключения этой функции.
Отображаемую область можно ограничить областью вокруг текущего положения курсора, либо отобразить на всем экране. Это определяет подопция Reduce Clearance Display Area на странице PCB Editor - Interactive Routing диалогового окна Preferences.
Согласование длин дифференциальных пар
Дифференциальные пары часто используются в быстродействующих проектах благодаря своей устойчивости к помехам и упрощению задачи получения высококачественного возвратного пути сигналов. Однако, как и для однопроводных сигналов, необходимо управлять их длинами для обеспечения требований к синхронизации.
В процессе трассировки дифференциальной пары, длина каждой из двух цепей отображается в строке состояния, а также в информационном окне Head-Up display (Shift+H для включения/отключения). Значения длин, отображаемые в панели PCB обновляются при выходе из трассировки пары.
Правила проектирования Matched Length и Length
Для обеспечения требований к времени прохода сигналов и синхронизации можно задать правила проектирования Length и Matched Length. Эти правила можно использовать как в процессе проверки правил проектирования (DRC), так и при интерактивной подстройке длины.
Правило Matched Length обнаруживает наиболее длинную пару, попадающую в область действия правила, и использует значение средней длины (Average Length) этой пары в качестве базы для сравнения с другими целевыми парами, требуя чтобы их длины попадали в допуск, определенный в этом правиле. Значение Average Length показано в панели PCB в режиме Differential Pairs Editor.
Правила проектирования внутри пары и между парами
Могут быть требования к согласованию длины между парами, а также внутри каждой пары.
Для этого необходимо создать подходящее правило проектирования Matched Length:
- Создайте правило проектирования Matched Length, которое необходимо применить между множеством пар (осуществляется путем выбора параметра Group Matched Lengths). Задайте область действия правила, чтобы применить его к требуемым парам (или объектам xSignal), как показано на изображении ниже.
- Создайте еще одно правило Matched Length, которое необходимо применить внутри пары (осуществляется путем выбора параметра Within Differential Pair Length). Это правило обеспечит соответствие длин двух цепей внутри каждой пары с необходимым допуском. Обратите внимание, что область действия этого правила необходимо определить с помощью настройки Where the Object Matches, которая указывала бы на дифференциальные пары, как показано на изображении ниже справа. Приоритет этого правила должен быть выше, чем у правила, применяемого между парами.
Подстройка длины дифференциальных пар
Главная страница: Подстройка длины
Подстройка длины пар и цепей внутри каждой пары осуществляется с помощью двух команд подстройки длины. Для подстройки длины:
- Длина дифференциальной пары может быть точно подстроена с помощью команды Interactive Diff Pair Length Tuning в меню Route. В процессе подстройки можно использовать сочетания для интерактивного изменения стиля и размера меандра, либо использовать клавишуTab для перехода панель Properties в режиме Differential Pair Length Tuning. В панели целевая длина определяется:
- Из выбранной пользователем существующей дифференциальной пары.
- Вручную – введите значение в поле Target Length.
- Из применяемого правила проектирования Length и Matched Length.
- Для подстройки цепи внутри пары используйте команду Interactive Length Tuning в меню Route. При попытке подстроить длину более длинной цепи в паре появится сообщение Target Length Shorter than Old Length (Целевая длина меньше старой длины).
Демонстрация подстройки длины и изменения меандров
На видео показана подстройка длины дифференциальной пары в соответствии с другой парой (на основе длин xSignal) путем добавления подстроечных меандров. Затем более короткий элемент каждой пары подстраивается в соответствии с более длинным элементом этой пары. Далее на видео показано, как можно в интерактивном режиме перемещать и изменять пары, как можно удалить подстроечный меандр и как с помощью сочетаний клавиш можно задать форму нового подстроечного меандра в процессе его размещения.