missing NULL terminator in set_config_x
[geda-gaf.git] / docs / wiki / geda-na_howto.ru.html
blob24e7bbe06486b4845d2379793c97b5605394d66c
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html>
4 <head>
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" />
10 </head>
11 <body>
13 <p>
14 <em>Эта страница доступна также на следующих языках:</em> <a href="geda-na_howto.html" class="wikilink1" title="geda-na_howto.html">English</a>
15 </p>
17 <h1 class="sectionedit1" id="мини-howto_по_атрибуту_net">Мини-HOWTO по атрибуту net=</h1>
18 <div class="level1">
20 <p>
21 Автор: <em>Ales Hvezda</em>
22 </p>
24 <p>
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>
27 </p>
29 <p>
30 2 октября 2003 г.
31 </p>
33 <p>
34 Информация в данном документе актуальна по состоянию на 11.10.1999 г.
35 </p>
37 </div>
38 <!-- EDIT1 SECTION "Мини-HOWTO по атрибуту net=" [117-490] -->
39 <h2 class="sectionedit2" id="зачем_нужен_атрибут_net">Зачем нужен атрибут net=?</h2>
40 <div class="level2">
42 <p>
43 Атрибут <code>net=</code> используется в системе gEDA для описания
44 <a href="geda-glossary.ru.html#соединение" class="wikilink1" title="geda-glossary.ru.html">соединений</a> питания и специальных
45 соединений.<br/>
46 Он используется вместо иных способов определения выводов
47 питания (таких как наличие выводов питания на символах компонентов или
48 блоков питания). В некоторых устройствах выводов питания очень много, и их
49 вычерчивание увеличило бы размер символа и сделало бы его трудно поддающимся
50 обработке. Атрибут <code>net=</code> выбран в системе gEDA для определения соединений
51 питания из-за своей простоты и универсальности. После всего вышесказанного
52 добавим, что выводы питания можно изображать и на символе, но <strong>gnetlist</strong>,
53 скорее всего, не сможет понять, что соединения, подключенные к этим выводам,
54 это особая группа питающих соединений. Имейте это в виду, когда чертите
55 символы.
56 </p>
58 </div>
59 <!-- EDIT2 SECTION "Зачем нужен атрибут net=?" [491-1970] -->
60 <h2 class="sectionedit3" id="каков_формат_атрибута_net">Каков формат атрибута net=?</h2>
61 <div class="level2">
63 <p>
64 Атрибуты в gEDA — это простые текстовые элементы вида
65 <code>имя_атрибута=значение</code>. Каждый атрибут должен иметь такую форму. Для
66 имён атрибутов всегда используется нижний регистр. <strong>gnetlist</strong> сотоварищи
67 — регистрозависимы. Для имён соединений/сигналов обычно используется
68 верхний регистр.<br/>
69 Атрибут может быть прикреплён к объекту или, в некоторых
70 случаях (как в случае атрибута <code>net=</code>), может быть свободным (не
71 прикреплённым к чему-либо). Свободные атрибуты также называются атрибутами
72 верхнего уровня.<br/>
73 Атрибут <code>net=</code> — это текстовый элемент следующего
74 вида:
75 </p>
76 <pre class="code">net=signalname:pinname,pinname,pinname,...</pre>
78 <p>
79 где:
80 </p>
81 <div class="table sectionedit4"><table class="inline">
82 <tr class="row0">
83 <td class="col0"> <code>net=</code> </td><td class="col1">имя данного атрибута (неизменяемое, в нижнем регистре) </td>
84 </tr>
85 <tr class="row1">
86 <td class="col0"> <code>signalname</code> </td><td class="col1">имя сигнала или соединения, устанавливаемое в нём (например, +5V, GND, и т. д.) </td>
87 </tr>
88 <tr class="row2">
89 <td class="col0"> <code>pinname</code> </td><td class="col1">название (или номер) вывода, установленное для этого сигнала/соединения (или несколько названий/номеров выводов) </td>
90 </tr>
91 </table></div>
92 <!-- EDIT4 TABLE [3101-3591] -->
93 <p>
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>, но названий/номеров выводов может
102 быть сколько угодно.
103 </p>
105 </div>
106 <!-- EDIT3 SECTION "Каков формат атрибута net=?" [1971-4467] -->
107 <h2 class="sectionedit5" id="как_на_самом_деле_используется_атрибут_net">Как на самом деле используется атрибут net=?</h2>
108 <div class="level2">
111 Атрибут <code>net=</code> может располагаться в разных местах. Вот варианты:
112 </p>
113 <ul>
114 <li class="level1"><div class="li"> Внутри символа как прикреплённый атрибут или как неприкреплённый атрибут (атрибут верхнего уровня). Вот примеры создания соединений питания: <code>net=GND:7</code> или <code>net=+5V:14</code></div>
115 </li>
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>
117 </li>
118 <li class="level1"><div class="li"> Вне или внутри символа для автоматического подключения соединения к видимому выводу. Это пока ещё не проверено и может иметь какие-нибудь нежелательные (отрицательные) побочные эффекты. Используйте с осторожностью.</div>
119 </li>
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/>
123 </div>
124 </li>
125 </ul>
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>.
129 </p>
131 </div>
132 <!-- EDIT5 SECTION "Как на самом деле используется атрибут net=?" [4468-7810] -->
133 <h2 class="sectionedit6" id="предостережения_ошибки">Предостережения / Ошибки</h2>
134 <div class="level2">
137 Атрибут/механизм <code>net=</code> безусловно нов, поэтому непременно должны быть ошибки (много ошибок). Здесь приводятся некоторые из найденных проблем:
138 </p>
139 <ul>
140 <li class="level1"><div class="li"> На 11.10.1999 г. почти все символы стандартной библиотеки не имеют ни атрибута <code>net=</code>, ни любого другого признака питания. Надеюсь, когда-нибудь это будет исправлено (есть добровольцы?).</div>
141 </li>
142 <li class="level1"><div class="li"> Прикрепление специального питающего символа (vcc/gnd) к соединению, уже имеющему имя, задаст для него псевдоним с именем сигнала, указанным в атрибуте <code>net=</code> (который находится внутри этого символа vcc/gnd или прикреплён к нему), то есть фактически переименует это соединение. Такое поведение можно изменить (так что станет верным обратное), если поиграться с «net-naming-priority». Будьте осторожны с этим. Могут быть и другие, пока ещё не обнаруженные, проблемы именования.</div>
143 </li>
144 <li class="level1"><div class="li"> Создание атрибута <code>net=</code>, связывающего имя сигнала с уже видимым на символе выводом, — это, скорее всего, плохая идея. Работать это будет, но все возможные последствия ещё не исследованы.</div>
145 </li>
146 <li class="level1"><div class="li"> Плохой идеей будет, вероятно, и прикрепление одного и того же атрибута <code>net=</code> несколько раз. <em>Ales</em> не формализовал, что должно происходить в таком случае. Просто запомните, что атрибут <code>net=</code> вне символа замещает внутренний.</div>
147 </li>
148 </ul>
150 </div>
151 <!-- EDIT6 SECTION "Предостережения / Ошибки" [7811-10043] -->
152 <h2 class="sectionedit7" id="пример">Пример</h2>
153 <div class="level2">
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.
166 </p>
167 <div class="table sectionedit8"><table class="inline">
168 <tr class="row0">
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>
170 </tr>
171 </table></div>
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
176 uref=U100
177 T 38900 59500 5 10 1 1 0
178 net=GND:7
179 T 38900 59300 5 10 1 1 0
180 net=+5V:14
182 N 38700 58800 37400 58800 4
184 T 37600 58900 5 10 1 1 0
185 netname=NETLABEL
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
194 net=+5V:1
196 N 40000 58600 41600 58600 4
198 T 41200 58700 5 10 1 1 0
199 netname=OUTPUT
201 C 40700 58800 1 90 0 resistor-1.sym
203 T 40800 59200 5 10 1 1 0
204 uref=R1
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>) выдаст следующее:
212 </p>
213 <pre class="code">START header
215 gEDA&#039;s netlist format
216 Created specifically for testing of gnetlist
218 END header
220 START components
222 R1 device=RESISTOR
223 U100 device=7400
225 END components
227 START renamed-nets
229 NETLABEL -&gt; +5V
231 END renamed-nets
233 START nets
235 +5V : R1 2, U100 14, U100 1
236 GND : U100 7, U100 2
237 OUTPUT : R1 1, U100 3
239 END nets</pre>
242 Заметьте, как переименовано соединение <code>NETLABEL</code> (получило псевдоним
243 +5V).
244 </p>
246 </div>
247 <!-- EDIT7 SECTION "Пример" [10044-12619] -->
248 <h2 class="sectionedit9" id="заключение">Заключение</h2>
249 <div class="level2">
252 Если вы нашли какую-либо ошибку, <a href="geda-howto_report_bugs.ru.html" class="wikilink1" title="geda-howto_report_bugs.ru.html">дайте нам знать</a>.
253 </p>
255 </div>
256 <!-- EDIT9 SECTION "Заключение" [12620-] --></body>
257 </html>