Главная страница: Подробнее о схемах
Когда схемы изначально создавались на бумаге, зачастую это делалось на одном большом листе, занимающем весь чертежный стол, и затем эта схема воспроизводилась с помощью широкоформатного копира. Времена изменились, и теперь ввод схем осуществляется на настольном компьютере, они хранятся на сервере и распечатываются на небольших лазерных принтерах.
Это изменение означает, что даже простой проект может быть легче отобразить и прочитать, если он представлен на множестве листов схем. Даже когда проект не особо сложный, есть преимущества его структурирования на множестве листов.
Например, проект может включать в себя модульные элементы. Сопровождение этих модулей в виде отдельных документов позволяет работать над проектом одновременно нескольким проектировщикам. Когда проект разбит на логические модули, это также повышает его читаемость, что важно для тех, что будет читать схему в дальнейшем, на более поздней стадии жизненного цикла этого изделия. Другим преимуществом является то, что когда проект разделен на ряд листов с меньшим количеством компонентов на каждом из них, можно использовать печать на малом формате, например с помощью лазерного принтера.
Если вы хотите разбить проект на множество листов, нужно принять два решения относительно следующих моментов:
- Структурная связь листов
- Способ электрической связности между цепями на этих листах.
Выбор будет зависеть от типа и размера проекта, а также ваших личных предпочтений.
Эта статья ориентирована на описание структурной связи между листами, ее работы и средств, доступных для создания многолистового проекта. Чтобы узнать больше о создании связности, перейдите на страницу
Создание связности.
Плоский или иерархический проект
Как упоминалось ранее, вам как проектировщику необходимо решить, каким образом будут организованы листы схем и как между этими листами будет задана связность. Тем не менее, это не отдельные решения, поскольку при выборе структуры вам также нужно выбрать, как будут созданы связи между этими листами.
Существует два подхода к структурированию многолистового проекта: плоский или иерархический.
Способ, используемый для связи дочернего и родительского листа, одинаков для плоских и иерархических проектов. То,
как создана связность, определяет, является ли проект плоским или иерархическим.
Плоский проект
Плоский проект можно воспринимать, как если бы большой лист схем был разрезан на несколько более малых листов – в плоском проекте все листы находятся на одном уровне. Связность в плоском проекте создается непосредственно между листами – этот тип связности также называется горизонтальной.
Использование в плоском проекте листа верхнего уровня является опциональным. Если такой лист добавлен, он будет содержать в себе символы листов всех листов в проекте, но в нем не может быть размещено каких-либо линий связи. В плоском проекте может быть любое количество листов.
На первом изображении показан плоский проект без листа верхнего уровня, на втором – тот же проект с листом верхнего уровня. Обратите внимание, что на листе верхнего уровня нет линий связи, он лишь показывает листы в проекте.
На обоих изображениях выше показано плоский проект, в первой версии которого нет листа верхнего уровня, а во второй он есть. Для небольших проектов, в которых находятся лишь два или три листа, вы можете решить, что лист верхнего уровня не представляет ценности. При увеличении количества листов, лист верхнего уровня может помочь тому, кто будет читать схему, понять работу устройства исходя из того, как на этом листе расположены логические блоки (символы листов). Все листы проекта будут отображаться в панели Projects на одном уровне, поскольку иерархия отсутствует.
Иерархический проект
Важно помнить что иерархический проект может иметь только один лист верхнего уровня. Все другие исходные документы должны быть указаны с помощью символов листа. При выполнении валидации проекта, проверка
Множественного числа документов верхнего уровня может быть выполнена для обнаружения несоответствий. Кроме того, ни один символ листа не может ссылаться на лист, на котором он находится, или на любой лист выше по лестнице, так как это создаст неразрешимую петлю в структуре.
В иерархическом проекте символы листов создают связь между родительскими и дочерними листами, и связность осуществляется через входы в лист в этих символах листов, а не напрямую между портами на разных листах.
Как в плоском проекте, идентификация дочернего листа осуществляется определением имени файла в символе листа. В иерархическом проекте этот дочерний лист также может включать в себя символы листов, ссылающиеся на листы более низкого уровня, что создает еще один уровень иерархии. На изображении ниже показан иерархический проект с тремя уровнями иерархии.
В иерархическом проекте, структура, показанная в дереве, определяется подчиненной связью, созданной символами листов.
В иерархическом проекте, сигнал на дочернем листе покидает лист через порт (Port), который связан выше с соответствующим входом в лист (Sheet Entry) на родительском листе. Родительский лист включает в себя линии связи, которые передают этот дочерний сигнал ко входу в лист другого символа листа, после чего он идет вниз к соответствующему порту на другом дочернем листе, как показано на изображении ниже.
Может быть задана любая глубина этой структуры родительских и дочерних листов, и в иерархическом проекте может быть любое количество листов.
Связность между листами определяется областью действия идентификаторов цепей (Net Identifier Scope), которая задается на вкладке Options диалогового окна Project Options. Чтобы узнать больше об создании связности, перейдите на страницу Создание связности. Обратите внимание, что область действия идентификаторов цепей включает в себя опцию Automatic, которая является хорошим выбором, если нет каких-либо нестандартных требований к связности.
Другим преимуществом иерархических проектов является то, что они лежат в основе системы повторного использования проектных данных. Эта система доступна в двух вариантах, зависящих от того, как хранятся данные – на основе файловой или серверной системы.
- Файловая система называется листами устройств. Здесь вы размещаете существующий лист из библиотеки листов устройств непосредственно в создаваемый проект. Чтобы узнать больше о листах устройств, перейдите на страницу Листы устройств.
- Серверная система называется управляемыми листами. Здесь вы размещаете существующую схему с сервера управляемых данных непосредственно в создаваемый проект. Чтобы узнать больше об управляемых листах, перейдите на страницу Управляемые листы.
Создание многолистовых проектов
Когда вы добавляете в проект второй лист схемы, проект становится многолистовым. Если вы планируете создать плоский проект без верхнего листа, вы просто добавляете в проект листы схем, корректно задав область действия идентификаторов цепей.
Если вы хотите использовать символы листов для ссылок на листы нижнего уровня, вы можете либо разместить символ листа и вручную изменить его так, чтобы он корректно указывал на лист нижнего уровня, либо вы можете использовать различные встроенные команды, как описано ниже.
Определение ссылки на дочерний лист
Свойство File Name символа листа определяет ссылку на лист нижнего уровня. Обратите внимание, что это поле должно включать в себя только имя файла схемы, без пути к расположению файла (это расположение хранится в файле проекта).
Свойство File Name связывает этот символ листа с дочерним листом схемы.
Обратите внимание, что дочерний лист схемы не обязательно должен храниться в той же папке, что и родительская схема. Если файл хранится в папке уровнем ниже родительской папки, то используется относительный путь к файлу. Если файл хранится в другом расположении, то используется абсолютный путь к файлу. Будьте внимательны при перемещении файлов такого проекта либо используйте средство Project Packager для упаковки файлов в ZIP-архив, поскольку при архивировании проекта пути к файлам преобразуются соответствующим образом.
Создание иерархии
Система включает в себя ряд команд, которые позволяют создать многолистовую иерархическую структуру быстро и эффективно. То, какие команды следует использовать, зависит от вашей личной методологии проектирования, которую можно определить как проектирование сверху вниз или как проектирование снизу вверх. Использование этих команд более эффективно по сравнению с созданием иерархии вручную, поскольку они управляют всеми элементами, необходимыми для процесса, такими как добавление входов в лист, создание новых листов схем, размещение портов и т.д.
Для построения иерархии сверху вниз используйте эту команду:
- Design » Create Sheet From Sheet Symbol – используйте эту команду, чтобы создать новый лист схемы для указанного символа листа. На дочерний лист добавляются порты, которые соответствуют всем входам в лист, найденным в этом символе листа. Не беспокойтесь, если вы еще не включили в символ листа все нужные входы в лист – если позже понадобится добавить больше входов лист, вы сможете повторно синхронизировать входы в лист и порты, как описано далее.
Для построения иерархии снизу вверх используйте эту команду:
- Design » Create Sheet Symbol From Sheet or HDL – используйте эту команду, чтобы создать символ из указанного листа схемы. Для использования этой команды сначала перейдите на лист, где будет находиться новый символ листа, затем запустите команду. Символ листа будет включать в себя входы в лист, соответствующие всем найденным портам. Если на более позднем этапе порты или входы в лист будут добавляться/удаляться, их можно будет повторно синхронизировать, как описано далее.
Для реорганизации размещения цепей в проекте используйте эту команду:
- Edit » Refactor » Move Selected Sub-circuit to Different Sheet – используйте эту команду, чтобы переместить выбранные компоненты и линии связи на другой лист в проекте. Будет открыто диалоговое окно Choose Destination Document, позволяющее вам выбрать любую существующую в проекте схему. Эта команда описана более подробно далее.
Если вы задаетесь вопросом, для чего нужна отдельная команда для перемещения компонентов с одного листа на другой, то это потому, что стандартные команды копирования и вставки автоматически сбрасывают уникальные идентификаторы (UID) компонентов. Этот идентификатор связывает компонент на схеме с компонентом на плате, и если идентификатор компонента был сброшен, то при синхронизации проекта (при использовании команды Design » Update) система предложит сопоставить компоненты по их позиционным обозначениям. При необходимости идентификаторы можно повторно синхронизировать с помощью команды Project » Component Links в редакторе плат.
► Узнайте больше о Синхронизации проекта
Реструктуризация проекта
Главная страница: Реструктуризация проекта
Процесс проектирования зачастую не упорядочен, проектировщик может формулировать идеи одновременно для множества частей проекта, формируя эти части по мере развития своих идей. Это значит, что схемы могут стать перегруженными и плохо организованными. Хотя вы можете вырезать, копировать и вставлять содержимое схем для реструктуризации проекта, если не всегда является лучшим подходом.
Почему так? При размещении компонента ему назначает уникальный идентификатор, и этот идентификатор автоматически сбрасывается при вырезании/копировании и вставке компонента. Такое управление уникальными идентификаторами служит для того, чтобы обеспечить использование в проекте лишь одного экземпляра каждого идентификатора, поскольку он является ключевым полем, которое связывает компонент на схеме с компонентом на плате. Подход с вырезанием/копированием/вставкой подходит, если проект не был передан в редактор плат, но в противном случае лучше использовать инструменты реструктуризации.
Перемещение подцепи на другой лист
Самым простым способом перемещения участка схемы с одного листа на другой является его выделение и запуск команды Edit » Refactor » Move Selected Sub-circuit to Different Sheet. Будет открыто диалоговое окно Choose Destination Document, где вы выбираете целевой лист и нажимаете OK. Будет открыт выбранный лист, где под курсором будут отображены выбранные объекты, готовые к размещению.
Выделенную часть схемы можно легко переместить на другой лист в проекте с помощью команды Move Selected Subcircuit to Different Sheet.
► Узнайте больше о Реструктуризации проекта.
Синхронизация портов и входов в лист
Если вы переместили компоненты и линии связи в рамках реструктуризации проекта, то также может понадобиться повторно синхронизировать дочерний лист с его символом листа, чтобы у каждого порта был соответствующий вход в лист. Это выполняется с помощью команды Synchronize Sheet Entries and Ports, которую можно использовать следующим образом:
- Для определенного символа листа – щелкните ПКМ по символу листа, чтобы отобразить контекстное меню, и выберите команду Sheet Symbol Actions » Synchronize Sheet Entries and Ports, чтобы проанализировать только символ листа, находящийся под курсором.
- Для всех символом листов в проекте – выберите команду Design » Synchronize Sheet Entries and Ports, чтобы проанализировать все символы листов во всем проекте. Диалоговое окно будет включать в себя вкладки, соответствующие символам листов в проекте, согласно состоянию опции Only Show unmatched sheet symbols (Отображать только несогласованные символы листов) в нижней части диалогового окна.
При использовании любой из этих команд будет открыто диалоговое окно Synchronize Ports to Sheet Entries. В правой части будет приведен список уже согласованных портов и входов в лист, а несогласованные порты и входы в лист будут приведены в двух столбцах в левой части диалогового окна.
Диалоговое окно Synchronize Ports to Sheet Entries используется для обеспечения того, что входы в лист соответствуют портам на дочернем листе. Обратите внимание на две вкладки – это значит, что в этом проекте есть два символа листов с несоответствиями входов в лист и портов.
Несоответствия отображаются в левой части диалогового окна. Выберите вход в лист в первом столбце, затем нужный порт во втором столбце и нажмите нужную кнопку в средней части диалогового окна для обновления одного из этих объектов, чтобы они стали синхронизированными (и перешли в список в правой части диалогового окна).
Кнопки работают следующим образом:
- - – использует свойства входа в лист и применяет их к выбранному порту.
- - использует свойства порта и применяет их к выбранному входу в лист.
Если в левом столбце выбрано множество входов в лист, система синхронизирует каждый вход в лист с соседним портом во втором столбце. Если соседнего порта (или входа в лист) нет, система создаст новый.
Если командой будут добавлены новые входы в лист или порты, их будет необходимо корректно разместить на листе схемы.
Многоканальный проект
Электронные устройства зачастую включают в себя повторяющиеся участки схемы. Это может быть стерео-усилитель или 64-канальный микшерский пульт. Подобные проекты полностью поддерживаются в так называемых многоканальных проектах.
Два канала декодера видеомультиплексора. Использование многоканальной структуры проекта означает, что ввод схемы канала декодера осуществляется лишь один раз
В многоканальном проекте вы осуществляете ввод схемы повторяющегося участка схемы лишь один раз, затем указываете системе повторить его нужное количество раз. При автоматической компиляции проекта он раскладывается в оперативной памяти, со всеми компонентами и связностью, повторенной нужное количество раз, в соответствии с заданной пользователем схемой именования каналов.
Логический проект, который вы вводите, по факту никогда не раскладывается, исходные данные всегда остаются в виде многоканальной схемы. Когда вы передаете проект на плату, физические компоненты и цепи автоматически добавляются нужное количество раз. Вы можете свободно использовать стандартные средства перекрестного перехода и перекрестного выделения, доступные для работы между схемой и платой. В редакторе плат также существует средство дублирования размещения компонентов и трассировки одного канала на другие, с возможностью легко перемещать и поворачивать весь канал.
Динамическая компиляция
Связанная страница: Компиляция и верификация проекта
Модель связности проекта инкрементально обновляется после каждого действия пользователя. Не нужно вручную запускать компиляцию проекта, поскольку она осуществляется автоматически. Процесс автоматической компиляции выполняет для проекта три функции:
- Формирует иерархию проекта.
- Создает связность цепей между всем листами проекта.
- Строит внутреннюю унифицированную модель данных (Unified Data Model – UDM) проекта.
Благодаря автоматической компиляции все внесенные проектные изменения сразу отражаются в панелях Navigator и Projects.
Скомпилированная модель проекта называется унифицированной моделью данных (Unified Data Model – UDM). Эта модель включает в себя подробное описание каждого компонента в проекте и его связность с другими компонентами.
Для работы динамической компиляции, в диалоговом окне
Advanced Settings должна быть включена опция
Schematic.DynamicCompiler
. Эта опция включена по умолчанию.
Для проверки модели UDM на логические, электрические и графические ошибки в соответствии с настройками компилятора необходимо провести валидацию проекта. Вызов этой команды осуществляется выбором Project » Validate Project из главного меню или щелчком ПКМ по записи проекта в панели Projects и выбором Validate Project из контекстного меню.
Все найденные компилятором нарушения будут приведены как предупреждения и/или ошибки в списке в панели Messages. При проверке исходных документов проекта на нарушения, компилятор использует опции, заданные на вкладках Error Reporting и Connection Matrix диалогового окна Project Options (в соответствии с типом проекта).
В версиях системы до Altium NEXUS 20.0, для построения унифицированной модели данных было необходимо компилировать проект вручную. Сейчас модель данных проекта обновляется инкрементально после каждой операции благодаря динамической компиляции, что формирует так называемую динамическую модель данных (Dynamic Data Model – DDM). Нет ручной компиляции проекта, она осуществляется автоматически.
Унифицированная модель данных
Для понимания многоканальных проектов будет полезно понять, как осуществляется управление проектными данными. Фундаментальным элементом системы является унифицированная модель данных (Unified Data Model – UDM). При автоматической компиляции проекта формируется единая, целостная модель, которая лежит в основе процесса проектирования. К данным в этой модели можно получить доступ из различных редакторов и служб системы. Вместо использования отдельных наборов данных, которые хранятся для каждого отдельного аспекта проектирования, модель UDM организована для хранения всей информации для всех аспектов проектирования, в том числе данных о компонентах и их связности.
Модель Unified Data Model делает все проектные данные доступными для всех редакторов и позволяет использовать такие расширенные возможности, как многоканальное проектирование.
Модель UDM в сочетании с иерархической системой проектирования позволяет использовать возможности многоканального проектирования. "Каналом" является часть схемы внутри символа листа. Ниже этого символа листа может быть один лист или целая ветка структуры проекта, содержащая в себе прочие листы более низкого уровня. Вы также можете создавать каналы внутри каналов. В двухуровневом многоканальном проекте каналы более высокого уровня называются банками, а каналы более низкого уровня называются собственно каналами.
Поскольку в оперативной памяти находится полное описание проекта, готовое к передаче на плату, то возможно повторить часть схемы, так как существует систематический подход к обработке повторяемых объектов, таких как позиционные обозначения компонентов и цепи. Систематическое именование определяется на вкладке Multi-Channel диалогового окна Project Options, как описано ниже.
Создание многоканального проекта
Проект является многоканальным, если в нем повторяется части схемы. Это осуществляется на уровне символов листов одним из следующих способов:
- размещением множества символов листов, которые все ссылаются на одну и ту же дочернюю схему;
- настройка одного символа листа на повторение дочерней схемы нужное количество раз.
На первом изображении показаны четыре символа листа, которые все ссылаются на один дочерний лист схемы (PortIO.SchDoc). На втором изображении показана схема InputChannel.SchDoc, повторенная восемь раз, и схема OutputChannel.SchDoc, повторенная дважды с помощью ключевого слова Repeat
.
Существует два подхода к созданию многоканальных проектов, как показано на изображениях выше. На первом из них показаны четыре символа листа, которые все ссылаются на один дочерний лист (PortIO.SchDoc
). На втором изображении схема InputChannel.SchDoc
повторяется восемь раз, а схема OutputChannel.SchDoc
– дважды, с помощью ключевого слова Repeat
в поле Designator символа листа.
Обработка повторяющихся позиционных обозначений компонентов и имен цепей осуществляется применением стандартной схемы именования. Например, на изображении ниже показано применение схемы именования, которая добавляет повторяемым компонентам и идентификаторам цепей (объектам Net Label и Port) индекс канала.
Обратите внимание на вкладки, которые появляются под схемой при открытии проекта. Вкладка Editor содержит в себе логический проект, который вы создали, а остальные скомпилированные вкладки (COUT1 и COUT2) представляют физический проект, который будет передан в редактор плат. Для каждого физического канала есть отдельная вкладка.
Скомпилированный проект, показывающий вкладку логического вида проекта и вкладку для каждого из физических каналов, которые будут переданы на плату. Обратите внимание, как обрабатываются повторяющиеся позиционные обозначения и идентификаторы цепей.
Схема именования каналов определяется на вкладке
Multi-Channel диалогового окна
Project Options.
Ключевое слово Repeat
Как упоминалось ранее, повторение канала осуществляется путем размещения множества символов листов, которые ссылаются на один дочерний лист схемы, или путем включения в поле Designator символа листа ключевого слова Repeat
. При использовании ключевого слова Repeat
, символ листа отображается как набор наложенных друг на друга символов листов.
Ключевое слово Repeat
определяет обозначение канала и количество каналов. Обратите внимание, что символ листа отображается как набор наложенных друг на друга символов для обозначения повторяемых каналов.
Каждый канал обозначается идентификатором канала, который берется из поля Designator символа листа. Когда каналы в проекте создаются путем размещения множества символов листов, обозначением канала является значение поля Designator, заданное для каждого символа листа. Если каналы в проекте создаются с помощью ключевого слова Repeat
, то обозначением канала является строка ИдентификаторКанала+ИндексКанала
, заданная ключевым словом Repeat
.
Синтаксис поля Designator при использовании ключевого слова Repeat
:
Repeat(<ChannelIdentifier>,<ChannelIndex_1>,<LastChannelIndex_n>)
Обратите внимание, что диапазон индексов должен начинаться с 1. Начальный индекс 0 (ноль) не поддерживается.
Именование многоканальных проектов
Концепция ввода части схемы и ее повторения, т.е. многоканальное проектирование, доступна благодаря унифицированной модели данных. Именование повторяющихся компонентов осуществляется с помощью систематической схемы именования, которая настраивается на вкладке Multi-Channel диалогового окна Project Options, как показано ниже.
Вкладка диалогового окна включает в себя верхнюю часть, используемую для управления именованием комнат, и нижнюю часть, используемую для именования компонентов в этих комнатах. На уровне комнат существует два плоских и три иерархических стиля именования. Как правило, при создании проекта с каналами внутри каналов нужно выбрать иерархический стиль именования. С другой стороны, плоский стиль именования комнат является более кратким и простым для понимания.
Для именования компонентов, вариант $Component$ChannelAlpha
или $Component_$ChannelIndex
обеспечит самый краткий и самый простой для восприятия способ обозначения компонентов. Также возможно создать собственную схему именования обозначений с помощью доступных ключевых слов.
Обработка повторяющихся компонентов (и цепей) осуществляется путем применения систематической схемы именования, выбранной на вкладке Multi-Channel диалогового окна Project Options.
- Так же, как и для компонентов, схема Component Naming используется для уникальной идентификации цепей внутри каждого канала. Эта схема используется для переименования идентификаторов цепей, в том числе меток цепей и портов.
- Отображение этих имен на листе схемы описано ниже, в разделе Отображение скомпилированных имен.
Назначение комнат
Комната (объект Room) – это объект редактора плат, используемый для определения области на плате, которая может использоваться двумя способами:
- Размещение объектов – хотя комната размещается подобно любому полигональному объекту, она также создает правило проектирования Placement. В определении комнаты задаются объекты, которые должны находиться в ней – зачастую это компоненты. При перемещении комнаты, все компоненты в ней также будут перемещаться.
- Определение области действия других правил проектирования – помимо того, что комната сама по себе является правилом, ее также можно использовать для определения области действия других правил. Например, одно правило Width определяет ширину трасс определенного класса цепей, а другое правило с более высоким приоритетом, областью действия которого является комната, может определять иную ширину для этого класса цепей внутри комнаты.
Комнаты применяются для многоканальных проектов. Они могут быть созданы автоматически для каждого символа листа при передаче проекта из редактора схем в редактор плат, в соответствии с настройками на вкладке Class Generation диалогового окна Project Options. Помимо объединения компонентов в этом канале, комнату также можно использовать в именовании компонентов внутри этой комнаты. О комнатах и их назначении в процессе конструирования платы сказано далее, в разделе Конструирование платы многоканального проекта.
Если вы предпочитаете использовать плоскую систему нумерации компонентов, возможно заменить систематическую схему именования путем проведения аннотирования на уровне платы –
Board Level Annotation. Оно называется так, потому что позиционные обозначения компонентов применяются только к полному, скомпилированному проекту (физическому проекту), который должен стать платой.
Связность в многоканальном проекте
Для многоканального проекта задайте область действия идентификаторов цепей Net Identifier Scope как Automatic
, Hierarchical
или Strict Hierarchical
. Многоканальный проект должен быть иерархическим, поскольку система использует эту структурную модель для формирования каналов в оперативной памяти при компиляции проекта.
Существует два различных требования, которые система должна поддерживать для цепи, подключенной к повторяемому каналу. Эта цепь может быть:
- общей для всех каналов либо
- быть уникальной для каждого из каналов.
Уровень этой поддержки зависит от того, какой метод использовался для определения каналов (множество символов листов или ключевое слово Repeat
). Если использовалось множество символов листов (отдельный символ листа для каждого канала), то связность цепей является явной, определяемой линиями связи, которые размещает проектировщик.
В этом проекте для создания множества каналов используется ключевое слово Repeat
.
Если в проекте используется ключевое слово Repeat
, то применяются следующие соглашения о связности.
Передача цепи во все каналы |
Если нужно, чтобы цепь была доступна во всех каналах, ее линия связи просто прокладывается ко входу в лист, как показано на изображении выше, где цепь Monitor подключена к символу листа InputChannel.SchDoc . Цепи Effects , MB1 и MB2 также будут доступны во всех каналах. Цепи в шине обрабатываются таким же образом – при подключении шины ко входу в лист каждый элемент этой шины будет доступен во всех каналах. |
Передача цепи в определенный канал |
Чтобы передать одну цепь из шины в каждый канал, во входе в лист используется ключевое слово Repeat , как это показано для шины Headphone на изображении выше, где у входа в лист задано имя Repeat(Headphone) . В этом случае, цепь Headphone1 будет подключена к каналу CIN1 , цепь Headphone2 – к каналу CIN2 и т.д. Если для создания каналов используется ключевое слово Repeat , невозможно передать отдельную цепь только одному каналу. Если это необходимо, нужно разместить отдельный символ листа для каждого канала. |
Как именуются цепи
В конечном итоге, у каждой цепи может быть только одно имя на печатной плате (у одной цепи на плате не может быть задано двух имен). Система автоматически обрабатывает цепи со множеством имен, чтобы в проекте было только одно имя – важно, какие опции именования вы задаете в многоканальном проекте, чтобы цепи были обозначены осмысленным для вас способом. Опции именования цепей находятся в области Netlist Options на вкладке Options диалогового окна Project Options.
Хорошим подходов к настройке многоканального проекта является включение опции Higher Level Names Take Priority, а также размещение меток для всех цепей, которые подключаются к дочерним листам каналов.
В качестве примера рассмотрим изображение ниже. Обратите внимание, что оба символа листов указывают на лист PCB_Decoder.SchDoc
, поэтому есть два канала этого участка схемы, обозначенные как U_PCB_DecoderA и U_PCB_DecoderB.
Символ листа включает в себя вход в лист под названием TDI
, который является входом тестовых данных (Test Data In line) в цепочке пограничного сканирования 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
(первое изображение). Обратите внимание, что система применила название цепи TDO_CONTROLLER
на вкладке DecoderA (второе изображение), поскольку это название цепи более высокого уровня (которому в этом проекте был задан более высокий приоритет). Для канала DecoderB не задано имени цепи более высокого уровня, поэтому изначальное имя цепи TDI
было обозначено в этом канале как TDI_2
(третье изображение) в соответствии со схемой именования, заданной на вкладке Multi-Channel диалогового окна Project Options (схема Component Naming используется для идентификации как компонентов, так и цепей в каждом канале).
Схема PCB_Decoder.SchDoc. На первом изображении показана созданная схема, на двух остальных показан скомпилированный вид каналов.
Отображение скомпилированных имен
Отслеживание и анализ цепей в многоканальном проекте могут быть запутанными, поскольку имена повторяющихся цепей должны меняться, чтобы оставаться уникальными. Чтобы помочь здесь, существует ряд опций для управления отображением скомпилированных имен объектов, в том числе позиционных обозначений компонентов, меток цепей и портов. Также есть опции для номеров документов и листов, которые важны при подготовке к созданию распечаток.
Отображение скомпилированных имен объектов настраивается на странице Schematic - Compiler диалогового окна Preferences. Они показаны на изображении ниже.
Настройте отображение скомпилированных имен объектов. Верхние индексы полезны для позиционных обозначений компонентов.
Как правило, нужно отображать позиционные обозначения и метки цепей. Для портов это полезно при выявлении проблем. Номера листов и номера документов также должны быть корректно настроены – ссылки на информацию по нумерованию компонентов и листов находятся в разделе Аннотирование проекта.
Если выбрана опция Display superscript if necessary, идентификаторы объектов из невидимой части будут отображены в текущем документе в виде верхних индексов. Задайте эту настройку в соответствии со своими предпочтениями.
Вид второго канала (CIN2) многоканального проекта. Обратите внимание, что позиционные обозначения компонентов и имена цепей из логической схемы отображаются в виде верхних индексов.
Почему некоторые элементы схемы затенены на вкладке канала? По умолчанию объекты, которые можно отредактировать на вкладке канала, отображаются стандартным образом, в то время как нередактируемые объекты затенены. Настройка затенения осуществляется на странице System - Navigation диалогового окна Preferences. Затенение объектов указывает вам на то, что выполнение каких-либо операций редактирования над ними недоступно, например перемещение метки цепи на вкладке канала. Задайте необходимый уровень затенения.
Устранение ошибок множества имен цепей
По умолчанию проверка на ошибки в редакторе схем помечает каждый экземпляр цепи со множеством имен. Множество имен цепи может быть задано специально, например когда цепь входит в символ листа и вы хотите использовать другое имя цепи на этом листе. На изображении ниже показано несколько примеров, где выходы Left и Right объединены в шину на верхнем листе, но на входах в листы они называются Left
и Right
.
Здесь была использована шина, поскольку она позволяет представить два выходных канала одним символом листа с помощью ключевого слова Repeat
. При использовании отдельных проводов для каналов Left и Right проектировщику пришлось бы разместить отдельные символы листов для выходных каналов Left и Right (которые оба ссылались бы на одну дочернюю схему) и подключить каждый выход к соответствующему символу листа выхода.
Системе необходимо указать, как обрабатывать множество идентификаторов цепей. Для этого нужно сделать одно из следующих действий:
- Задайте режим No Report для проверки Nets with multiple names на вкладке Error Reporting диалогового окна Project Options. Это не является предпочтительным, поскольку так будут заблокированы все проверки этой ошибки в проекте.
- Разместите директиву Specific No ERC на соответствующих цепях, щелкнув ПКМ по ошибке/предупреждении в панели Messages и выбрав команду Place Specific No ERC Marker for this violation. Вы перейдете в режим размещения объекта NoERC, где к курсору будет прикреплен предварительно настроенный маркер Specific NoERC, готовый к размещению на цепи с ошибкой. После размещения дважды щелкните ЛКМ по объекту, чтобы задать его стиль и цвет.
Обратите внимание на небольшой треугольник, выделенный оранжевым кругом. Это маркер Specific No ERC, который был размещен для отключения ошибок дублирующихся имен цепей MB1 и MB2.
Аннотирование проекта
Важной составляющей процесса ввода схемы является аннотирование проекта, то есть определение уникального идентификатора для каждого компонента и каждого листа схемы. Для многоканального проекта этот процесс состоит из двух этапов – сначала вы нумеруете размещенные компоненты и созданные листы, затем нумеруете компоненты и листы, сформированные повторяющимися каналами.
► Узнайте больше об Аннотировании компонентов
► Узнайте больше о Нумерации листов
Конструирование платы многоканального проекта
При передаче проекта из редактора схем в редактор плат, компоненты из каждого листа группируются в комнаты на плате, если в настройках проекта включено создание комнат.
Большим преимуществом использования комнат в многоканальных проектах является то, что редактор плат поддерживает дублирование размещения компонентов и трассировки из одной комнаты (канала) в другие комнаты (каналы). Комнаты также можно перемещать как единые объекты, что упрощает процесс размещения каналов на плате.
Восемь входных и два выходных канала после передачи проекта из редактора схем в редактор плат. Красные области – это комнаты.
Назначение комнат
Комната (объект Room) – это объект редактора плат, используемый для определения области на плате, которая может использоваться двумя способами:
- Размещение объектов – хотя комната размещается подобно любому полигональному объекту, она также создает правило проектирования Placement. В определении комнаты задаются объекты, которые должны находиться в ней – зачастую это компоненты. При перемещении комнаты, все компоненты в ней также будут перемещаться.
- Определение области действия других правил проектирования – помимо того, что комната сама по себе является правилом, ее также можно использовать для определения области действия других правил. Например, одно правило Width определяет ширину трасс определенного класса цепей, а другое правило с более высоким приоритетом, областью действия которого является комната, может определять иную ширину для этого класса цепей внутри комнаты.
Комнаты применяются для многоканальных проектов. Они могут быть созданы автоматически для каждого символа листа при передаче проекта из редактора схем в редактор плат, в соответствии с настройками на вкладке Class Generation диалогового окна Project Options. Помимо объединения компонентов в этом канале, комнату также можно использовать в именовании компонентов внутри этой комнаты.
Полезные команды при работе с комнатами
- Design » Rooms – подменю, в котором находится ряд полезных команд для создания и изменения комнат.
- Design » Rooms » Copy Room Formats – используйте эту команду для дублирования размещения компонентов и трассировки из одной комнаты (канала) в другие комнаты (каналы).
- Design » Rooms » Move Room – комнату можно переместить, зажав ЛКМ, когда под курсором нет других объектов. Курсор будет привязан к ближайшей контактной площадке компонента или вершине комнаты (в зависимости от того, что ближе). Используйте эту команду, если вы не можете зажать ЛКМ, не щелкнув по какому-либо объекту.
- Edit » Select » Room Connections – используйте эту команду, чтобы выделить все сегменты трасс, которые начинаются и заканчиваются на контактных площадках внутри комнаты.
Как связаны компоненты между собой
Каждый компонент на схеме связан с соответствующим компонентом на плате с помощью уникального идентификатора (UID). Этот идентификатор назначается компоненту при его размещении на схеме, после чего он назначается компоненту на плате при передаче проекта в редактор плат. Это подходит для простых проектов, но не для многоканальных проектов, где один компонент на схеме повторяется в каждом физическом канале (поскольку у компонентов на плате были бы одинаковые UID).
Соответственно, уникальный идентификатор компонента на плате формируется объединением идентификатора родительского символа листа и идентификатора схемного компонента. Синтаксис идентификатора компонента на плате немного отличается, в зависимости от того, как был создан многоканальный проект.
Для многоканальных проектов, созданных путем размещения множества символов листов, которые все ссылаются на один лист схемы, каждый символ листа имеет уникальный идентификатор, и идентификатор компонента на плате будет иметь формат:
\SheetSymbolUID\SchComponentUID
Для многоканального проекта, созданного с помощью ключевого слова Repeat
, доступен только один идентификатор символа листа, поэтому идентификатор компонента на плате будет также включать в себя индекс канала, в формате:
\ChannelIndex+SheetSymbolUID\SchComponentUID
Управление связью между компонентами осуществляется в диалоговом окне
Edit Component Links (команда
Project » Component Links в редакторе плат). При применении изменений в этом диалоговом окне уникальные идентификаторы компонентов на плате обновляются в соответствии с идентификаторами компонентов на схеме.
Отображение позиционных обозначений на плате
Размещение строк позиционных обозначений в многоканальном проекте может быть сложным, поскольку строки могут оказаться достаточно длинными. Помимо выбора схемы именования, предлагающей более короткие имена, вы также можете отображать изначальные обозначения логических компонентов. Например, C30_CIN1
будет отображаться как C30
. При этом на плату понадобится добавить дополнительные обозначения отдельных каналов, например граничные прямоугольники вокруг каналов на слое шелкографии.
Вы можете выбрать между отображением логических и физических обозначений компонентов на плате с помощью раздела Other в панели Properties редактора плат (View » Panels » Properties). Если вы выберите отображение только логических обозначений компонентов в многоканальном проекте, это будет отражено на плате и во всех выходных документах, таких как распечатки и файлы Gerber. Однако при формировании состава изделия всегда используются уникальные физические обозначения.
► Узнайте больше об Аннотировании компонентов
Если вы предпочитаете использовать плоскую систему нумерации компонентов, возможно заменить систематическую схему именования путем проведения аннотирования на уровне платы – Board Level Annotation. Оно называется так, потому что позиционные обозначения компонентов применяются только к полному, скомпилированному проекту (физическому проекту), который должен стать платой.
Это аннотирование на уровне платы хранится в файле .Annotation
, который сопоставляет каждое логическое обозначение с присвоенным физическим обозначением. Этот файл является частью проекта, поэтому у вас будет запрошено сохранить его.
Параметрический многоканальный иерархический проект
Одной из задач при повторном использовании части проекта, например при подключении символа листа в текущем проекте к используемой в компании схемы источника питания, является то, что значения компонентов не всегда должны быть одними и теми же в различных проектах.
Параметрический иерархический проект решает эту задачу. Такие проекты позволяют поместить значения характеристик компонентов не в листе схемы, а в символе листа, который на эту схему ссылается. Эта возможность также отлично работает с многоканальными проектами, что позволяет задавать различные значения компонентов для каждого канала. Обратите внимание, что для этого нужно, чтобы у каждого канала был собственный символ листа, поскольку именно здесь хранятся значения компонентов.
Например, у графического эквалайзера один участок схемы может повторяться множество раз, с единственным отличием в значениях компонентов для разных каналов. Конденсатор может принимать значения 0.12µF
, 0.056µF
и 0.033µF
в различных каналах. Реализация этого случая проста, поскольку вы указываете эти значения в символах листов каждого из каналов, что избавляет от необходимости создавать множество одинаковых схем, которые отличаются лишь значениями компонентов.
Параметрические компоненты определяются указанием их значений в качестве параметров символа листа выше и последующим определении ссылки на этот параметр в целевом компоненте. На изображении ниже слева показан лист верхнего уровня графического эквалайзера и параметры символа листа 1KHz рядом с ним. На изображении также показана схема более низкого уровня и скомпилированный канал 1KHz.
Графический эквалайзер с различными значениями конденсаторов и резисторов в каждом из каналов. Сами значения компонентов определены в символах листов, поэтому схему более низкого уровня нужно создать только один раз.
Каждый из параметров символов листа (Sheet Symbol) так же определен в виде значения (value) параметра компонента схемы на листе уровнем ниже, как показано на изображении ниже. Значение каждого параметра Sheet Symbol передается соответствующему компоненту схемы, где оно затем отображается в поле Comment компонента. Обратите внимание, что если для отображения value компонента схемы напрямую используется значение параметра value, а не параметр comment компонента, единственным требованием является сопоставление параметра Sheet Symbol с значением параметра value компонента (Value=C2_Value
) и сделать его видимым.
Поскольку в поле Value параметра задано =C2_Value, компилятор понимает, что ему нужно обратиться за значением компонента к символу листа на более высоком уровне.
Параметрическая иерархия не ограничена лишь значениями компонентов. Вы можете задать параметрическую ссылку на любой параметр компонента или любую текстовую строку на листе схемы. Вы также можете ссылаться на параметры символа листа, который находится на несколько уровней иерархии выше, и система будет искать соответствующий параметр по иерархии, пока не найдет его.
Загрузите образец проекта \Parametric Hierarchy\AudioEqualizer.PrjPcb
, чтобы увидеть, как корректно настроить параметры символов листов и компонентов.
Если у вас не получается загрузить тестовый проект: