1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./style.css" />
6 <link rel=
"stylesheet" media=
"screen" type=
"text/css" href=
"./design.css" />
7 <link rel=
"stylesheet" media=
"print" type=
"text/css" href=
"./print.css" />
9 <meta http-equiv=
"Content-Type" content=
"text/html; charset=utf-8" />
14 <em>Эта страница доступна также на следующих языках:
</em> <a href=
"geda-na_howto.html" class=
"wikilink1" title=
"geda-na_howto.html">English
</a>
17 <h1 class=
"sectionedit1" id=
"мини-howto_по_атрибуту_net">Мини-HOWTO по атрибуту net=
</h1>
21 Автор:
<em>Ales Hvezda
</em>
25 Настоящий документ распространяется под лицензией
26 <a href=
"http://www.gnu.org/copyleft/fdl.html" class=
"urlextern" title=
"http://www.gnu.org/copyleft/fdl.html" rel=
"nofollow">GFDL
</a>
34 Информация в данном документе актуальна по состоянию на
11.10.1999 г.
38 <!-- EDIT1 SECTION "Мини-HOWTO по атрибуту net=" [117-490] -->
39 <h2 class=
"sectionedit2" id=
"зачем_нужен_атрибут_net">Зачем нужен атрибут net=?
</h2>
43 Атрибут
<code>net=
</code> используется в системе gEDA для описания
44 <a href=
"geda-glossary.ru.html#соединение" class=
"wikilink1" title=
"geda-glossary.ru.html">соединений
</a> питания и специальных
46 Он используется вместо иных способов определения выводов
47 питания (таких как наличие выводов питания на символах компонентов или
48 блоков питания). В некоторых устройствах выводов питания очень много, и их
49 вычерчивание увеличило бы размер символа и сделало бы его трудно поддающимся
50 обработке. Атрибут
<code>net=
</code> выбран в системе gEDA для определения соединений
51 питания из-за своей простоты и универсальности. После всего вышесказанного
52 добавим, что выводы питания можно изображать и на символе, но
<strong>gnetlist
</strong>,
53 скорее всего, не сможет понять, что соединения, подключенные к этим выводам,
54 это особая группа питающих соединений. Имейте это в виду, когда чертите
59 <!-- EDIT2 SECTION "Зачем нужен атрибут net=?" [491-1970] -->
60 <h2 class=
"sectionedit3" id=
"каков_формат_атрибута_net">Каков формат атрибута net=?
</h2>
64 Атрибуты в gEDA — это простые текстовые элементы вида
65 <code>имя_атрибута=значение
</code>. Каждый атрибут должен иметь такую форму. Для
66 имён атрибутов всегда используется нижний регистр.
<strong>gnetlist
</strong> сотоварищи
67 — регистрозависимы. Для имён соединений/сигналов обычно используется
69 Атрибут может быть прикреплён к объекту или, в некоторых
70 случаях (как в случае атрибута
<code>net=
</code>), может быть свободным (не
71 прикреплённым к чему-либо). Свободные атрибуты также называются атрибутами
73 Атрибут
<code>net=
</code> — это текстовый элемент следующего
76 <pre class=
"code">net=signalname:pinname,pinname,pinname,...
</pre>
81 <div class=
"table sectionedit4"><table class=
"inline">
83 <td class=
"col0"> <code>net=
</code> </td><td class=
"col1">имя данного атрибута (неизменяемое, в нижнем регистре)
</td>
86 <td class=
"col0"> <code>signalname
</code> </td><td class=
"col1">имя сигнала или соединения, устанавливаемое в нём (например, +
5V, GND, и т. д.)
</td>
89 <td class=
"col0"> <code>pinname
</code> </td><td class=
"col1">название (или номер) вывода, установленное для этого сигнала/соединения (или несколько названий/номеров выводов)
</td>
92 <!-- EDIT4 TABLE [3101-3591] -->
94 <code>signalname
</code> не должно содержать символа «
<code>:
</code>» (поскольку он является
95 разделителем). pinname — это название вывода (A1, P2, D1, и т. д.) или его
96 номер (
1,
2,
5,
13, и т. д.). pinname не должно содержать символа «
<code>,
</code>»
97 (так как это тоже разделитель). Названия выводов обычно представлены
98 номерами/названиями в том же роде, что и для атрибута
<code>pin#=#
</code> (если вам
99 известен этот атрибут).
<br/>
100 В одном атрибуте
<code>net=
</code> может быть указано
101 только ОДНО имя сигнала
<code>signalname
</code>, но названий/номеров выводов может
106 <!-- EDIT3 SECTION "Каков формат атрибута net=?" [1971-4467] -->
107 <h2 class=
"sectionedit5" id=
"как_на_самом_деле_используется_атрибут_net">Как на самом деле используется атрибут net=?
</h2>
111 Атрибут
<code>net=
</code> может располагаться в разных местах. Вот варианты:
114 <li class=
"level1"><div class=
"li"> Внутри символа как прикреплённый атрибут или как неприкреплённый атрибут (атрибут верхнего уровня). Вот примеры создания соединений питания:
<code>net=GND:
7</code> или
<code>net=+
5V:
14</code></div>
116 <li class=
"level1"><div class=
"li"> Вне символа (экземпляр которого имеется в схеме) атрибут может прикрепляться для переопределения существующего соединения/сигнала, созданного с помощью
<code>net=
</code>. Предположим, что внутри символа уже есть
<code>net=GND:
7</code>; прикрепление к символу атрибута
<code>net=AGND:
7</code> переопределит соединение GND (на выводе
7), назвав его AGND, и соединит/ассоциирует его с выводом
7.
</div>
118 <li class=
"level1"><div class=
"li"> Вне или внутри символа для автоматического подключения соединения к видимому выводу. Это пока ещё не проверено и может иметь какие-нибудь нежелательные (отрицательные) побочные эффекты. Используйте с осторожностью.
</div>
120 <li class=
"level1"><div class=
"li"> Если прикрепить атрибут к одному из специальных символов питания/земли (как, например, vcc/gnd/vdd), то можно изменить назначение символа. Можно изменить символ заземления для создания соединения с названием DIGITAL GND, не редактируя данный символ (просто прикрепить
<code>net=DIGITAL_GND:
1</code>).
<br/>
121 В текущей библиотеке (
19991011) имеются символы с названиями
<em><code>vdd-
1.sym
</code></em>,
<em><code>vcc-
1.sym
</code></em>,
<em><code>vee-
1.sym
</code></em> и прочие, в которых нет внутри атрибута
<code>net=
</code>, так что вам придётся добавлять его самостоятельно (в схеме).
<br/>
122 Также там есть символы с названиями
<em><code>5V-minus-
1.sym
</code></em>,
<em><code>12V-plus-
1.sym
</code></em>,
<em><code>9V-plus-
1.sym
</code></em>, и т. д., уже содержащие соответствующий атрибут
<code>net=
</code> (хотя его можно переопределить). Можете использовать эти символы как примеры применения атрибута
<code>net=
</code>.
<br/>
128 Атрибутов
<code>net=
</code> может быть сколько угодно. Просто запомните, что атрибуты
<code>net=
</code>, прикреплённые вне символа замещают любые эквивалентные внутренние атрибуты
<code>net=
</code> (внутри этого же символа). Если вы наткнётесь на случай, когда это не работает, пожалуйста,
<a href=
"geda-howto_report_bugs.ru.html" class=
"wikilink1" title=
"geda-howto_report_bugs.ru.html">сообщите об ошибке
</a>.
132 <!-- EDIT5 SECTION "Как на самом деле используется атрибут net=?" [4468-7810] -->
133 <h2 class=
"sectionedit6" id=
"предостережения_ошибки">Предостережения / Ошибки
</h2>
137 Атрибут/механизм
<code>net=
</code> безусловно нов, поэтому непременно должны быть ошибки (много ошибок). Здесь приводятся некоторые из найденных проблем:
140 <li class=
"level1"><div class=
"li"> На
11.10.1999 г. почти все символы стандартной библиотеки не имеют ни атрибута
<code>net=
</code>, ни любого другого признака питания. Надеюсь, когда-нибудь это будет исправлено (есть добровольцы?).
</div>
142 <li class=
"level1"><div class=
"li"> Прикрепление специального питающего символа (vcc/gnd) к соединению, уже имеющему имя, задаст для него псевдоним с именем сигнала, указанным в атрибуте
<code>net=
</code> (который находится внутри этого символа vcc/gnd или прикреплён к нему), то есть фактически переименует это соединение. Такое поведение можно изменить (так что станет верным обратное), если поиграться с «net-naming-priority». Будьте осторожны с этим. Могут быть и другие, пока ещё не обнаруженные, проблемы именования.
</div>
144 <li class=
"level1"><div class=
"li"> Создание атрибута
<code>net=
</code>, связывающего имя сигнала с уже видимым на символе выводом, — это, скорее всего, плохая идея. Работать это будет, но все возможные последствия ещё не исследованы.
</div>
146 <li class=
"level1"><div class=
"li"> Плохой идеей будет, вероятно, и прикрепление одного и того же атрибута
<code>net=
</code> несколько раз.
<em>Ales
</em> не формализовал, что должно происходить в таком случае. Просто запомните, что атрибут
<code>net=
</code> вне символа замещает внутренний.
</div>
151 <!-- EDIT6 SECTION "Предостережения / Ошибки" [7811-10043] -->
152 <h2 class=
"sectionedit7" id=
"пример">Пример
</h2>
156 Здесь приводится схема, использующая стандартные символы (примечание: символ
157 для
7400 всё ещё не содержит атрибута
<code>net=
</code> внутри). Данная схема
158 содержит компонент
7400 с прикреплёнными атрибутами
<code>net=
</code> для выводов
159 питания. Один из входных выводов подключен к общему проводу с помощью
160 символа GND, а другой установлен в логическую единицу с помощью символа Vcc
161 (с прикреплённым атрибутом
<code>net=
</code>). Одно из входных соединений имеет имя,
162 но, как вы увидите, имя соединения замещается именем сигнала, указанным в
163 <code>net=
</code> символа питания (см. выше подробную информацию по этому
164 поводу). Выход подключен к подтягивающему резистору, питание которого
165 задаётся с помощью символа +
5V.
167 <div class=
"table sectionedit8"><table class=
"inline">
169 <td class=
"col0"> <a href=
"media/geda/net.jpg" class=
"media" target=
"_blank" title=
"geda:net.jpg"><img src=
"media/geda/net.jpg" class=
"media" alt=
"" /></a> </td>
172 <!-- EDIT8 TABLE [11271-11292] --><pre class=
"code">v
19991011
173 C
38700 58100 1 0 0 7400-
1.sym
175 T
39000 59000 5 10 1 1 0
177 T
38900 59500 5 10 1 1 0
179 T
38900 59300 5 10 1 1 0
182 N
38700 58800 37400 58800 4
184 T
37600 58900 5 10 1 1 0
187 N
37400 58800 37400 59200 4
188 N
38700 58400 37400 58400 4
189 N
37400 58000 37400 58400 4
190 C
37300 57700 1 0 0 gnd-
1.sym
191 C
37200 59200 1 0 0 vcc-
1.sym
193 T
36800 59200 5 10 1 1 0
196 N
40000 58600 41600 58600 4
198 T
41200 58700 5 10 1 1 0
201 C
40700 58800 1 90 0 resistor-
1.sym
203 T
40800 59200 5 10 1 1 0
206 N
40600 58800 40600 58600 4
207 N
40600 59900 40600 59700 4
208 C
40400 59900 1 0 0 5V-plus-
1.sym
</pre>
211 Запуск
<strong>gnetlist
</strong> для данного примера (в котором в качестве формата списка соединений задаётся
<code>geda
</code>) выдаст следующее:
213 <pre class=
"code">START header
215 gEDA
's netlist format
216 Created specifically for testing of gnetlist
235 +
5V : R1
2, U100
14, U100
1
237 OUTPUT : R1
1, U100
3
242 Заметьте, как переименовано соединение
<code>NETLABEL
</code> (получило псевдоним
247 <!-- EDIT7 SECTION "Пример" [10044-12619] -->
248 <h2 class=
"sectionedit9" id=
"заключение">Заключение
</h2>
252 Если вы нашли какую-либо ошибку,
<a href=
"geda-howto_report_bugs.ru.html" class=
"wikilink1" title=
"geda-howto_report_bugs.ru.html">дайте нам знать
</a>.
256 <!-- EDIT9 SECTION "Заключение" [12620-] --></body>