Возможность выполнять перестановку выводов (pin swap) компонентов в проекте может существенно повлиять на сложность трассировки и помочь снизить количество слоёв (а значит, и стоимость) печатной платы. К сожалению, инженер по разводке может не располагать всей информацией, необходимой для грамотной настройки параметров перестановки выводов, поскольку он не всегда может предполагать, каков был полный замысел разработчика. В идеале человек, который создавал схему/проект, должен также участвовать в настройке данных Pin Swapping, чтобы замысел и ограничения проекта были зафиксированы точно.
Система перестановки выводов, дифференциальных пар и частей компонента работает в связке с интерактивной трассировкой и возможностями BGA escape routing в Altium Designer. Эта функция даёт все преимущества традиционных систем pin swap, но использует глубокое понимание Altium Designer назначений цепей (net) в проекте. Во время операции перестановки выводов Altium Designer анализирует цепь, назначенную выбранному выводу, и динамически переназначает цепь на выводе и на всей подключённой меди.
Такой уровень функциональности означает, что можно переставлять частично проложенные цепи и заранее проложенные многослойные «выводы» (escape) от сложных BGA-устройств. Также можно переставлять дифференциальные пары, используя знания о дифференциальных парах выводов, например, в FPGA.
На уровне PCB система включает мощный автоматический оптимизатор, который использует эту информацию для динамического переназначения цепей с целью улучшения трассируемости. Например, система может выполнить переподключение (reconnect) для нескольких устройств, у которых escape-трассировка выполнена на нескольких слоях. Назначение будет выполняться на основе совпадения слоёв escape-трасс, минимального манхэттенского расстояния трассировки и минимального числа пересечений на каждом слое.
Добавление перестановки частично проложенных цепей вместе с автоматическим оптимизатором даёт возможность применять иерархическую и итеративную стратегию трассировки: сначала выполнять escape-трассировку устройств, затем вести трассы до границы заданной области, а в конце соединять эти участки между собой. В любой момент автоматический перестановщик можно запустить повторно для переоптимизации на основе обновлённой информации, полученной из частично проложенных цепей.
Существует три категории перестановки:
-
Перестановка выводов
-
Перестановка дифференциальных пар
-
Перестановка подчастей (sub-part).
Настройка групп перестановки
Для каждой категории перестановки значения swap groups определяют, что можно и что нельзя переставлять внутри компонента. В случае перестановки выводов выводы внутри компонента, имеющие общий pin group, могут быть переставлены между собой. Аналогично, для перестановки пар и частей именно значения pair group и part group определяют, можно ли переставлять дифференциальную пару или подчасть соответственно. Группы перестановки для компонента настраиваются в диалоге Configure Pin Swapping, показанном на изображении ниже. Доступ к нему возможен следующими способами:
-
В документе PCB щёлкните правой кнопкой по компоненту и выберите Component Actions » Configure Pin/Part Swapping.
-
В документе схемы щёлкните правой кнопкой по компоненту и выберите Part Actions » Configure Pin Swapping.
-
В документе схемы нажмите кнопку Configure Component внизу диалога Configure Swapping Information In Components dialog (Tools » Configure Pin Swapping).
-
В документе PCB нажмите кнопку Configure Component внизу диалога Configure Swapping Information In Components (Tools » Pin/Part Swapping » Configure).
-
Дважды щёлкните по любому из компонентов в диалоге Configure Swapping Information In Components.
Options and Controls of the Configure Pin Swapping Dialog
Вкладка Pin Swapping

