Разработка схемы в иерархической форме (часть 2)

В первой части статьи (читать), опубликованной в десятом номере журнала «ЭЛЕКТРОНИКА: Наука, Технология, Бизнес» за 2019 год, было рассказано о видах представления схем в САПР Altium Designer и методике разработки электрических схем в иерархической форме (Ссылка на статью:). В данном номере рассматриваются другие аспекты решения данной задачи и ряд необходимых для этого средств, предусмотренных в САПР Altium Designer.

Библиотеки функциональных групп в Altium Designer

В качестве библиотек функциональных групп может выступать любой каталог, в который должны быть помещены листы электрических схем функциональных групп. Определить каталоги в качестве библиотеки можно двумя способами: глобально и локально. Глобальное определение означает, что к выбранному каталогу можно будет обратиться из любого проекта, который присутствует на панели Projects. Определение можно выполнить в настройках Altium Designer (рис. 7). Локальное определение означает, что к выбранному каталогу можно будет обратиться только из текущего проекта. Определение можно выполнить в настройках проекта (Project Options → Device Sheets).

Окно Preferences, определение библиотеки функциональных групп в Altium Designer
Рис. 7 Окно Preferences, определение библиотеки функциональных групп

Добавить экземпляр функциональной группы из библиотеки на схему можно с помощью примитива Device Sheet Symbol. При этом на условное графическое обозначение (УГО) функциональной группы автоматически наносятся выводы, соответствующие портам, изображенным на ее принципиальной схеме. Условные графические обозначения библиотечных функциональных групп отличаются от условных графических отображений обычных функциональных групп, входящих в проект (рис. 8).

Внешний вид функциональных групп на принципиальной схеме, оформленной по ЕСКД в Altium Designer
Рис. 8 Внешний вид функциональных групп на принципиальной схеме, оформленной по ЕСКД

Способ создания библиотеки функциональных групп

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

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

  • возможность передачи всех необходимых цепей в них при помощи примитивов Port;
  • именование ключевых цепей,трассировка которых может потребовать внимания, таких как дифференциальные пары, интерфейсы DDR или JTAG, цепи питания и тому подобное – это облегчит поиск и управление правилами при разработке печатной платы;
  • определиться, возможно ли применение функциональной группы только в строго-иерархических схемах или в иерархических схемах тоже. Это регламентирует применение примитива Power Port, который используют в основном для обозначения узлов в цепях питания.

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

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

Особенности библиотечных функциональных групп

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

  • в состав проекта не следует включать файлы электрических схем библиотечных функциональных групп;
  • при добавлении функциональной группы из библиотеки следует следить за тем, чтобы название листа, соответствующего ей, не совпадало с названием какого-либо листа, включенного в состав проекта на панели Projects;
  • принципиальная схема библиотечной функциональной группы по умолчанию защищена от изменений;
  • элементы принципиальной схемы библиотечной функциональной группы не обрабатываются при автоматизированном определении позиционных обозначений.

Подробнее о применении библиотечных функциональных групп можно прочитать в документации САПР Altium Designer [3].

Линии электрической связи

При разработке функциональных групп для иерархического представления схем важно уметь использовать все три доступных в Altium Designer типа линий электрической взаимосвязи.

Типы линий для обозначения электрической связи

В Altium Designer предусмотрены линии следующих типов (рис. 9):

  • Wire – для обозначения одного провода электрической цепи;
  • Bus – для обозначения шины (группы параллельно идущих проводов);
  • Signal Harness–для обозначения группы линий связи различного типа.
Примитивы редактора схем Altium Designer, обозначающие линии электрической взаимосвязи: а – тип Wire, б – тип Bus, в – тип Signal Harness
Рис. 9 Примитивы редактора схем Altium Designer, обозначающие линии электрической взаимосвязи: а – тип Wire, б – тип Bus, в – тип Signal Harness

Линия связи типа Wire не требует пояснений. Подробнее о примитиве Wire можно узнать в документации [4].

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

Особенностью линии Bus является то, что для правильного применения (не только как элемента графики на схеме) ее необходимо обозначить при помощи примитива типа Net Label. При этом обозначение должно быть вида Name[A..B], где Name – текстовое название, которое должно заканчиваться не цифрой, A и B – числовые неотрицательные индексы. Нормальной нотацией считается такая, когда число A меньше числа B. Более подробную информацию о примитиве Bus можно найти в документации [5].

