Создание многоканального проекта
Краткий обзор
- Как работает многоканальное проектирование в Altium Designer: от создания повторяющихся фрагментов принципиальной схемы до автоматического формирования всех каналов для проектирования печатной платы
- Чем создание каналов с помощью нескольких символов листов отличается от использования ключевого слова Repeat
- Как именование, компиляция, комнаты и настройки связности помогают организовать повторяющиеся каналы в структурированном проекте
Электронные устройства нередко содержат повторяющиеся участки схемы. Это может быть стереоусилитель или 64-канальный микшерный пульт. Разработка таких устройств полностью поддерживается набором функций, известным как multi-channel design.

Два канала декодера видеомультиплексора: использование многоканальной структуры позволяет создавать схему канала декодера только один раз.
При многоканальном проектировании повторяющуюся схему создают один раз, а затем указывают программе повторить ее нужное число раз. При автоматической компиляции проекта его структура разворачивается в памяти: все компоненты и соединения повторяются необходимое число раз в соответствии с заданной пользователем схемой именования каналов.
Созданная вами логическая схема никогда не преобразуется в плоскую структуру: исходные документы всегда сохраняют многоканальную структуру. При переносе на печатную плату физические компоненты и цепи автоматически создаются в нужном количестве экземпляров. Для работы со схемой и печатной платой доступны все стандартные инструменты перекрестного перехода и перекрестного выделения. В редакторе печатных плат также есть инструмент для копирования размещения и трассировки одного канала во все остальные каналы, позволяющий легко перемещать и поворачивать канал целиком.
Динамическая компиляция
Related page: Проверка проекта
Модель соединений проекта обновляется инкрементально после каждого действия пользователя благодаря динамической компиляции. Компилировать проект вручную не требуется — это происходит автоматически. Для проекта процесс автоматической компиляции выполняет три функции:
- Создает экземпляры элементов иерархии проекта.
- Устанавливает соединения цепей между всеми листами проекта.
- Формирует внутреннюю унифицированную модель данных (Unified Data Model, UDM) проекта.
Благодаря этому любые изменения проекта немедленно отражаются в Navigator и на панели Проекты .
Скомпилированная модель проекта называется унифицированной моделью данных (UDM). UDM содержит подробное описание каждого компонента проекта и соединений между компонентами.
Чтобы выявить логические, электрические ошибки и ошибки оформления на основе UDM и настроек компилятора, необходимо выполнить проверку проекта. Для этого выберите команду Project » Validate Project в главном меню либо щелкните правой кнопкой мыши запись проекта на панели Projects и выберите команду Validate Project в контекстном меню.
Все нарушения, обнаруженные компилятором, отображаются в виде предупреждений и/или ошибок на панели Messages. При проверке исходных документов на наличие нарушений компилятор использует параметры, заданные на вкладках Отчеты об ошибках и Матрица соединений диалогового окна Options for Project (в зависимости от типа проекта).
Унифицированная модель данных
Чтобы разобраться в многоканальном проектировании, полезно понять, как организована работа с данными проекта. Один из основополагающих элементов программы — унифицированная модель данных (UDM). При автоматической компиляции проекта создается единая целостная модель, которая занимает центральное место в процессе проектирования. Доступ к данным этой модели и работа с ними осуществляются с помощью различных редакторов и сервисов программы. Вместо использования отдельных хранилищ данных для разных областей проектирования UDM объединяет всю информацию обо всех аспектах проекта, включая компоненты и их соединения.

Унифицированная модель данных обеспечивает доступ ко всем данным проекта из любого редактора и позволяет реализовать такие сложные функции, как многоканальное проектирование.
Возможности многоканального проектирования реализуются благодаря совместному использованию UDM и системы иерархического проектирования. «Канал» — это схема, представленная символом листа. Под этим символом может находиться как один лист, так и целая ветвь структуры проекта с другими вложенными листами. Также можно создавать каналы внутри каналов: в двухуровневом многоканальном проекте каналы верхнего уровня называются банками, а нижнего — каналами.
Поскольку это полное, готовое к переносу на печатную плату описание находится в памяти, участки схемы можно повторять при условии систематической обработки повторяющихся объектов, таких как позиционные обозначения компонентов и цепи. Правила именования задаются на вкладке Multi-Channel диалогового окна Options for Project, как описано ниже.
Создание многоканального проекта
Проект является многоканальным, если в нем повторяется участок схемы. Это задается на уровне символов листов одним из следующих способов:
- размещением нескольких символов листов, ссылающихся на одну и ту же дочернюю схему; или
- настройкой одного символа листа так, чтобы указанная в нем дочерняя схема повторялась нужное число раз.

