Multi-sheet & Hierarchical Designs

Altium Training

Altium Essentials: Navigating Schematics

This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.

Изначально, когда схемы выполнялись на бумаге, их часто чертили на одном листе, достаточно большом, чтобы занять весь большой чертёжный стол, а затем размножали на специализированном широкоформатном копире. Времена изменились: теперь схемы создаются на настольном ПК, хранятся на сервере и печатаются на малоформатном лазерном принтере.

Это изменение означает, что даже простой проект можно легче отображать и понимать, если представить его на нескольких листах схемы. Даже когда проект не особенно сложный, организация его на нескольких листах может дать преимущества.

Например, проект может включать различные модульные элементы. Ведение этих модулей как отдельных документов позволяет нескольким разработчикам работать над проектом одновременно. Разбиение проекта на логические модули также значительно повышает читаемость схемы — это важно для тех, кому позже, на протяжении жизненного цикла изделия, потребуется читать и интерпретировать схему. Ещё одно преимущество: когда проект структурирован на несколько листов и на каждом меньше компонентов, можно использовать малоформатную печать, например лазерные принтеры.

Если вы планируете распределить проект по нескольким листам, нужно принять два решения:

  • структурные взаимоотношения листов, и

  • метод, применяемый для электрической связности между цепями на этих листах.

Ваш выбор будет зависеть от размера и типа каждого проекта, а также от ваших личных предпочтений.

Эта статья посвящена структурным взаимоотношениям между листами: как это работает, а также инструментам и приёмам, доступным для создания многостраничного проекта. Чтобы узнать больше о том, как создаётся связность, обратитесь к статье Creating Connectivity.

Плоский или иерархический проект

Как уже упоминалось, вам как разработчику нужно решить, как организованы листы схемы и как устанавливается связность между ними. Однако это не два независимых решения: выбирая структуру, вы также должны выбрать, как будут создаваться соединения между этими листами.

Существует два подхода к структурированию многостраничного проекта: либо flat, либо hierarchical.

Оба подхода допустимы; у каждого есть свои сильные и слабые стороны. Плоский проект создаётся быстрее, но другим людям сложнее отслеживать сигналы и понимать функциональность, особенно по распечатке. Иерархический проект рисовать дольше, поскольку требуется больше шагов для создания связности, зато в результате получается проект, в котором другим проще интерпретировать функциональность и отслеживать сигналы между листами. Иерархический подход также важен для повторного использования проектных решений и является неотъемлемой частью multi-channel design.

Техника, используемая для подключения дочернего листа к родительскому, одинакова и для плоских, и для иерархических проектов — различие в том, как создаётся связность, и именно это определяет, будет проект плоским или иерархическим.

Плоский проект

Плоский проект можно представить так, будто большой лист схемы разрезали на несколько меньших — в плоском проекте все листы находятся на одном уровне. Связность в плоском проекте создаётся напрямую с любого листа на любой другой — такой тип связности называют горизонтальной связностью.

Использование верхнего (top) листа в плоском проекте необязательно. Если он добавлен, на нём будет по одному символу листа для каждого листа проекта, но проводников (wiring) на нём быть не может. В плоском проекте может быть любое количество листов.

Первое изображение — плоский проект без верхнего листа; второе изображение — тот же проект с верхним листом. Обратите внимание: на верхнем листе нет проводников. Он просто показывает листы, входящие в проект. 
Первое изображение — плоский проект без верхнего листа; второе изображение — тот же проект с верхним листом. Обратите внимание: на верхнем листе нет проводников. Он просто показывает листы, входящие в проект.

Оба изображения выше показывают плоский проект: вариант слева без верхнего листа, а вариант справа — с верхним листом. Для небольшого проекта, в котором всего два или три листа схемы, вы можете решить, что верхний лист не добавляет ценности. Когда количество листов становится больше, верхний лист может помочь читателю понять функциональность схемы по тому, как логические блоки (Sheet Symbols) расположены на листе. Все листы проекта отображаются на одном уровне в Projects panel, поскольку иерархии нет.