Особенностью линии типа Signal Harness является то, что она позволяет организовать иерархическое включение в нее других линий связи всех трех типов. Для обозначения вхождения подчиненной линии связи в линию связи типа Signal Harness требуются дополнительные примитивы типов Harness Connector и Harness Entry. Примитив типа Harness Connector условно обозначает место входа-выхода линий связи. Примитив типа Harness Entry (размещается на широкой стороне примитива типа Harness Connector) условно обозначает именованную точку входа-выхода для каждой линии связи, входящей в примитив Signal Harness.

Важная особенность линии связи типа Signal Harness – необходимость указывать значение Harness Type, которое определяет трансляцию логической структуры линии связи вдоль ее прохождения по принципиальной схеме. Свойство Harness Type присутствует у примитивов Harness Connector, Harness Entry, Port, Sheet Entry. Линию связи типа Signal Harness можно применять для любых видов схем: «плоских» и «иерархических». Однако большую эффективность в применении такой тип линии связи будет иметь для иерархических принципиальных схем. Altium Designer обладает инструментом Place Predefined Harness Definition, который предназначен для добавления на схему примитива Harness Connector с определенными ранее характеристиками (рис. 10).

Окно инструмента Place Predefined Harness Connector в Altium Designer
Рис. 10 Окно инструмента Place Predefined Harness Connector

Возможность выбирать Harness Type не только для текущего проекта, но и для других проектов, присутствующих на панели Properties, а также определенных в библиотечных функциональных группах, позволяет унифицировать проекты по применяемым условным обозначениям структурированных линий связи. То есть, если в рамках изделия разрабатывается несколько проектов печатных плат с идентичными интерфейсами, то можно унифицировать процесс разработки схем в части их условных обозначений. Это позволяет повысить общий уровень продуктивности и соответствует требованиям ЕСКД в части положений ГОСТ 2.701-2008. Подробнее о примитиве Signal Harness можно прочитать в документации [6].

Выбор типа линии для обозначения электрической связи

В процессе освоения применения вышеуказанных типов линий связи наверняка может возникнуть вопрос: в каких случаях будет оправдано применение линии связи того или иного типа? Требования ЕСКД определяют, что графика принципиальной схемы должна быть разработана таким образом, чтобы создавать как можно меньше пересечений линий связи. Действительно, множество линий связи легко может запутать читающего схему, создавая излишнюю нагрузку на зрительный анализатор. Поэтому при выборе типа линии связи в первую очередь следует руководствоваться именно этим положением, ведь компьютеру расположение линий связи на плоскости никак не мешает строить модель данных при компиляции проекта. Важно понимать, что схемы изображают элементы и соединения для человека, а не для вычислительного устройства.

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

В остальных случаях достаточно будет применять линию связи, обозначенную примитивом Wire.

Последовательность процедур в Altium Designer

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

Создание схемы из функциональных групп

Разработку принципиальной схемы следует начинать с проработки функций устройства и взаимосвязей между ними по причинам, обозначенным в начале данной статьи. Исходя из этого, разработку электрической принципиальной схемы в иерархической форме удобнее начинать с разметки функций, обозначая их условными графическими обозначениями функциональных групп. В начале можно не применять библиотечные функциональные группы, а перейти к замене УГО обычных функциональных групп на библиотечные после того, как будет сформировано полное представление функций на схеме.

Определение электрических связей

Затем следует обозначить взаимосвязи между функциональными частями схемы с помощью линий связи. При первичной разработке удобно применять для обозначения линий связи примитивы Signal Harness, так как они являются наиболее общим средством представления.

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

После формирования первичной формы из функциональных групп и линий связи можно заглянуть в библиотеку готовых функциональных групп и подобрать замены некоторым Sheet Symbol на Device Sheet Symbol. В этом случае появится точное понимание типов линий связи, подключаемых к выводам УГО функциональных групп, ведь их принципиальные схемы уже разработаны, остается только правильно к ним «подключиться» с соблюдением размерностей числовых индексов для линий связи, обозначенных примитивами типа Bus, и с соблюдением типов Harness Type для линий связи, обозначенных при помощи примитивов типа Signal Harness.

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

