start => gnetlist_ug

« Создание простых списков соединений | Руководство пользователя gEDA gnetlist | Секции компонентов и их использование »

## Иерархические схемы

В gnetlist есть поддержка иерархических схем. Иерархическими называются электрические схемы, куда в качестве подсхем включаются другие схемы. Это может быть весьма удобно для проектов, где одна и та же схема используется многократно, или для работы с какой-то схемой в нескольких разных проектах. В подсхемы в свою очередь могут входить другие подсхемы!

Для каждой подсхемы нужен отдельный символ, к которому она будет привязана и который будет её представлением в схеме. Атрибут «`device=`» для символа подсхемы игнорируется. Для указания имени файла электрической схемы самой подсхемы должен использоваться атрибут «`source=`».

Символы подсхем загружаются обычным способом из библиотеки символов. Электрические же схемы подсхем берутся из библиотек исходных данных.

Подробное описание того, как указать gnetlist, где искать файлы схем для подсхем, см. в разделе Настройка gnetlist.

### Порты

Порты представляют собой выводы символа, через которые можно подключиться к электрической схеме связанной с ним подсхемы из той схемы проекта, где этот символ используется. Каждому порту следует задать имя с помощью атрибута «`pinlabel=`». Точкой подключения порта к соединениям внутри подсхемы gnetlist будет считать первый вывод компонента подсхемы, атрибут «`refdes=`» которого совпадает с именем порта. Обычно для этих целей используют символы «in-1.sym» и «out-1.sym» из раздела «Input/Output» библиотеки символов.

### Переименование компонентов и соединений

К каждому из символов подсхем, находящихся в схеме, должен быть прикреплён атрибут «`refdes=`». Он будет определять имя экземпляра подсхемы. При обработке иерархической схемы уникальная идентификация компонентов и соединений внутри каждого экземпляра подсхемы достигается в gnetlist путём их переименования таким образом, что их новые имена содержат в качестве префикса имя того экземпляра, к которому они относятся.

Для примера рассмотрим подсхему, содержащую компонент с атрибутом «`refdes=U1`» и соединение с атрибутом «`netname=FEEDBACK`». Предположим теперь, что символ подсхемы вставлен в схему и к нему прикреплён атрибут «`refdes=A1`». При обработке схемы gnetlist переименует компонент в «A1/U1», а соединение — в «A1/FEEDBACK».