Иерархический проект

Важно помнить, что для иерархических проектов в составе проекта может быть только один верхний лист. Все остальные исходные документы должны быть указаны через sheet symbols. При выполнении проверки проекта можно использовать проверку нарушения Multiple Top Level Documents violation check, чтобы отметить ситуацию, когда это не так. Кроме того, ни один sheet symbol не должен ссылаться на лист, на котором он расположен, или на любой лист выше по иерархии, поскольку это создаст неразрешимую петлю в структуре.

Иерархический проект — это проект, в котором представлена древовидная структура (или связи лист-лист) в проекте. Это выполняется с помощью sheet symbols, которые представляют нижележащие листы в иерархии проекта. Символ представляет лист ниже, а sheet entries в нем представляют (или подключаются к) портам на нижележащем листе. Связность обеспечивается через Sheet Entries в этих Sheet Symbols — а не напрямую от Ports на одном листе к Ports на другом листе.

Как и в плоском проекте, дочерний лист идентифицируется заданием его имени файла в sheet symbol. В иерархическом проекте этот дочерний лист также может включать sheet symbols, ссылающиеся на листы более низкого уровня, тем самым создавая еще один уровень иерархии. На изображении ниже показан иерархический проект с 3 уровнями иерархии.

В иерархическом проекте структура, показанная в дереве, определяется отношениями родитель–дочерний, создаваемыми sheet symbols.
В иерархическом проекте структура, показанная в дереве, определяется отношениями родитель–дочерний, создаваемыми sheet symbols.

В иерархическом проекте сигнал на дочернем листе выходит с листа через Port, который вверх подключается к соответствующему Sheet Entry на родительском листе. Родительский лист содержит проводники, которые переносят дочерний сигнал к Sheet Entry в другом Sheet Symbol, после чего он проходит вниз к соответствующему Port на втором дочернем листе, как показано на изображении ниже.

The connectivity is from a Port on the child sheet up to a matching Sheet Entry in the Sheet Symbol on the parent sheet

Эта структура родитель–дочерний лист может быть определена на любую глубину, и в иерархическом проекте может быть любое количество листов.

Связность между листами определяется параметром Net Identifier Scope. Он задается на вкладке Options диалога Options for Project. Чтобы узнать больше о создании связности, прочитайте страницу Creating Connectivity. Обратите внимание, что Net Identifier Scope включает опцию Automatic; если у вас нет необычных требований к связности, этот вариант является хорошим выбором.

Преимущество иерархического проектирования в том, что оно показывает читателю структуру проекта и что связность полностью предсказуема и легко отслеживается, поскольку она всегда идет от дочернего листа вверх к символу листа на родительском листе.

Еще одно преимущество иерархического проектирования заключается в том, что оно предоставляет платформу для реализации продвинутой системы повторного использования проекта. Эта система реализуется двумя способами, в зависимости от того, как хранятся данные: на основе файлов или на основе сервера.

  • Система на основе файлов называется Device Sheets: вы размещаете существующую схему из библиотеки Device Sheets непосредственно в создаваемый проект. Чтобы узнать больше о Device Sheets, см. страницу Working with Device Sheets.

  • Система на основе Workspace называется Managed Schematic Sheets: вы размещаете существующую схему из connected Workspace непосредственно в создаваемый проект. Чтобы узнать больше о Managed Sheets, см. страницу Working with Managed Schematic Sheets.

Добавление перекрёстных ссылок

Добавление перекрёстных ссылок в проект позволяет легко отслеживать связность сетей между листами схемы в проекте. Редактор схем поддерживает автоматическое создание и обновление перекрёстных ссылок.

Включите параметр Automatic Cross References в области General и настройте параметры в области Cross References на вкладке Options диалогового окна Project Options. Вы можете задать конкретный стиль перекрёстных ссылок для активного проекта или включить параметр Follow Cross References settings in Preferences для наследования параметров из области Port Cross References страницы Schematic – General диалогового окна Preferences . Здесь же можно выбрать объекты (порты, межлистовые соединители, вводы листа), для которых будут отображаться перекрёстные ссылки.