Важно заметить, что Altium Designer позволяет повысить унификацию проектов не только в части элементов принципиальной схемы, но и в части используемых типов Harness Type для структурированных линий электрической связи.

Формирование физических обозначений компонентов

После завершения описания принципов функционирования устройства на схеме можно приступать к обозначению функциональных частей схемы – элементов и функциональных групп. Автоматизацию процесса определения позиционных обозначений элементов на схеме обеспечивают инструменты Annotate (Tools → Annotation → Annotate Schematics) и Board Level Annotate (Tools → Annotation → Board Level Annotate).

Инструмент Annotate предназначен для определения «логических»обозначений–тех, что изображены на листах электрической схемы. Данный инструмент позволяет:

  • учитывать требуемое направление просмотра условных обозначений элементов для назначения позиционных обозначений;
  • автоматически «собирать» элементы, изображенные разнесенным способом, назначая таким частям общее позиционное обозначение на основе анализа значений параметров примитивов элементов (примитивов схемы типа Part);
  • выбирать листы схемы, которые подлежат обработке;
  • определить начальные значения диапазонов индексов для листов схемы, дополнительные суффиксы в позиционных обозначениях и прочие параметры процедуры назначения позиционных обозначений.

Подробности об инструменте Annotate можно узнать в руководстве пользователя [7].

Инструмент Board Level Annotate предназначен для определения позиционных обозначений для физических реализаций каждого элемента как компонента на печатной плате – их конструкторских адресов. Этот инструмент обладает развитыми возможностями назначения конструкторских адресов компонентам на печатной плате на основе специальных правил. Данный инструмент позволяет:

  • выбирать функциональные группы и соответствующие им экземпляры элементов и настраивать алгоритм обозначения для проведения процедуры назначения физических обозначений компонентов (конструкторских адресов и др.);
  • определять правило выдачи конструкторских адресов для той или иной группы компонентов.

Подробности об инструменте Board Level Annotate можно найти в руководстве пользователя [8].

Контроль правил проектирования схемы

Процесс разработки электрической принципиальной схемы следует завершить процедурой, предоставляющей ее экспертизу с точки зрения корректности соединений – контроль нарушения правил для электрических соединений и контроль ошибок разработки схемы. В англоязычной документации данная процедура известна как Electrical Rule Check (ERC). В Altium Designer проведение ERC основано на процедуре формирования логической структуры схемы, которую называют компиляцией.

Правила электрических соединений определяются в форме матрицы электрических типов. Определить параметры матрицы можно в настройках проекта. Подробности об электрических типах выводов можно найти в документации [9].

Контроль правил разработки электрической схемы выполняется с использованием перечня возможных событий, интерпретация которых настраивается в специальном меню (Project Options → Error Reporting). Подробности приведены в документации [10].

Отчет о компиляции проекта предоставляется на панели Messages. Обычно он содержит четыре вида интерпретации событий: предупреждение (Warning) обозначается желтым цветом, ошибка (Error) – оранжевым цветом, фатальная ошибка (Fatal Error) – красным цветом, информационное сообщение об отсутствии проблем (Info) – зеленым цветом. Одна из целей разработки схемы в Altium Designer – получить зеленый маркер Info. После достижения этой цели разработка электрической принципиальной схемы считается законченной, если не считать выполнения требований по ее оформлению. Формирование перечня элементов в Altium Designer возможно только в виде отдельного документа, что соответствует положениям ЕСКД для применения систем автоматизированного проектирования.

Преобразование схемы из «плоской» формы в «иерархическую»

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

В заключение стоит сказать о том, что переход к разработке принципиальной схемы в иерархической форме будет оправдан если:

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

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

Данная статья не претендует на роль руководства пользователя по разработке электрической принципиальной схемы в иерархической форме, но дает широкий обзор принятой и хорошо отработанной методики, которую можно применить при эксплуатации САПР Altium Designer. Статья основана на личном опыте ее автора. Автор статьи имеет опыт практической эксплуатации системы на промышленных предприятиях России.

Автор статьи: Ю. Леган, технический специалист, представительство компании Altium

Статья опубликована в журнале: Электроника: Наука, Технология, Бизнес, No1 (00192) 2020