Автор: Ales Hvezda
Данный документ выпущен под лицензией GFDL
2 октября 2003 г.
Перевод: Владимир Жбанов, 2010 г.
Информация в данном документе актуальна по состоянию на 11.10.1999 г.
Атрибут net=
используется в системе gEDA для описания
соединений питания и специальных соединений.
Он используется вместо иных способов определения выводов питания (таких как
наличие выводов питания на символах компонентов или блоков питания). В
некоторых устройствах выводов питания очень много, и их вычерчивание увеличило
бы размер символа и сделало бы его трудно поддающимся обработке. Атрибут
net=
выбран в системе gEDA для определения соединений питания из-за
своей простоты и универсальности.
После всего вышесказанного добавим, что выводы питания можно изображать и на
символе, но gnetlist, скорее всего, не сможет понять, что соединения,
подключенные к этим выводам, это особая группа питающих соединений. Имейте
это в виду, когда чертите символы.
Атрибуты в 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=GND:7
или net=+5V:14
net=
. Предположим, что внутри символа уже есть net=GND:7
; прикрепление к символу атрибута net=AGND:7
переопределит соединение GND (на выводе 7), назвав его AGND, и соединит/ассоциирует его с выводом 7.net=DIGITAL_GND:1
).vdd-1.sym
, vcc-1.sym
, vee-1.sym
и прочие, в которых нет внутри атрибута net=
, так что вам придётся добавлять его самостоятельно (в схеме).5V-minus-1.sym
, 12V-plus-1.sym
, 9V-plus-1.sym
, и т. д., уже содержащие соответствующий атрибут net=
(хотя его можно переопределить). Можете использовать эти символы как примеры применения атрибута net=
.
Атрибутов net=
может быть сколько угодно. Просто запомните, что атрибуты
net=
, прикреплённые вне символа замещают любые эквивалентные внутренние
атрибуты net=
(внутри этого же символа). Если вы наткнётесь на случай,
когда это не работает, пожалуйста, сообщите об ошибке.
Атрибут/механизм net=
безусловно нов, поэтому непременно должны быть
ошибки (много ошибок). Здесь приводятся некоторые из найденных проблем:
net=
, ни любого другого признака питания. Надеюсь, когда-нибудь это будет исправлено (есть добровольцы?).net=
(который находится внутри этого символа vcc/gnd или прикреплён к нему), то есть фактически переименует это соединение. Такое поведение можно изменить (так что станет верным обратное), если поиграться с “net-naming-priority”. Будьте осторожны с этим. Могут быть и другие, пока ещё не обнаруженные, проблемы именования.net=
, связывающего имя сигнала с уже видимым на символе выводом, — это, скорее всего, плохая идея. Работать это будет, но все возможные последствия ещё не исследованы.net=
несколько раз. Ales не формализовал, что должно происходить в таком случае. Просто запомните, что атрибут 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).
Если вы нашли какую-либо ошибку, дайте нам знать.