Вкладка Pin Swapping
Вывод компонента можно переставлять с другим выводом этого компонента, если он относится к той же pin group. . Используйте эту вкладку диалога для просмотра и организации групп выводов вашего компонента.
-
Pin Status - выводит Designator, Pin Name, Net, Bus, Type и Part No. для каждого вывода. Вы можете группировать данные в соответствии со своими предпочтениями или требованиями проекта, перетаскивая заголовки столбцов в область Drag a column header here to group by that column. Также можно менять порядок столбцов, перетаскивая заголовки по горизонтали.
-
Swap Data - выводит сведения Pin Group для каждого вывода, подлежащего перестановке. Дважды щёлкните в столбце Pin Group , чтобы переименовать группу.
Контекстное меню (правый клик)
-
Show/Hide Columns - используется для настройки видимости столбцов.
-
Assign Pin-Swap Groups By - автоматически назначает группы перестановки выводов по одному из признаков: Designator, Pin Name, Net, Bus, Type, Part No., Part Mode, or Pin Group. Перед щелчком правой кнопкой выделите несколько выводов, чтобы назначить группы одновременно.
-
Add To Pin-Swap Group - используется для создания новых или добавления в существующие группы перестановки выводов. Новые группы автоматически именуются числовыми значениями (например, 1, 2, 3 и т. д.). Можно добавить более одного вывода за раз, выделив несколько выводов перед щелчком правой кнопкой.
-
Remove From Pin-Swap Group - используется для удаления выбранного(ых) вывода(ов) из группы перестановки выводов. Можно удалить более одного вывода за раз, выделив несколько выводов перед щелчком правой кнопкой.
Вкладка Differential Pair Swapping

Вкладка Differential Pair Swapping
Перестановка дифференциальных пар определяется значением pair group для дифференциальной пары. Используйте эту вкладку диалога для просмотра и организации групп пар вашего компонента.
-
Pin Status - выводит Designator, Pin Name, Net и Type для каждого вывода. Вы можете группировать данные в соответствии со своими предпочтениями или требованиями проекта, перетаскивая заголовки столбцов в область Drag a column header here to group by that column . Также можно менять порядок столбцов, перетаскивая заголовки по горизонтали.
-
Swap Data - выводит сведения Pair Group для каждой пары, подлежащей перестановке. Дважды щёлкните в столбце Pair Group , чтобы переименовать группу.
Контекстное меню (правый клик)
-
Show/Hide Columns - используется для настройки видимости столбцов.
-
Add To Pair-Swap Group - используется для создания новых или добавления в существующие группы перестановки пар. Новые группы автоматически именуются числовыми значениями (например, 1, 2, 3 и т. д.). Можно добавить более одной пары за раз, выделив несколько пар перед щелчком правой кнопкой.
-
Remove From Pair-Swap Group - используется для удаления выбранной(ых) пары(пар) из группы перестановки пар. Можно удалить более одной пары за раз, выделив несколько пар перед щелчком правой кнопкой.
Вкладка Part Swapping

