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>
15 <a href=
"geda-faq-gnetlist.html" class=
"wikilink1" title=
"geda-faq-gnetlist.html">English
</a>,
<a href=
"geda-faq-gnetlist.fr.html" class=
"wikilink1" title=
"geda-faq-gnetlist.fr.html">Français
</a>.
18 <h1 id=
"gnetlist">gnetlist
</h1>
23 <h1 id=
"созданиеперечняэлементовbom">Создание перечня элементов (BOM)
</h1>
27 Для
<strong>gnetlist
</strong> есть пять разных драйверов экспорта перечня элементов. Они
28 вызываются с помощью ключа
<code>-g
</code>, при этом ключом
<code>-o
</code> необходимо задать
31 <pre class=
"code">gnetlist -g partslist3 -o output.bom schematic.sch
</pre>
34 <strong>gnetlist
</strong> спускается в листы подсхем и перечисляет их содержимое вместе с
35 компонентами из основного документа.
39 Для драйверов
<strong>bom
</strong> и
<strong>bom2
</strong> должен быть доступен на чтение локальный
40 файл
<em><code>attribs
</code></em>. В этом файле в виде отдельных строк должны содержаться
41 имена атрибутов, которые должны быть приведены в перечне. Например:
43 <pre class=
"code">value
48 Драйверы по-разному перечисляют и сортируют компоненты в текстовом файле.
49 Выберите тот, который вам больше нравится:
58 Драйверу
<strong>bom
</strong> нужен файл
<em><code>attribs
</code></em> (см. выше). В перечне,
59 произведённом с помощью
<strong><code>-g bom
</code></strong>, будет содержаться столько строк,
60 сколько имеется компонентов. Столбцы разделяются знаками табуляции. Строки
66 <h4 id=
"bom2">bom2
</h4>
70 Драйверу
<strong>bom2
</strong> также нужен файл
<em><code>attribs
</code></em>. С помощью
<strong><code>-g
71 bom2
</code></strong> одинаковые позиционные обозначения компонентов будут собраны в одну
72 строку. Столбцы разделяются двоеточиями. Несколько элементов в одном и том
73 же столбце разделяются запятыми.
78 <h4 id=
"partslist1">partslist1
</h4>
82 Перечень, производимый драйвером
<strong>partlist1
</strong>, содержит строки для каждого
83 компонента. Строки сортируются в алфавитном порядке по позиционному
84 обозначению (
<code>refdes
</code>). Используются столбцы
<code>refdes
</code>,
<code>device
</code>,
85 <code>value
</code>,
<code>footprint
</code> и
<code>quantity
</code>. Так как каждая строка содержит
86 только один компонент, количество (
<code>quantity
</code>) всегда равно
<code>1</code>.
91 <h4 id=
"partslist2">partslist2
</h4>
95 Данный драйвер производит вывод, подобный выводу
<strong>partslist1
</strong>. Строки
96 сортируются по значению атрибута
<code>device
</code>.
101 <h4 id=
"partslist3">partslist3
</h4>
105 Драйвер
<strong>partslist3
</strong> собирает все компоненты с одинаковым значением в одну
106 строку, очень похоже на
<strong>bom2
</strong>. Строки сортируются по атрибутам
<code>value
</code>
107 и
<code>device
</code>. Четвёртый столбец сообщает количество компонентов в строке.
108 Столбцы разделяются знаками табуляции, элементы --- пробелами.
113 <h1 id=
"проверкасоответствияпроектнымнормамdrc">Проверка соответствия проектным нормам (DRC)
</h1>
118 <h2 id=
"какмнепроверитьсвоисхемы">Как мне проверить свои схемы?
</h2>
122 Можно проверять схемы с помощью драйвера
<strong>drc2
</strong> для
<strong>gnetlist
</strong>. Он
123 проверит схемы на предмет самых общих ошибок, таких как одинаковые
124 обозначения, неподключенные выводы, неиспользуемые
<a href=
"geda-glossary.ru.html#секциякомпонента" class=
"wikilink1" title=
"geda-glossary.ru.html">секции многосекционных компонентов
</a> и прочее.
128 Запустите драйвер
<strong>drc2
</strong> следующей командой:
130 <pre class=
"code">gnetlist -g drc2 -o MyDesign.drc MyDesign.sch
</pre>
133 Вывод DRC (
<a href=
"geda-glossary.ru.html#проверкасоответствияпроектнымнормам" class=
"wikilink1" title=
"geda-glossary.ru.html">проверки на соответствие проектным нормам
</a>) записывается этой
134 командой в файл
<em><code>MyDesign.drc
</code></em>. Этот файл можно затем открыть в
135 текстовом редакторе и посмотреть предупреждения и ошибки DRC.
140 <h2 id=
"какувидетьвыводdrcнаэкранебеззаписивфайл">Как увидеть вывод DRC на экране, без записи в файл?
</h2>
144 Запустите драйвер
<strong>drc2
</strong> следующей командой:
146 <pre class=
"code">gnetlist -g drc2 -o - MyDesign.sch
</pre>
149 Вы увидите вывод DRC непосредственно на экране.
154 <h2 id=
"яхочузапретитьнекоторыеизпроверокdrcдлясхемкакэтосделать">Я хочу запретить некоторые из проверок DRC для схем. Как это сделать?
</h2>
158 Драйвер
<strong>drc2
</strong> очень гибко настраивается. Вам нужно записать в файл
159 несколько специальных команд и вызвать
<strong>gnetlist
</strong> с ключом
<code>-l
</code>, задав
160 после него имя этого файла.
164 Наиболее общие команды:
167 <li class=
"level1"><div class=
"li"> (define dont-check-non-numbered-parts
1) ;; Запретить проверку на ненумерованные компоненты
</div>
169 <li class=
"level1"><div class=
"li"> (define dont-check-duplicated-references
1) ;; Запретить проверку на одинаковые обозначения
</div>
171 <li class=
"level1"><div class=
"li"> (define dont-check-one-connection-nets
1) ;; Запретить проверку на соединения с одним единственным подключением
</div>
173 <li class=
"level1"><div class=
"li"> (define dont-check-pintypes-of-nets
1) ;; Запретить проверку типа выводов
</div>
175 <li class=
"level1"><div class=
"li"> (define dont-check-not-driven-nets
1) ;; Запретить проверку на соединения, не имеющие питающих подключений
<sup><a href=
"#fn__4" id=
"fnt__4" class=
"fn_top">4)
</a></sup></div>
177 <li class=
"level1"><div class=
"li"> (define dont-check-unconnected-pins
1) ;; Запретить проверку на неподключенные выводы
</div>
179 <li class=
"level1"><div class=
"li"> (define dont-check-duplicated-slots
1) ;; Запретить проверку на дублирование секций многосекционных компонентов
</div>
181 <li class=
"level1"><div class=
"li"> (define dont-check-unused-slots
1) ;; Запретить проверку на неиспользуемые секции многосекционных компонентов
</div>
183 <li class=
"level1"><div class=
"li"> (define dont-check-slots
1) ;; Запретить проверку на количество секций многосекционных компонентов
</div>
185 <li class=
"level1"><div class=
"li"> (define action-unused-slots #\w) ;; Вывести сообщение о неиспользуемых секциях многосекционных компонентов как предупреждение
</div>
187 <li class=
"level1"><div class=
"li"> (define action-unused-slots #\e) ;; Вывести сообщение о неиспользуемых секциях многосекционных компонентов как ошибку
</div>
189 <li class=
"level1"><div class=
"li"> (define action-unused-slots #\c) ;; Считать нормой наличие неиспользуемых секций многосекционных компонентов
</div>
191 <li class=
"level1"><div class=
"li"> (define case_insensitive
1) ;; Все проверки производить без учёта регистра символов
</div>
196 Есть и несколько других продвинутых команд для изменения матрицы DRC и типов
197 выводов, которые можно считать питающими подключениями. Посмотрите файл
198 драйвера
<em><code>gnet-drc2.scm
</code></em> в текстовом редакторе. Там, в начале, есть
203 Скопируйте нужное вам из вышеуказанных строк в файл (например,
204 <em><code>drc_rules.txt
</code></em>), причём каждая команда должна записываться отдельной
205 строкой, и запустите проверку:
207 <pre class=
"code">gnetlist -g drc2 -l drc_rules.txt -o MyDesign.drc MyDesign.sch
</pre>
210 Вывод DRC (
<a href=
"geda-glossary.ru.html#проверкасоответствияпроектнымнормам" class=
"wikilink1" title=
"geda-glossary.ru.html">проверки на соответствие проектным нормам
</a>) записывается этой
211 командой в файл
<em><code>MyDesign.drc
</code></em>. Этот файл можно затем открыть в
212 текстовом редакторе и посмотреть предупреждения и ошибки DRC.
217 <h2 id=
"можноливключитьпроверкусоответствияпроектнымнормамвmakefileипринахожденииошибокилипредупрежденийостанавливатьобработку">Можно ли включить проверку соответствия проектным нормам в Makefile и при нахождении ошибок или предупреждений останавливать обработку?
</h2>
221 Да. Драйвер
<strong>drc2
</strong> возвратит код ошибки, если есть ошибки или
222 предупреждения, поэтому можно добавить в свой
<em><code>Makefile
</code></em> следующее:
224 <pre class=
"code">$(objects).drc : $(objects).sch
225 gnetlist -g drc2 $(objects).sch -o $(objects).drc
</pre>
228 Если вы собираетесь моделировать работу своей схемы, в Makefile можно
231 <pre class=
"code">$(objects).cir : $(objects).sch $(objects).drc
232 grep -v ERROR $(objects).drc
>/dev/null
2>&1
233 gnetlist -g spice-sdb $(objects).sch -o $(objects).cir
</pre>
236 Если нет, возьмите вышеуказанный пример и адаптируйте его для используемого
237 вами рабочего процесса.
242 <h2 id=
"некоторыепредупреждениявыдаваемыедлямоегопроектамнеужеизвестныможнолисделатьтакчтобыонинеучитывалисьввозвращаемомзначении">Некоторые предупреждения, выдаваемые для моего проекта, мне уже известны. Можно ли сделать так, чтобы они не учитывались в возвращаемом значении?
</h2>
246 Используйте ключ
<code>-O ignore-warnings-in-return-value
</code>:
248 <pre class=
"code">gnetlist -g drc2 -o - MyDesign.sch -O ignore-warnings-in-return-value
</pre>
251 Будьте осторожны с этим! Вы вообще никаких предупреждений не увидите!
256 <h1 id=
"проблемысборкииработыgnetlist">Проблемы сборки и работы gnetlist
</h1>
261 <h2 id=
"приработеgnetlistяполучаюошибкуparenthesismismatchнесоответствиескобокчтопроисходит">При работе gnetlist я получаю ошибку
"parenthesis mismatch
" (несоответствие скобок). Что происходит?
</h2>
265 Начиная с
<strong>Fedora Core
6</strong> и
<strong>SuSE
10.2</strong>, многие пользователи сообщали об
266 ошибке, выглядящей подобным образом:
268 <pre class=
"code">$gnetlist -g spice-sdb -o TwoStageAmp.cir TwoStageAmp.sch
269 Command line passed = gnetlist -g spice-sdb -o TwoStageAmp.cir TwoStageAmp.sch
270 gEDA/gnetlist version
20061020
271 gEDA/gnetlist comes with ABSOLUTELY NO WARRANTY; see COPYING for more details.
272 This is free software, and you are welcome to redistribute it under certain
273 conditions; please see the COPYING file for more details.
275 Remember to check that your schematic has no errors using the drc2 backend.
276 You can do it running
'gnetlist -g drc2 your_schematic.sch -o
277 drc_output.txt
' and seeing the contents of the file drc_output.txt.
279 Loading schematic [/home/nano/TwoStageAmp/TwoStageAmp.sch]
280 Probably parenthesis mismatch in /usr/share/gEDA/scheme/gnet-spice-sdb.scm
281 Most recently read form: (#@begin #
<unspecified
>)
282 ERROR: Unbound variable: spice-sdb
</pre>
285 Эта проблема обнаруживается для нескольких драйверов
<strong>gnetlist
</strong>, включая
286 <strong>spice-sdb
</strong> и
<strong>drc2
</strong>.
290 Это программная ошибка в
<strong>guile-
1.8.X
</strong>. Разработчики gEDA работают над
291 исправлением. Пока попробуйте откатить
<strong>guile
</strong> к версии
1.6.7, которая,
292 как известно, работает с gEDA безупречно.
297 <h2 id=
"драйверgnetlistbomнеработаетвчёмдело">Драйвер gnetlist bom не работает. В чём дело?
</h2>
301 Если при запуске
<strong>gnetlist
</strong> следующим образом
303 <pre class=
"code">gnetlist -g bom filename.sch
</pre>
306 выводится сообщение об ошибке
308 <pre class=
"code">Loading schematic [filename.sch]
309 ERROR: In procedure open-file:
310 ERROR: No such file or directory:
"attribs
"</pre>
313 то вам нужно создать файл
<em><code>attribs
</code></em> в текущем каталоге, содержащий
314 атрибуты, которые вы хотите увидеть в bom-файле. Вот пример такого файла:
316 <pre class=
"code">device
320 Информацию по созданию BOM смотрите
<a href=
"#созданиеперечняэлементовbom" title=
":geda:faq-gnetlist.ru.txt ↵" class=
"wikilink1">
326 <h2 id=
"некоторыедрайверыgnetlistприводяткпереполнениюстекакакэтоисправить">Некоторые драйверы gnetlist приводят к переполнению стека. Как это исправить?
</h2>
330 Если при обработке определённой схемы большого размера некоторыми драйверами
331 вы получаете такое сообщение об ошибке
333 <pre class=
"code">ERROR: Stack overflow
</pre>
336 добавьте следующее в файл
<em><code>~/.gEDA/gnetlistrc
</code></em> или локальный
337 <em><code>gnetlistrc
</code></em> (в текущем рабочем каталоге):
339 <pre class=
"code">(debug-options (list
'stack
200000))
340 (eval-options (list
'stack
200000))
</pre>
343 Если так не заработает, отредактируйте соответствующий драйвер (обычно с
344 названием
<em><code>gnet-имя_драйвера.scm
</code></em>) и добавьте вышеуказанные строки в
345 начало данного файла. Драйверы
<strong>gnetlist
</strong> можно найти в каталоге
346 <em><code>${prefix}/share/gEDA/scheme
</code></em>. Также отправьте электронное письмо в
347 рассылку
<em>geda-user
</em>, чтобы напомнить разработчикам исправить
348 это. Запомните, прежде чем писать в
<em>geda-user
</em>, вам нужно подписаться на
349 этот список рассылки.
354 <h2 id=
"gnetlistсоздалсписоксоединенийсдублированнымивыводами">gnetlist создал список соединений с дублированными выводами!?
</h2>
358 Было по крайней мере одно сообщение о следующей ошибке, выдаваемой
<strong>pcb
</strong>
359 после загрузки списка соединений, созданного с помощью
<strong>gnetlist
</strong>:
361 <pre class=
"code">28: Error! Element R117 pin
2 appears multiple times in the netlist file.
362 29: Error! Element C167 pin
2 appears multiple times in the netlist file.
</pre>
365 Что здесь произошло?
<strong>gnetlist
</strong> (а в самом деле
<strong>libgeda
</strong>) создал два
366 соединения вместо одного. Это происходит, когда вывод присоединяется в точке
367 пересечения двух соединений. Заметьте, что пересекающиеся соединения не
368 подключены друг к другу. Это демонстрирует следующая схема:
372 <a href=
"media/geda/ambiguous1.ru.png" class=
"media" target=
"_blank" title=
"geda:ambiguous1.ru.png">geda:ambiguous1.ru.png
</a>
376 Пока разработчики спорят, считать ли это ошибкой
<strong>gnetlist
</strong> или нет, вам
377 следует обеспечить, чтобы соединения, особенно там, где выводы подключаются
378 и к другим соединениям, были начерчены явно. Как вышеуказанные соединения
379 должны вычерчиваться, чтобы список соединений создавался правильно, показано
384 <a href=
"media/geda/ambiguous1_fixed.ru.png" class=
"media" target=
"_blank" title=
"geda:ambiguous1_fixed.ru.png">geda:ambiguous1_fixed.ru.png
</a>
388 <div class=
"footnotes">
389 <div class=
"fn"><sup><a href=
"#fnt__4" id=
"fn__4" class=
"fn_bot">4)
</a></sup>
390 <div class=
"content">Питающими подключениями могут быть выводы питания, выходы и т. п. При данной проверке, например, недопустимыми окажутся соединения, подключенные только ко входным выводам. ---
<em>Прим. перев.
</em></div></div>