Вы можете быстро открыть вкладку Options диалогового окна Project Options, выбрав команду Reports » Automatic Cross References Settings в главном меню или щёлкнув правой кнопкой мыши в рабочей области и выбрав команду Sheet Actions » Automatic Cross References Settings в контекстном меню.

Настройте автоматические перекрёстные ссылки для активного проекта на вкладке Options диалогового окна Project Options.
Настройте автоматические перекрёстные ссылки для активного проекта на вкладке Options диалогового окна Project Options.

Перекрёстные ссылки будут показаны на схемах рядом с выбранными объектами в настроенном стиле. Значения Cross Reference также отображаются на панели Properties, откуда можно переключать видимость перекрёстных ссылок для выбранных объектов.

Перекрёстные ссылки можно просматривать на схемах и, для выбранного объекта, на панели Properties. Здесь показан пример перекрёстных ссылок для порта.
Перекрёстные ссылки можно просматривать на схемах и, для выбранного объекта, на панели Properties. Здесь показан пример перекрёстных ссылок для порта.

Перекрёстные ссылки также поддерживаются в PDF-выводе схем. Если объект связан более чем с одним подключённым объектом (например, порт подключён к вводу листа на родительских листах схемы и к портам на других листах), щелчок по объекту в PDF-выводе покажет список листов, на которых находятся подключённые объекты. Выберите элемент списка, чтобы открыть соответствующую страницу. Если объект связан с одним подключённым объектом, щелчок по объекту сразу откроет соответствующую страницу.

В PDF-выводе схемы по нескольким подключённым объектам можно легко перемещаться с помощью всплывающего меню.
В PDF-выводе схемы по нескольким подключённым объектам можно легко перемещаться с помощью всплывающего меню.

Создание многолистового проекта

Как только вы добавляете во проект второй лист схемы, вы создаёте многолистовой проект. Если вы планируете создать плоский проект без верхнего листа, просто продолжайте добавлять листы схемы в проект (щёлкните правой кнопкой мыши по записи проекта на панели Projects и выберите команду Add New to Project » Schematic в контекстном меню), а затем подтвердите, что область действия Net Identifier Scope задана правильно.

Если вы хотите использовать символы листов для ссылок на нижележащие листы, вы можете либо разместить символ листа и вручную отредактировать его, чтобы он корректно ссылался на нижележащий лист, либо воспользоваться различными встроенными командами, как описано ниже.

Ссылка на дочерний лист

Именно свойство Filename у Sheet Symbol ссылается на нижележащий лист. Обратите внимание: это поле должно содержать только имя файла схемы, а не путь к месту хранения файла (данные о расположении фактически хранятся в файле проекта).

Свойство Filename связывает этот символ листа с дочерним листом схемы.
Свойство Filename связывает этот символ листа с дочерним листом схемы.

Обратите внимание, что дочерняя схема не обязана храниться в той же папке, что и родительская. Если файл хранится в папке ниже папки хранения родительского файла, используется относительная ссылка на файл. Если файл хранится в другом месте, используется абсолютная ссылка. Будьте внимательны при перемещении файлов в таком проекте или используйте Project Packager для упаковки файлов в ZIP — он корректно обработает пути к файлам при упаковке проекта.

Навигация в многолистовом проекте

Редактор схем предоставляет инструменты, позволяющие быстро перемещаться между документами в многолистовом проекте и связанными в них объектами.

Команда Tools » Up/Down Hierarchy используется для перемещения фокуса на следующий уровень вверх или вниз по иерархии проекта из текущего документа. После запуска команды курсор изменится на перекрестие, и вам будет предложено выбрать точку навигации. Если щёлкнуть по вводу листа, будет показан соответствующий порт на подлисте; если щёлкнуть по символу листа — будет показан весь подлист. Чтобы перемещаться вверх по иерархии, щёлкните по порту, чтобы увидеть соответствующий ввод листа на родительском листе.