Вкладка Part Swapping
Перестановка частей (part swapping) для компонента настраивается атрибутами part group и sequence ID. Атрибут sequence ID определяет эквивалентность выводов между переставляемыми подчастями. Используйте эту вкладку диалога для просмотра и организации групп частей ваших компонентов.
Контекстное меню (правый клик)
-
Add To Part-Swap Group - используется для создания новых или добавления в существующие группы перестановки частей. Новые группы автоматически именуются числовыми значениями (например, 1, 2, 3 и т. д.). Можно добавить более одной части за раз, выделив несколько частей перед щелчком правой кнопкой.
-
Remove From Part-Swap Group - используется для удаления выбранной(ых) части(частей) из группы перестановки частей. Можно удалить более одной части за раз, выделив несколько частей перед щелчком правой кнопкой.
-
Show/Hide Columns - используйте это, чтобы определить, какие столбцы видимы на вкладке Pin Swapping диалога.
-
Assign/Remove Part Sequence Number - атрибут sequence ID определяет эквивалентность выводов между переставляемыми подчастями. Создавайте новые или добавляйте в существующие группы sequence ID. Можно добавлять/удалять более одной части в sequence ID одновременно, выделив несколько частей перед щелчком правой кнопкой. Новые группы автоматически именуются числовыми значениями (например, 1, 2, 3 и т. д.). Дважды щёлкните в столбце Sequence ID , чтобы переименовать группу.
Группы выводов
Вывод компонента можно переставлять с другим выводом этого компонента, если он относится к той же pin group (имеет то же значение pin group). pin group — это атрибут каждого вывода в компоненте, и его значение может быть любой буквенно-цифровой строкой. pin groups для всего компонента задаются в диалоге Configure Pin Swapping dialog.
Схема, содержащая компонент Dual 5-Input Positive-NOR Gate. Каждый из входных выводов для любой из подчастей логически эквивалентен, что создаёт идеальную ситуацию для перестановки выводов.
Рассмотрим схему, показанную на изображении выше, которая содержит два 5-входовых элемента NOR для компонента SNJ54S260. Каждую из цепей INA0…INA4 можно переставлять между собой из-за природы элемента NOR. Аналогично, каждую из цепей INB0…INB4 также можно переставлять, однако цепь INAx нельзя переставлять с цепью INBx.
Ограничения перестановки для элемента NOR задаются в диалоге Configure Pin Swapping. Назначение цепям INAx группы перестановки 1, а цепям INBx — группы перестановки 2 гарантирует, что система будет выполнять перестановку только так, чтобы это соответствовало логике компонента. Если значение Pin Group для вывода оставлено пустым, это означает, что данный вывод недоступен для перестановки.
Группы частей и идентификаторы последовательности
Компонент нередко состоит из нескольких функционально эквивалентных подчастей. Перестановка частей (Part swapping) позволяет менять местами цепи (nets) таких эквивалентных подчастей. Снова рассмотрим компонент, показанный на изображении выше. Оба элемента NOR обеспечивают идентичную функциональность, и цепи (INA0, INA1, INA2, INA3, INA4, OUTA) можно поменять местами с цепями (INB0, INB1, INB2, INB3, INB4, OUTB).
Перестановка частей для компонента настраивается с помощью атрибутов part group и sequence ID. Оба являются текстовыми атрибутами и доступны на вкладке Part Swapping диалога Configure Pin Swapping dialog, как показано ниже. На изображении ниже также показаны настройки part group и sequence ID, соответствующие компоненту, показанному на изображении выше. part group указывает, какие подчасти можно менять местами друг с другом. Эти две подчасти можно переставлять, и поэтому на изображении ниже их part groups имеют одинаковое значение 1.
Атрибут sequence ID определяет эквивалентность выводов между переставляемыми подчастями. В примере с элементом NOR важно, чтобы при перестановке частей входные выводы не менялись местами с выходными. На изображении ниже показано, что sequence ID настроены так, что OUTA меняется местами с OUTB, INA0 — с INB0, INA1 — с INB1 и т. д.
Настройка групп перестановки частей в диалоге Configure Pin Swapping для компонента «двойной 5-входовый NOR».
Обратите внимание: перестановка частей (Part Swapping) доступна только для компонентов, спроектированных как подчасти, поскольку она основана на обмене всеми цепями между двумя подчастями.
Группы пар (Pair Groups)
Перестановка дифференциальных пар определяется значением pair group для дифференциальной пары. Атрибут pair group доступен на вкладке Differential Pair Swapping диалога Configure Pin Swapping dialog. На вкладке Differential Pair Swapping есть три режима, которые можно выбрать через выпадающий список в левом нижнем углу.
-
Show All Pins – система отобразит все выводы компонента.
-
Show Pairs From Directives – система будет использовать differential pair directives, размещённые на схеме, чтобы заполнить дифференциальные пары в таблице.
Когда в диалоге выбран параметр Show All Pins, всем выводам, относящимся к дифф. парам, которые можно переставлять, необходимо назначить одну и ту же группу пар (pair group).
Настройка групп перестановки пар (Pair Swap) в диалоге Configure Pin Swapping.
Управление тем, как выполняются перестановки на схеме
В редакторе PCB перестановки выводов, пар и частей выполняются путём обмена цепями на площадках компонента и соответствующей меди. Когда изменения объединяются со схемами, есть два способа обработки перестановки выводов: либо переставлять выводы на символе компонента, либо менять местами метки цепей (net labels) на проводниках, подключённых к выводам. У каждого подхода есть свои преимущества и недостатки.
Перестановка выводов всегда будет работать на схеме, но это может означать, что данный экземпляр символа компонента больше не соответствует тому, как он определён в библиотеке. В такой ситуации символ нельзя обновить из библиотеки, а также другие экземпляры того же компонента в этом проекте будут иметь другое расположение выводов. Поэтому этот подход идеален для простых компонентов, например резисторных сборок.
Выполнение перестановки на схеме путём обмена меток цепей возможно только если связность (connectivity) задаётся через метки цепей и если выводы не соединены «жёстко» (hard-wired) между собой. Преимущество этого подхода в том, что символ компонента не изменяется и может быть обновлён из библиотеки позже. Это лучший выбор для сложного компонента, например FPGA, где физическое перемещение двух выводов на символе может привести к некорректному отображению символа, основанного на банках ввода/вывода (I/O bank).
Вы можете определить, как выполняются перестановки, выбрав параметры Adding / Removing Net-Labels или Changing Schematic Pins в разделе Allow Pin Swapping Using these Methods диалога Project Options - Options, как показано ниже.
Эти параметры проекта определяют, как обновления перестановок выводов отражаются в документах схем.
Включение перестановки выводов, пар и частей на PCB
Возможность перестановки выводов в проекте PCB управляется параметром Pin Swapping. Этот параметр становится доступным при выполнении интерактивной трассировки. Чтобы проверить и переключить параметр, выберите команду Route » Interactive Routing, затем нажмите клавишу Tab, чтобы приостановить трассировку и открыть панель Properties, где можно переключить состояние параметра Pin Swapping (
).
На уровне компонента параметры перестановки для конкретного PCB-компонента настраиваются в панели Properties panel, которая показывает свойства выбранного в рабочей области компонента. Параметры находятся в области Swapping Options вкладки General .
Параметры перестановки для PCB-компонентов также можно задать через Configure Swapping Information in Components диалог, который перечисляет все компоненты, используемые в проекте (или библиотеке), с их текущими настройками перестановки. При открытии из редактора PCB диалог содержит дополнительный столбец для включения/отключения перестановки для каждого компонента на плате — Enable in PCB.
Диалог Configure Swapping Information in Components можно открыть из Schematic Editor, Schematic Library Editor и PCB Editor следующим образом:
-
Schematic Editor/Schematic Library Editor - выбрав в главном меню команду Tools » Configure Pin Swapping .
-
PCB Editor - выбрав в главном меню команду Tools » Pin/Part Swapping » Configure .
Атрибуты swap group, необходимые для настройки перестановки выводов, пар и частей внутри компонента, хранятся в компонентах схемы (Schematic components). Однако эта информация используется в редакторе PCB, и у каждого PCB-компонента есть параметр, разрешающий перестановку его выводов. Поэтому часто удобнее использовать этот диалог из PCB Editor.
Используйте диалог Configure Swapping Information in Components, чтобы быстро задать перестановку для разных компонентов. Диалог включает мощное контекстное меню (по правому клику), благодаря чему очень легко быстро копировать настройки с одного компонента на другой или включать/отключать сразу несколько компонентов одним щелчком.
Диалог Configure Swapping Information In Components .
Options and Controls of the Configure Swapping Information in Components Dialog
-
Component Information - отображает всю релевантную информацию о перечисленных компонентах: Designator, Comment, Footprint, Library Reference, Pins и Parts.
-
Configure in Schematic
-
Pin Swap Data - показывает, сколько выводов компонента добавлено в группу перестановки выводов. Например, [3/2] означает, что 2 из 3 выводов добавлены в группу перестановки выводов. Значок
появляется, когда компонент был изменён для добавления выводов в группу перестановки выводов. Когда компонент был изменён для удаления выводов из группы перестановки выводов, появляется значок
.
-
Part Swap Data - показывает, сколько частей компонента добавлено в группу перестановки частей. Например, [3/2] означает, что 2 из 3 частей добавлены в группу перестановки частей. Значок
появляется, когда компонент был изменён для добавления частей в группу перестановки частей. Когда компонент был изменён для удаления частей из группы перестановки частей, появляется значок
.
-
Enable in PCB
Если флажок недоступен, дважды щёлкните компонент, чтобы открыть диалог
Configure Pin Swapping dialog и настроить параметры перестановки выводов/частей на вкладках
Pin Swapping и/или
Part Swapping . Чтобы перестановку выводов/частей можно было включить, компоненту должны быть назначены группы перестановки выводов/частей.
-
Configure Component - нажмите, чтобы открыть диалог Configure Pin Swapping dialog и настроить параметры перестановки для выводов и подчастей каждого компонента на плате.
-
Only Show Components with Swap Information - отметьте, чтобы отображать только компоненты, для которых настроено включение перестановки выводов и/или частей.
Двойной щелчок по компоненту в диалоге
Configure Swapping Information in Components откроет диалог
Configure Pin Swapping dialog для этого компонента, где можно более детально задать настройки групп перестановки для выводов, дифференциальных пар и подчастей.
Выполнение перестановок выводов, пар и частей
Интерактивная перестановка выводов, пар и частей
Интерактивная перестановка позволяет менять местами выводы, дифференциальные пары или подчасти по одной в редакторе PCB. Команды интерактивной перестановки находятся в подменю Tools » Pin/Part Swapping (команды Interactive Pin/Net Swapping, Interactive Differential-Pair Swapping и Interactive Part Swapping ). После выбора команды из меню всё в рабочей области PCB маскируется (приглушается), кроме тех объектов, которые можно переставлять. Следите за Status Bar — он будет подсказывать следующее действие. Шаги, необходимые для выполнения перестановки, отображаются в строке состояния:
-
Первый шаг — выбрать один из подсвеченных выводов, который станет источником перестановки выводов. В случае перестановки пар или частей затем будет переставлена дифференциальная пара или подчасть, к которой относится этот вывод.
-
Второй шаг — выбрать целевой вывод для перестановки. Для перестановки пар или частей этот вывод будет представлять дифференциальную пару или подчасть.
Есть два условия, из‑за которых переставляемый вывод не будет подсвечиваться: к этому выводу уже проложено соединение (проверьте подключения к силовой плоскости или полигонам), и/или не включена опция Pin Swapping (доступна в режиме Interactive Routing на панели Preferences).
Этапы интерактивной перестановки частей (part swapping) компонента «двойной 5‑входовый элемент NOR» показаны на двух изображениях ниже. Доступны две подчасти (subparts) для перестановки, то есть можно выбрать любой из их пяти выводов, как показано на изображении выше. Выбран вывод 8, соответствующий подчасти U2B. Затем система подсвечивает выводы подчасти U2A, которые можно поменять местами.
Первое изображение, шаг 1 — выберите вывод для перестановки, доступные выводы подсветятся. Второе изображение, шаг 2 — выберите целевой вывод.
-
Для выводов дифференциальной пары не требуется задавать значения Part Sequence: определение дифференциальной пары указывает, какой вывод в паре является положительным, а какой — отрицательным.
-
Информация о перестановке также появится на панели Messages .
Automatic Pin/Net Optimizer
Automatic Pin/Net Optimizer — это двухэтапный инструмент. Выберите Tools » Pin/Part Swapping » Automatic Pin/Net Optimizer в меню PCB‑редактора, чтобы выполнить автоматическую оптимизацию.
Сначала Automatic Pin/Net Optimizer запускает быстрый однопроходный оптимизатор, который пытается минимизировать пересечения (cross overs) и длины соединений, но фактически может их увеличить. После завершения вам будет предложено запустить итеративный оптимизатор. Итеративный оптимизатор выполнит несколько проходов, пытаясь уменьшить количество пересечений и длины соединений.
Передача изменений обратно в схему
Когда вы настраиваете swap groups в диалоге Configure Pin Swapping dialog, внесённые вами правки немедленно применяются к компонентам схемы — независимо от того, какой редактор был активен в момент запуска команды. Однако изменения проекта, являющиеся результатом перестановки вывода, дифференциальной пары или подчасти в PCB‑редакторе, передаются обратно в схему с использованием стандартного процесса Design Update.
Передача изменений из PCB в схему
Перестановки выводов, пар и частей передаются обратно в схему так же, как и другие изменения проекта — через выбор Design » Update в меню. В зависимости от того, как настроены параметры Allow Pin-Swapping в Project Options - Options dialog, перестановки выводов будут выполняться следующим образом:
-
Change Pin Names — это изменение переместит выводы на символе. Фактически выводы на символе не перемещаются, но визуально будет заметно, что два вывода поменялись местами.
-
Move Pins to Different Nets — это изменение поменяет местами метки цепей (net labels) на подключённых проводниках.
-
Change Sub-Part ID — это изменение поменяет индекс подчасти при выполнении перестановки части.
На первом изображении показана перестановка выводов, разрешённая в схеме путём обмена выводов. На втором изображении показано, что перестановка разрешена путём перемещения меток цепей.
Если схема не обновляется и не показывает переставленные выводы или части, нажмите клавишу End, чтобы обновить отображение.
Использование новой системы перестановки выводов/частей в проектах FPGA
Помимо очевидных преимуществ, которые даёт интеллектуальная перестановка выводов, пар и частей, возможность переставлять частично разведённые подсети (sub-nets) добавляет новое измерение перестановкам и идеально подходит для работы с FPGA большой ёмкости. Динамическое переназначение цепей позволяет использовать многоэтапный процесс проектирования с постепенно уточняемыми назначениями выводов/цепей.
Начальное назначение I/O
На этом этапе выводам FPGA и других устройств назначаются цепи так, как проще всего на уровне схемы. Обычно это означает простое добавление меток цепей в порядке нумерации шины к выводам FPGA. Функция Smart Paste в редакторе схем идеально подходит для этого.
Начальная оптимизация соединений
Проект можно перенести в PCB‑топологию, где из‑за случайного назначения на уровне схемы будет много пересечений соединений. Запуск команды Tools » Pin/Part Swapping » Automatic Net/Pin Optimizer , которая использует информацию о выводах и цепях для динамического переназначения цепей и улучшения трассируемости, быстро даст значительное уменьшение числа пересечений. Например, система может переподключить несколько BGA‑устройств, для которых выполнена escape‑трассировка на нескольких слоях PCB‑документа. Результат пока не обязан быть идеальным, так как он в первую очередь нужен, чтобы сделать соединения более наглядно управляемыми на уровне PCB.
После запуска команды выполняется Automatic Pin/Net Optimizer. Это двухэтапный инструмент: сначала запускается быстрый однопроходный оптимизатор, который пытается минимизировать пересечения и длины соединений, но фактически может их увеличить. После завершения вам будет предложено запустить итеративный оптимизатор. Итеративный оптимизатор выполнит несколько проходов, пытаясь уменьшить количество пересечений и длины соединений. Результаты оптимизации отображаются после завершения работы оптимизатора.
Escape‑трассировка
Теперь для крупных устройств на PCB можно выполнить fanout и escape‑трассировку (щёлкните правой кнопкой по компоненту, чтобы выборочно выполнить fanout/escape‑трассировку). Это может ухудшить ранее оптимизированные назначения, но на данном этапе это не имеет значения.
Оптимизация соединений после escape‑трассировки
Запустите автоматический оптимизатор снова. На этот раз он воспользуется предварительно проложенными участками fanout/escape‑трассировки.
Ручная трассировка
Теперь можно рассматривать концы escape‑маршрутов как «цели», к которым нужно вести трассы. При этом можно игнорировать фактические линии соединений, поскольку вы можете трассировать от других концов цепей к ближайшему escaped I/O‑маршруту (пространственно и по слою) на PCB, а не к тому, который находится в той же цепи. Соединения не совпадут. Вместо этого получится серия небольших разрывов между escape‑трассировкой от I/O‑выводов FPGA и вашей трассировкой, идущей из других частей PCB. На изображении ниже показан простой пример.
Финальная оптимизация
Запустите автоматический оптимизатор ещё раз — он назначит разведённые подсети ближайшему возможному escaped I/O‑выводу. В результате останется набор очень коротких соединений, которые нужно завершить. Для этого случая у автоматического оптимизатора есть специальные процедуры, позволяющие получить хороший результат. Эти соединения теперь можно трассировать интерактивно или автоматически.
Ручные перестановки выводов
Используйте интерактивный инструмент перестановки, чтобы выполнить любые необходимые вам точечные изменения перестановок выводов.
Передача изменений обратно в схему
Когда вы готовы передать эти назначения выводов обратно в схему, рекомендуется отключить изменения выводов на символах схемы. Это связано с тем, что FPGA часто представлены как многосекционные компоненты, где каждый банк выводов — отдельная часть на схеме. Перемещение выводов из одной части в другую сделает эти символы логически некорректными, поскольку символ банка будет содержать выводы, которые не относятся к этому банку. В такой ситуации правильный подход — выполнять перестановки выводов путём изменения меток цепей.
Повторяйте столько раз, сколько требуется
Этот процесс можно запускать столько раз, сколько необходимо, и в любой момент в ходе проектирования.