Мини-HOWTO по атрибуту net=

Автор: Ales Hvezda

Данный документ выпущен под лицензией GFDL

2 октября 2003 г.

Перевод: Владимир Жбанов, 2010 г.

Информация в данном документе актуальна по состоянию на 11.10.1999 г.

Зачем нужен атрибут net=?

Атрибут net= используется в системе gEDA для описания соединений питания и специальных соединений.
Он используется вместо иных способов определения выводов питания (таких как наличие выводов питания на символах компонентов или блоков питания). В некоторых устройствах выводов питания очень много, и их вычерчивание увеличило бы размер символа и сделало бы его трудно поддающимся обработке. Атрибут net= выбран в системе gEDA для определения соединений питания из-за своей простоты и универсальности. После всего вышесказанного добавим, что выводы питания можно изображать и на символе, но gnetlist, скорее всего, не сможет понять, что соединения, подключенные к этим выводам, это особая группа питающих соединений. Имейте это в виду, когда чертите символы.

Каков формат атрибута net=?

Атрибуты в gEDA — это простые текстовые элементы вида имя_атрибута=значение. Каждый атрибут должен иметь такую форму. Для имён атрибутов всегда используется нижний регистр. gnetlist сотоварищи — регистрозависимы. Для имён соединений/сигналов обычно используется верхний регистр.
Атрибут может быть прикреплён к объекту или, в некоторых случаях (как в случае атрибута net=), может быть свободным (не прикреплённым к чему-либо). Свободные атрибуты также называются атрибутами верхнего уровня.
Атрибут net= — это текстовый элемент следующего вида:

net=signalname:pinname,pinname,pinname,...

где:

net= имя данного атрибута (неизменяемое, в нижнем регистре)
signalname имя сигнала или соединения, устанавливаемое в нём (например, +5V, GND, и т. д.)
pinname название (или номер) вывода, установленное для этого сигнала/соединения (или несколько названий/номеров выводов)

signalname не должно содержать символа «:» (поскольку он является разделителем). pinname — это название вывода (A1, P2, D1, и т. д.) или его номер (1, 2, 5, 13, и т. д.). pinname не должно содержать символа «,» (так как это тоже разделитель). Названия выводов обычно представлены номерами/названиями в том же роде, что и для атрибута pin#=# (если вам известен этот атрибут).
В одном атрибуте net= может быть указано только ОДНО имя сигнала signalname, но названий/номеров выводов может быть сколько угодно.

Как на самом деле используется атрибут net=?

Атрибут net= может располагаться в разных местах. Вот варианты:

Атрибутов net= может быть сколько угодно. Просто запомните, что атрибуты net=, прикреплённые вне символа замещают любые эквивалентные внутренние атрибуты net= (внутри этого же символа). Если вы наткнётесь на случай, когда это не работает, пожалуйста, сообщите об ошибке.

Предостережения / Ошибки

Атрибут/механизм net= безусловно нов, поэтому непременно должны быть ошибки (много ошибок). Здесь приводятся некоторые из найденных проблем:

Пример

Здесь приводится схема, использующая стандартные символы (примечание: символ для 7400 всё ещё не содержит атрибута net= внутри). Данная схема содержит компонент 7400 с прикреплёнными атрибутами net= для выводов питания. Один из входных выводов подключен к общему проводу с помощью символа GND, а другой установлен в логическую единицу с помощью символа Vcc (с прикреплённым атрибутом net=). Одно из входных соединений имеет имя, но, как вы увидите, имя соединения замещается именем сигнала, указанным в net= символа питания (см. выше подробную информацию по этому поводу). Выход подключен к подтягивающему резистору, питание которого задаётся с помощью символа +5V.

v 19991011
C 38700 58100 1 0 0 7400-1.sym
{
T 39000 59000 5 10 1 1 0
uref=U100
T 38900 59500 5 10 1 1 0
net=GND:7
T 38900 59300 5 10 1 1 0
net=+5V:14
}
N 38700 58800 37400 58800 4
{
T 37600 58900 5 10 1 1 0
netname=NETLABEL
}
N 37400 58800 37400 59200 4
N 38700 58400 37400 58400 4
N 37400 58000 37400 58400 4
C 37300 57700 1 0 0 gnd-1.sym
C 37200 59200 1 0 0 vcc-1.sym
{
T 36800 59200 5 10 1 1 0
net=+5V:1
}
N 40000 58600 41600 58600 4
{
T 41200 58700 5 10 1 1 0
netname=OUTPUT
}
C 40700 58800 1 90 0 resistor-1.sym
{
T 40800 59200 5 10 1 1 0
uref=R1
}
N 40600 58800 40600 58600 4
N 40600 59900 40600 59700 4
C 40400 59900 1 0 0 5V-plus-1.sym

Запуск gnetlist для данного примера (в котором в качестве формата списка соединений задаётся geda) выдаст следующее:

START header

gEDA's netlist format
Created specifically for testing of gnetlist

END header

START components

R1 device=RESISTOR
U100 device=7400

END components

START renamed-nets

NETLABEL -> +5V

END renamed-nets

START nets

+5V : R1 2, U100 14, U100 1
GND : U100 7, U100 2
OUTPUT : R1 1, U100 3

END nets

Заметьте, как переименовано соединение NETLABEL (получило псевдоним +5V).

Заключение

Если вы нашли какую-либо ошибку, дайте нам знать.