Если ввод листа или порт подключён к шине, первый щелчок вызовет всплывающее меню, где можно выбрать всю шину или отдельный сигнал в шине. Соответствующая проводка от ввода листа или порта будет подсвечена. Второй щелчок по исходному вводу листа или порту, соответственно, покажет соответствующий порт на нижележащем листе схемы или ввод листа на вышележащем листе.

Чтобы открыть дочерний лист, на который ссылается символ листа, находящийся под курсором, щёлкните правой кнопкой мыши по размещённому символу листа и выберите команду Sheet Symbol Actions » Open SubSheet <SchematicDocumentName> в контекстном меню. После запуска команды документ схемы, на который ссылается символ, будет открыт (если ещё не открыт) и станет активным документом в главном окне проектирования.

Когда для связанных объектов включены автоматические перекрёстные ссылки, вы также можете использовать команды Jump To из подменю правого клика объектов Port Actions, Sheet Entry Actions и Off Sheet Actions (для плоского проекта) для навигации между портами, вводами листа и межлистовыми соединителями. Например, когда включён параметр Automatic Cross References и для параметра Ports на вкладке Options диалогового окна Options for Project выбран вариант настройки Sheet Entry & Ports, можно щёлкнуть правой кнопкой мыши по порту и выбрать нужную команду Port Actions » Jump to Port <PortName> on <SchematicDocumentName> или Port Actions » Jump to Sheet Entry <PortName> on <SchematicDocumentName> в контекстном меню — исходный документ для указанного порта или ввода листа станет активным, а курсор будет установлен на порт или ввод листа. Все порты с тем же именем (и любая подключённая проводка) в целевом документе будут подсвечены.

Используйте команду Jump to для перехода к соответствующему объекту в любом месте проекта.
Используйте команду Jump to для перехода к соответствующему объекту в любом месте проекта.

  • При навигации между объектами соответствующий объект будет подсвечен в рабочей области. Визуальное отображение выполняется в соответствии с параметрами Highlight Methods (Dimming, Zooming, Selecting), заданными на странице System - Navigation диалогового окна Preferences.
  • По иерархии также можно перемещаться напрямую, нажав Ctrl и дважды щёлкнув по порту, вводу листа или символу листа.
  • По иерархии также можно перемещаться, используя функцию Interactive Navigation панели Navigator.

Создание иерархии

Программное обеспечение включает ряд команд, позволяющих быстро и эффективно построить многодокументную иерархическую структуру. Набор используемых команд зависит от вашей методологии проектирования, которую в целом можно отнести к подходу «сверху вниз» или «снизу вверх». Эти команды будут эффективнее ручного создания иерархии, поскольку они обрабатывают все элементы, необходимые в процессе, такие как добавление вводов листа, создание новых листов схемы, размещение портов и т. п.

Используйте эту команду для построения иерархии по принципу «сверху вниз»:

  • Create Sheet From Sheet Symbol (главное меню Design или подменю правого клика по символу листа Sheet Symbol Actions) – используйте эту команду, чтобы создать новый лист схемы ниже указанного символа листа. Соответствующие порты для вводов листа на символе будут размещены в левом нижнем углу нового документа. Не беспокойтесь, если вы ещё не добавили все вводы листа в символ листа — если со временем будут добавлены новые, вы сможете повторно синхронизировать вводы листа и порты, как описано ниже.

    • Создаваемый документ схемы использует имя файла символа листа в качестве имени файла. Вы можете либо ввести предполагаемое имя документа в поле File Name  символа листа, включая расширение (т. е. <DocumentName>.SchDoc), либо оставить имя пустым и задать его при сохранении документа на более позднем этапе.
    • Следует соблюдать осторожность при создании листа из символа листа, если лист с таким именем файла уже существует. Будет создан новый лист с тем же именем файла. Дублирование можно устранить при сохранении, либо сохранив новый лист под другим именем, либо при необходимости перезаписав существующий лист.
    • Электрические типы ввода/вывода (I/O Types) для созданных портов на новом дочернем листе будут такими же, как у вводов листа на исходном родительском символе листа.