Первое изображение: четыре символа листов ссылаются на один и тот же дочерний лист (PortIO.SchDoc). Второе изображение: с помощью ключевого слова Repeat лист InputChannel.SchDoc повторяется восемь раз, а OutputChannel.SchDoc — два раза.
Эти два подхода к созданию многоканального проекта показаны на изображениях выше. На первом изображении четыре символа листов ссылаются на один и тот же дочерний лист (PortIO.SchDoc). На втором изображении InputChannel.SchDoc повторяется восемь раз, а OutputChannel.SchDoc — два раза благодаря ключевому слову Repeat в поле Designator символа листа.
Для устранения совпадений позиционных обозначений компонентов и имен цепей в проекте используется стандартная схема именования. Например, один из вариантов — добавлять индекс канала к обозначениям повторяющихся компонентов и идентификаторам цепей (меткам цепей и портам), как показано в выделенных областях на изображениях ниже.
Обратите внимание на вкладки, которые появляются в нижней части схемы при открытии проекта. Вкладка Editor содержит созданную вами логическую схему. Также отображаются вкладки скомпилированных каналов (COUT1 и COUT2), представляющие физическую реализацию, которая будет передана в редактор печатных плат. Каждому физическому каналу соответствует отдельная вкладка.

Скомпилированный проект: вкладка логического представления и отдельные вкладки для каждого физического канала, передаваемого на печатную плату. Обратите внимание на обработку повторяющихся позиционных обозначений и идентификаторов цепей.
Ключевое слово Repeat
Как уже упоминалось, для повторения канала можно разместить несколько символов листов, ссылающихся на один дочерний лист, либо добавить ключевое слово Repeat в поле Designator символа листа. При использовании ключевого слова Repeat символ листа отображается в виде стопки символов.

Выражение Repeat задает обозначение канала и количество каналов. Обратите внимание: символ листа отображается в виде стопки символов, указывающей на повторение каналов.
Каждый канал идентифицируется обозначением, которое берется из Designator символа листа. Если многоканальная структура создается размещением нескольких символов листов, обозначением канала служит значение Designator, заданное для каждого символа листа. Если многоканальная структура создается с помощью ключевого слова Repeat, обозначением канала служит ChannelIdentifier+ChannelIndex, заданное ключевым словом Repeat.
Синтаксис поля Designator при использовании ключевого слова Repeat:
Repeat(<ChannelIdentifier>,<ChannelIndex_1>,<LastChannelIndex_n>)
Именование в многоканальном проекте
Возможность однократно создать схему, а затем повторно использовать ее — то есть многоканальное проектирование — реализована на основе единой модели данных (UDM) программного обеспечения. Повторяемым компонентам присваиваются имена по систематической схеме именования, которая настраивается на вкладке Multi-Channel диалогового окна Options for Project, как показано ниже.
Верхняя часть диалогового окна предназначена для настройки именования областей размещения (Room), а нижняя — для настройки именования компонентов в этих областях. Для областей размещения доступны 2 плоских и 3 иерархических стиля именования. Как правило, иерархический стиль требуется только в том случае, если проект содержит вложенные каналы. В остальных случаях плоский стиль дает более короткие и понятные имена областей размещения.
Для именования компонентов параметры $Component$ChannelAlpha или $Component_$ChannelIndex позволяют получить наиболее короткие и понятные позиционные обозначения. Также можно создать собственную схему формирования позиционных обозначений, используя доступные ключевые слова.

Для управления повторяемыми компонентами и цепями применяется систематическая схема именования, выбранная на Multi-Channel вкладке диалогового окна Project Options.
Роль области размещения
Область размещения (Room) — это объект проекта печатной платы, определяющий участок платы, который затем можно использовать двумя способами:
- Contain objects — хотя область размещения создается как обычный многоугольный объект, фактически она представляет собой правило проектирования категории Placement. При определении области размещения указываются объекты, которые должны находиться внутри нее, — чаще всего это компоненты. При перемещении области все находящиеся в ней компоненты также перемещаются.
- To scope other design rules — помимо того, что области размещения сами являются правилами, их также можно использовать для задания области действия других правил проектирования. Например, одно правило ширины трассировки задает ширину проводников для класса цепей, а другое правило с более высоким приоритетом и областью действия Room может задавать иную ширину для того же класса цепей в пределах этой области размещения.
Области размещения отлично подходят для многоканальных проектов. Они могут создаваться автоматически при переносе проекта из редактора схем в редактор печатных плат в соответствии с настройками на вкладке Class Generation диалогового окна Project Options: по одной области для каждого символа листа. Помимо группирования компонентов канала, область размещения можно использовать при формировании имен находящихся в ней компонентов. Подробнее об областях размещения и их роли в процессе проектирования платы см. в разделе Проектирование многоканальных печатных плат этой статьи.
Связность в многоканальном проекте
Для многоканального проекта установите для Net Identifier Scope значение Automatic, Hierarchical или Strict Hierarchical. Многоканальный проект должен быть иерархическим, поскольку при компиляции программное обеспечение использует эту структуру для создания экземпляров каналов в памяти.
Программное обеспечение должно поддерживать два варианта подключения цепи к повторяемому каналу. Цепь может быть:
- общей для всех каналов или
- уникальной для каждого канала.
Поддержка этих вариантов зависит от способа определения каналов: с помощью нескольких символов листа или ключевого слова Repeat. Если в проекте используется несколько символов листа (отдельный символ для каждого канала), связность цепей задается явно — проводами, размещенными разработчиком.

