| << [[geda:gnetlist_ug:basic_netlisting.ru|Создание простых списков соединений]]  |  **[[geda:gnetlist_ug.ru|Руководство пользователя gEDA gnetlist]]**  |  [[geda:gnetlist_ug:slotting.ru|Секции компонентов и их использование]] >> |

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

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

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

Символы подсхем загружаются обычным способом из библиотеки символов.
Электрические же схемы подсхем берутся из //[[gEDA:glossary.ru#библиотека
исходных данных|библиотек исходных данных]]//.

<note tip> Подробное описание того, как указать gnetlist, где искать файлы
схем для подсхем, см. в разделе [[config.ru|Настройка gnetlist]].  </note>

==== Порты ====

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

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

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

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