Используйте эту команду для построения иерархии по принципу «снизу вверх»:

  • Create Sheet Symbol From Sheet(в Design главном меню или в контекстном подменю по правому щелчку в области проектирования Sheet Actions) — используйте эту команду, чтобы создать символ из указанного листа схемы. Чтобы воспользоваться командой, сначала перейдите на лист, на котором будет размещён новый Sheet Symbol, затем запустите команду. Откроется диалог Choose Document to Place dialog — в нём выберите целевой документ схемы, на который будет ссылаться вновь созданный sheet symbol. Sheet Symbol будет содержать Sheet Entry, соответствующий каждому найденному Port. Если на более позднем этапе Ports или Sheet Entries будут добавлены или удалены, их можно повторно синхронизировать, как описано ниже.

    • Поскольку sheet symbol создаётся и размещается на активном листе, этот лист не будет отображаться в Choose Document to Place диалоге. Это связано с тем, что sheet symbol не может ссылаться на тот же лист, на котором он сам размещён.
    • Электрические типы I/O (Electrical I/O Types) для созданных sheet entries в новом родительском sheet symbol будут такими же, как у ports на исходном дочернем листе.

Используйте эту команду, чтобы реорганизовать размещение схемотехники в проекте:

  • Edit » Refactor » Move Selected Sub-circuit to Different Sheet - используйте эту команду, чтобы переместить выбранные компоненты и проводники на другой лист проекта. Откроется диалог Choose Destination Document, позволяющий выбрать любую существующую схему в проекте. Эта команда более подробно описана ниже.

Если вам интересно, почему существуют отдельные команды для перемещения компонентов с одного листа на другой: они предусмотрены потому, что стандартные команды Cut & Copy автоматически сбрасывают Unique Identifier у каждого компонента. UID связывает компонент на схеме с компонентом на PCB; если UID компонента на схеме был сброшен, при каждой синхронизации проекта (когда используется команда Design » Update) вам будет предложено попытаться сопоставить компоненты по обозначениям (designators). При необходимости UID можно повторно синхронизировать с помощью команды Project » Component Links в редакторе PCB.

Узнать больше о Design Synchronization

Реструктурирование проекта

Main article: Рефакторинг проекта

Процесс проектирования часто бывает неструктурированным и «органичным»: разработчик может одновременно продумывать идеи для нескольких частей проекта, фиксируя фрагменты по мере развития замысла. Это означает, что то, что начиналось как хорошо организованный, аккуратно разложенный набор схем, со временем может стать перегруженным и плохо структурированным. Хотя для реорганизации схемы можно использовать Cut, Copy и Paste, это не всегда лучший подход.

Почему не стоит просто вырезать и копировать? Потому что при размещении каждому компоненту назначается уникальный идентификатор, и этот идентификатор автоматически сбрасывается при Cut/Copy и Paste. Такое управление UID выполняется, чтобы гарантировать, что в проекте используется только один экземпляр каждого UID, поскольку это ключевое поле, связывающее компонент на схеме с компонентом на PCB. Подход Cut/Copy/Paste подходит, если проект ещё не был передан в редактор PCB, но если передан — лучше использовать инструменты рефакторинга.

Перемещение подсхемы на другой лист

Самый простой способ перенести участок схемотехники с одного листа на другой — выделить его и затем выполнить команду Edit » Refactor » Move Selected Sub-circuit to Different Sheet. Откроется диалог Choose Destination Document; после выбора целевого листа и нажатия OK откроется этот лист, а подсхема будет «плавать» на курсоре, готовая к размещению.

Выделенный участок схемотехники можно легко переместить на другой лист проекта с помощью команды Move Selected Subcircuit to Different Sheet.
Выделенный участок схемотехники можно легко переместить на другой лист проекта с помощью команды Move Selected Subcircuit to Different Sheet.