В этом проекте для создания нескольких каналов используется ключевое слово Repeat.
Если в проекте используется ключевое слово Repeat, действуют следующие правила подключения.
| Passing a Net to all Channels | Если цепь должна быть доступна во всех каналах, ее достаточно подключить к входу листа, как показано на рисунке выше для цепи Monitor, подключенной к символу листа InputChannel.SchDoc. Цепи Effects, MB1 и MB2 также будут доступны во всех каналах. Цепи в составе шины обрабатываются аналогично: если шина подключена к входу листа, каждый ее элемент доступен во всех каналах. |
| Passing a net to a Specific Channel | Чтобы выделить каждому каналу по одной цепи из шины, в имени входа листа используется ключевое слово Repeat. Это показано на рисунке выше для шины Headphone, вход листа которой имеет имя Repeat(Headphone). В этом случае цепь Headphone1 подключается к каналу CIN1, цепь Headphone2 — к каналу CIN2 и так далее. Если каналы созданы с помощью ключевого слова Repeat, передать отдельную цепь только в один канал невозможно. Если это необходимо, следует разместить отдельный символ листа для каждого канала. |
Как формируются имена цепей
В конечном счете каждая цепь на печатной плате может иметь только одно имя: одна цепь платы не может иметь два имени. Программное обеспечение автоматически сводит несколько имен одной цепи к единственному имени в проекте. Поэтому в многоканальном проекте важно настроить параметры именования так, чтобы цепи получали понятные вам имена. Параметры именования цепей находятся в разделе Netlist Options на вкладке Options диалогового окна Options for Project.
Для многоканального проекта рекомендуется включить параметр Higher Level Names Take Priority, а также разместить метки цепей на всех цепях, подключенных к дочернему листу, используемому в каналах.
В качестве примера рассмотрим рисунки ниже. Обратите внимание: оба символа листа ссылаются на лист PCB_Decoder.SchDoc, поэтому данная схема представлена двумя каналами с обозначениями U_PCB_DecoderA и U_PCB_DecoderB.
Символ листа содержит вход листа с именем TDI, который соответствует линии ввода тестовых данных (TTest DData IIn) в цепочке периферийного сканирования JTAG. TDO (Test Data Out — выход тестовых данных) канала DecoderA подключается к TDI следующего устройства в цепочке, находящегося в канале DecoderB.

Два канала декодера создаются путем размещения двух символов листа, ссылающихся на одну и ту же схему PCB_Decoder.SchDoc.
При открытии проекта в нижней части окна схемы появляются вкладки каналов U_PCB_DecoderA и U_PCB_DecoderB. На этих вкладках показано физическое представление проекта в том виде, в котором оно будет передано в редактор печатных плат. На изображениях ниже исходная схема декодера показана на вкладке Editor слева, а за ней — два физических канала этой схемы, U_PCB_DecoderA и U_PCB_DecoderB.
На исходной схеме разработчик присвоил цепи метку TDI (первое изображение). Обратите внимание, что на вкладке DecoderA программа применила имя цепи верхнего уровня TDO_CONTROLLER (второе изображение), поскольку в этом проекте именам цепей верхнего уровня назначен приоритет. Для DecoderB имя верхнего уровня не задано, поэтому исходное имя цепи TDI в этом канале преобразовано в TDI_2 (третье изображение) в соответствии со схемой именования, заданной на вкладке Многоканальность диалогового окна Project Options (схема Component Naming используется для обозначения как компонентов, так и цепей внутри каждого канала).

Схема PCB_Decoder.SchDoc: первое изображение — исходная схема; второе и третье — скомпилированные представления двух каналов.
Отображение скомпилированных имен
Отслеживание и анализ цепей в многоканальном проекте могут вызывать затруднения: имена повторяющихся цепей должны изменяться, оставаясь при этом уникальными. Для упрощения этой задачи предусмотрен ряд параметров отображения скомпилированных имен объектов, включая позиционные обозначения компонентов, метки цепей, порты питания и порты. Также доступны параметры для номеров листов и документов — они понадобятся при подготовке материалов к печати.
Отображение скомпилированных имен объектов настраивается на странице Схема — Компилятор диалогового окна Preferences, как показано на изображении ниже.

Настройка отображения скомпилированных имен объектов; для позиционных обозначений компонентов удобно использовать надстрочные индексы.
Как правило, следует включить отображение позиционных обозначений и меток цепей; отображение портов полезно при поиске неполадок. Номера листов и документов также важны и должны быть правильно настроены. Ссылки на информацию о нумерации компонентов и листов приведены в разделе Аннотация проекта.
Если выбран параметр Display superscript if necessary , в текущем представлении документа идентификатор объекта из скрытого представления будет показан в виде надстрочного индекса. Настройте эти параметры в соответствии со своими предпочтениями.

Представление канала 2 (CIN2) многоканального проекта. Обратите внимание: позиционные обозначения и имена цепей исходной логической схемы отображаются в виде надстрочных индексов.
Устранение ошибок, связанных с несколькими именами цепи
По умолчанию проверка ошибок в редакторе схем отмечает каждый случай, когда у цепи есть несколько имен. Такая ситуация может возникнуть при намеренном изменении имени — например, когда цепь входит в символ листа, а внутри этого листа вы предпочитаете использовать другое имя. На изображении ниже приведено несколько таких примеров: выходы Left и Right объединены в шину на верхнем листе, но во входах листа называются Left и Right.
Использование шины позволяет представить два выходных канала одним символом листа с ключевым словом Repeat. Если бы для каналов Left и Right использовались отдельные проводники, разработчику пришлось бы разместить отдельные символы листов для левого и правого выходных каналов (оба со ссылкой на один и тот же дочерний лист схемы), а затем подключить каждый выход к соответствующему символу выходного листа.
Необходимо указать программе, как обрабатывать несколько идентификаторов одной цепи. Для этого выполните одно из следующих действий:
- Установите для проверки Nets with multiple names значение No Report на вкладке «Отчеты об ошибках» диалогового окна Options for Project. Этот вариант не рекомендуется, поскольку он отключает проверку данной ошибки во всем проекте. В качестве альтернативы можно:
- Разместить директиву Specific No ERC на соответствующих цепях. Для этого щелкните правой кнопкой мыши по ошибке или предупреждению на панели Messages и выберите команду Place Specific No ERC Marker for this violation. Будет активирован режим размещения объекта NoERC: к курсору будет прикреплен предварительно настроенный маркер Specific NoERC, готовый к размещению на цепи с ошибкой. После размещения дважды щелкните по нему, чтобы настроить стиль и цвет.

Обратите внимание на маленький треугольник, обведенный оранжевым: это маркер Specific No ERC, размещенный для отключения ошибок Duplicate Net Names на цепях MB1 и MB2.
Аннотация многоплатного проекта
Важная часть создания схемы — аннотация проекта, то есть назначение уникального идентификатора каждому компоненту и каждому листу схемы. В многоканальном проекте этот процесс состоит из двух этапов: сначала необходимо пронумеровать размещенные компоненты и созданные листы. Затем нужно пронумеровать экземпляры компонентов и листов, создаваемые в повторяющихся каналах.
- Подробнее об аннотации компонентов
- Подробнее о нумерации листов
Проектирование многоканальных печатных плат
При переносе проекта из редактора схем в редактор печатных плат компоненты каждого листа группируются в области размещения на плате, если в параметрах проекта включено создание областей размещения.
Главное преимущество использования комнат в многоканальном проекте заключается в том, что редактор печатных плат позволяет копировать размещение и трассировку из одной комнаты (канала) в другие комнаты (каналы). Кроме того, комнаты можно перемещать как единый объект, что упрощает компоновку каналов на печатной плате.

Восемь входных и два выходных канала после переноса проекта из редактора схем в редактор печатных плат. Красным цветом выделены комнаты.
Как связаны компоненты
Каждый компонент схемы связан с соответствующим компонентом печатной платы посредством уникального идентификатора (UID). UID назначается компоненту схемы при его размещении на листе, а затем передаётся компоненту печатной платы при переносе проекта в редактор печатных плат. Такой подход подходит для простого проекта, но не позволяет реализовать многоканальный проект, в котором один и тот же компонент схемы повторяется в каждом физическом канале: в этом случае компоненты печатной платы имели бы одинаковый UID.
Для решения этой задачи UID компонента печатной платы формируется путём объединения UID родительского символа листа и UID компонента схемы. Синтаксис UID компонента печатной платы немного различается в зависимости от способа создания многоканального проекта.
Если многоканальный проект создан путём размещения нескольких символов листа, ссылающихся на один и тот же лист схемы, каждый символ листа предоставляет уникальный идентификатор, поэтому UID компонента печатной платы имеет следующий формат:
\SheetSymbolUID\SchComponentUID
Если многоканальный проект создан с использованием ключевого слова Repeat, доступен только один UID символа листа, поэтому UID компонента печатной платы также включает ChannelIndex и имеет следующий формат:
\ChannelIndex+SheetSymbolUID\SchComponentUID
Отображение позиционных обозначений на печатной плате
В многоканальном проекте размещать строки позиционных обозначений бывает непросто, поскольку они могут быть довольно длинными. Помимо выбора способа именования, позволяющего получить короткие обозначения, можно отображать только исходное логическое обозначение компонента. Например, C30_CIN1 будет отображаться как C30. При этом на плату потребуется добавить другие обозначения для различения каналов, например обвести каждый канал рамкой на слое шелкографии компонентов.
Выбрать отображение логических или физических позиционных обозначений на печатной плате можно в разделе Other панели Properties редактора печатных плат (View » Panels » Properties). Если выбрать отображение логических обозначений компонентов многоканального проекта, они будут отображаться на плате и во всех формируемых выходных данных, например на распечатках и в файлах Gerber. Однако при формировании перечня компонентов всегда используются уникальные физические обозначения.
► Подробнее о назначении позиционных обозначений компонентам
Параметрическое многоканальное иерархическое проектирование
При повторном использовании фрагмента проекта — например, когда символ листа в текущем проекте ссылается на принятую в компании схему источника питания — возникает сложность: номиналы компонентов могут меняться от проекта к проекту.
Параметрическое иерархическое проектирование решает эту проблему: оно позволяет перенести задание номиналов компонентов с листа схемы в символ листа, который на него ссылается. Эта возможность также отлично работает в многоканальных проектах, позволяя задавать разные номиналы компонентов для каждого канала. Обратите внимание: для этого у каждого канала должен быть собственный символ листа, поскольку именно в нём хранятся номиналы компонентов.
Например, в графическом эквалайзере одна и та же схема может повторяться многократно, а каналы будут отличаться только номиналами компонентов. Так, конденсатор в разных каналах может иметь номиналы 0.12µF, 0.056µF и 0.033µF. Реализовать это просто: достаточно задать эти значения в символе листа, ссылающемся на каждый канал. Таким образом, не нужно создавать множество похожих схем, различающихся только номиналами компонентов.
Чтобы сделать компоненты параметрическими, их номиналы задают в виде параметров символа вышестоящего листа, а затем ссылаются на эти параметры в нужных компонентах. На рисунке ниже слева показан верхний лист схемы графического эквалайзера, а рядом — параметры символа листа 1KHz. Также на рисунке показаны схема нижнего уровня и скомпилированный канал 1KHz, выбранный с помощью вкладок внизу.

Графический эквалайзер с разными номиналами конденсаторов и резисторов в каждом канале. Фактические номиналы компонентов задаются в символах листов, поэтому достаточно создать всего одну схему нижнего уровня.
Каждый из этих параметров символа листа также задаётся в качестве value параметра компонента схемы на листе нижнего уровня, как показано на рисунке ниже. Значение каждого параметра символа листа передаётся соответствующему компоненту схемы, где затем подставляется в поле Comment компонента. Обратите внимание: если для отображения номинала компонента схемы напрямую используется параметр Value, а не параметр Comment, достаточно связать параметр символа листа с параметром Value компонента (Value=C2_Value) и сделать его видимым.

Поскольку параметр Value имеет значение =C2_Value, компилятор определяет, что фактическое значение компонента необходимо искать в символе листа на более высоком уровне иерархии.
Параметрическая иерархия не ограничивается значениями компонентов. С помощью параметрических ссылок можно обращаться к любому параметру компонента, а также к текстовым надписям других объектов на листе схемы, за исключением основных элементов, определяющих связи, таких как идентификаторы компонентов, объекты портов и имена файлов документов. Если вы ссылаетесь на параметры символа, расположенного на несколько листов выше по иерархии, система будет выполнять поиск по иерархии, пока не найдет соответствующий параметр.