Узнать больше о Design Refactoring.

Синхронизация Ports и Sheet Entries

Если вы перемещали компоненты и проводники в рамках реструктурирования проекта, может потребоваться повторно синхронизировать дочерний лист с его Sheet Symbol, чтобы каждому Port соответствовал Sheet Entry. Это выполняется командой Synchronize Sheet Entries and Ports, которую можно использовать так:

  • A specific Sheet Symbol - щёлкните правой кнопкой по Sheet Symbol, чтобы открыть контекстное меню, и выберите команду Sheet Symbol Actions » Synchronize Sheet Entries and Ports, чтобы проанализировать только тот Sheet Symbol, который находится под курсором.
  • All Sheet Symbols in the design - выберите команду Design » Synchronize Sheet Entries and Ports, чтобы проанализировать все Sheet Symbols во всём проекте; диалог будет содержать вкладку для каждого Sheet Symbol в проекте, в соответствии с опцией Only Show unmatched sheet symbols в нижней части диалога.

Для обеих команд откроется диалог Synchronize Ports to Sheet Entries. В правой части диалога будут перечислены уже сопоставленные пары Ports/Sheet Entries, а несопоставленные Ports и Sheet Entries будут показаны в двух столбцах в левой части диалога. Считается, что sheet symbol «синхронизирован» со своим дочерним листом, если все его sheet entries соответствуют портам на этом подлисте — и по имени, и по типу I/O.

Диалог Synchronize Ports to Sheet Entries используется, чтобы убедиться, что Sheet Entries соответствуют Ports на дочернем листе. Обратите внимание на две вкладки — это означает, что в данном проекте есть два Sheet Symbol с несоответствиями Sheet Entry / Port.
Диалог Synchronize Ports to Sheet Entries используется, чтобы убедиться, что Sheet Entries соответствуют Ports на дочернем листе. Обратите внимание на две вкладки — это означает, что в данном проекте есть два Sheet Symbol с несоответствиями Sheet Entry / Port.

Сосредоточившись на несоответствиях, показанных слева в диалоге, идея такова: выбрать Sheet Entry в первом столбце, затем правильный Port во втором столбце, после чего нажать нужную кнопку в середине диалога, чтобы обновить один из элементов так, чтобы они стали синхронизированы (и переместились в список справа).

Кнопки работают следующим образом:

  • Button, update the Port to Match the Sheet Entry - использовать свойства Sheet Entry и применить их к выбранному Port.
  • Button, update the Sheet Entry to Match the Port - использовать свойства Port и применить их к выбранному Sheet Entry.

Если в левом столбце выбрано несколько Sheet Entry, программа синхронизирует каждый Sheet Entry с соседним Port во втором столбце. Если соседнего Port (или Sheet Entry) нет, будет создан новый.

  • Если команда добавляет новые Sheet Entry или Port, после завершения работы их нужно будет правильно разместить на листе схемы.
  • Обратите внимание: любые изменения, внесённые в диалоге, вступают в силу немедленно. Отменить изменение через этот диалог нельзя. Чтобы откатить изменение, потребуется воспользоваться Undo функцией документа.
AI-LocalizedЛокализовано с помощью ИИ
Если вы обнаружили проблему, выделите текст/изображение и нажмитеCtrl + Enter, чтобы отправить нам свой отзыв.
Доступность функциональных возможностей

Набор доступных функциональных возможностей зависит от вашего решения Altium – Altium Develop, редакция Altium Agile (Agile Teams или Agile Enterprise) или Altium Designer (на активной подписке).

Если вы не видите в своем ПО функцию, описанную здесь, свяжитесь с отделом продаж Altium, чтобы узнать больше.

Устаревшая документация

Документация Altium Designer больше не разделена по версиям ПО. Если вам необходим доступ к документации по старым версиям Altium Designer, посетите раздел Устаревшая документация на странице Прочие установщики.

Content