Для gnetlist есть пять
разных драйверов экспорта перечня элементов. Они вызываются с помощью ключа
-g, при этом ключом -o необходимо задать имя выходного файла:
gnetlist -g partslist3 -o output.bom schematic.sch
gnetlist спускается в листы подсхем и перечисляет их содержимое вместе с компонентами из основного документа.
Для драйверов bom и bom2 должен быть доступен на чтение локальный файл
attribs. В этом файле в виде отдельных строк должны содержаться
имена атрибутов, которые должны быть приведены в перечне. Например:
value footprint description
Драйверы по-разному перечисляют и сортируют компоненты в текстовом файле. Выберите тот, который вам больше нравится:
Драйверу bom нужен файл attribs (см. выше). В перечне,
произведённом с помощью -g bom, будет содержаться столько строк,
сколько имеется компонентов. Столбцы разделяются знаками табуляции. Строки не
сортируются.
Драйверу bom2 также нужен файл attribs. С помощью -g bom2
одинаковые позиционные обозначения компонентов будут собраны в одну строку.
Столбцы разделяются двоеточиями. Несколько элементов в одном и том же столбце
разделяются запятыми.
Перечень, производимый драйвером partlist1, содержит строки для каждого
компонента. Строки сортируются в алфавитном порядке по позиционному
обозначению (refdes). Используются столбцы refdes, device,
value, footprint и quantity. Так как каждая строка содержит только
один компонент, количество (quantity) всегда равно 1.
Данный драйвер производит вывод, подобный выводу partslist1. Строки
сортируются по значению атрибута device.
Драйвер partslist3 собирает все компоненты с одинаковым значением в одну
строку, очень похоже на bom2. Строки сортируются по атрибутам value и
device. Четвёртый столбец сообщает количество компонентов в строке.
Столбцы разделяются знаками табуляции, элементы — пробелами.
Можно проверять схемы с помощью драйвера drc2 для gnetlist. Он проверит схемы на предмет самых общих ошибок, таких как одинаковые обозначения, неподключенные выводы, неиспользуемые секции многосекционных компонентов и прочее.
Запустите драйвер drc2 следующей командой:
gnetlist -g drc2 -o MyDesign.drc MyDesign.sch
Этой командой указывается, что вывод DRC
(проверки на соответствие проектным нормам)
должен записываться в файл
MyDesign.drc. Затем этот файл можно открыть в текстовом редакторе и
посмотреть предупреждения и ошибки DRC.
Запустите драйвер drc2 следующей командой:
gnetlist -g drc2 -o - MyDesign.sch
Вы увидите вывод DRC непосредственно на экране.
Драйвер drc2 очень гибко настраивается. Вам нужно записать в файл
несколько специальных команд и вызвать gnetlist с ключом -l, задав
после него имя этого файла.
Наиболее общие команды:
Есть и несколько других продвинутых команд для изменения матрицы DRC и типов
выводов, которые можно считать питающими подключениями. Посмотрите файл драйвера
gnet-drc2.scm в текстовом редакторе. Там, в начале, есть документация.
Скопируйте нужное вам из вышеуказанных строк в файл (например,
drc_rules.txt), причём каждая команда должна записываться отдельной
строкой, и запустите проверку:
gnetlist -g drc2 -l drc_rules.txt -o MyDesign.drc MyDesign.sch
Вывод DRC записывается этой командой в файл MyDesign.drc. Этот файл
можно затем открыть в текстовом редакторе и посмотреть предупреждения и ошибки.
Да. Драйвер drc2 возвратит код ошибки, если есть ошибки или
предупреждения, поэтому можно добавить в свой Makefile следующее:
$(objects).drc : $(objects).sch
gnetlist -g drc2 $(objects).sch -o $(objects).drc
Если вы собираетесь моделировать работу своей схемы, в Makefile можно добавить следующее:
$(objects).cir : $(objects).sch $(objects).drc
grep -v ERROR $(objects).drc >/dev/null 2>&1
gnetlist -g spice-sdb $(objects).sch -o $(objects).cir
Если нет, возьмите вышеуказанный пример и адаптируйте его для используемого вами рабочего процесса.
Используйте ключ -O ignore-warnings-in-return-value:
gnetlist -g drc2 -o - MyDesign.sch -O ignore-warnings-in-return-value
Будьте осторожны с этим! Вы вообще никаких предупреждений не увидите!
Начиная с Fedora Core 6 и SuSE 10.2, многие пользователи сообщали об ошибке, выглядящей подобным образом:
$gnetlist -g spice-sdb -o TwoStageAmp.cir TwoStageAmp.sch Command line passed = gnetlist -g spice-sdb -o TwoStageAmp.cir TwoStageAmp.sch gEDA/gnetlist version 20061020 gEDA/gnetlist comes with ABSOLUTELY NO WARRANTY; see COPYING for more details. This is free software, and you are welcome to redistribute it under certain conditions; please see the COPYING file for more details. Remember to check that your schematic has no errors using the drc2 backend. You can do it running 'gnetlist -g drc2 your_schematic.sch -o drc_output.txt' and seeing the contents of the file drc_output.txt. Loading schematic [/home/nano/TwoStageAmp/TwoStageAmp.sch] Probably parenthesis mismatch in /usr/share/gEDA/scheme/gnet-spice-sdb.scm Most recently read form: (#@begin #<unspecified>) ERROR: Unbound variable: spice-sdb
Эта проблема обнаруживается для нескольких драйверов gnetlist, включая spice-sdb и drc2.
Это программная ошибка в guile-1.8.X. Разработчики gEDA работают над исправлением. Пока попробуйте откатить guile к версии 1.6.7, которая, как известно, работает с gEDA безупречно.
Если при запуске gnetlist следующим образом
gnetlist -g bom filename.sch
выводится сообщение об ошибке
Loading schematic [filename.sch] ERROR: In procedure open-file: ERROR: No such file or directory: "attribs"
то вам нужно создать файл attribs в текущем каталоге, содержащий
атрибуты, которые вы хотите увидеть в bom-файле. Вот пример такого файла:
device value
Информацию по созданию BOM смотрите выше.
Если при обработке определённой схемы большого размера некоторыми драйверами вы получаете такое сообщение об ошибке
ERROR: Stack overflow
добавьте следующее в файл ~/.gEDA/gnetlistrc или локальный
gnetlistrc (в текущем рабочем каталоге):
(debug-options (list 'stack 200000)) (eval-options (list 'stack 200000))
Если так не заработает, отредактируйте соответствующий драйвер (обычно с
названием gnet-имя_драйвера.scm) и добавьте вышеуказанные строки в
начало данного файла. Драйверы gnetlist можно найти в каталоге
${prefix}/share/gEDA/scheme. Также отправьте электронное письмо в
рассылку geda-user, чтобы напомнить разработчикам исправить это. Запомните,
прежде чем писать в geda-user, вам нужно подписаться на этот список
рассылки.
Было по крайней мере одно сообщение о следующей ошибке, выдаваемой pcb после загрузки списка соединений, созданного с помощью gnetlist:
28: Error! Element R117 pin 2 appears multiple times in the netlist file. 29: Error! Element C167 pin 2 appears multiple times in the netlist file.
Что здесь произошло? gnetlist (а в самом деле libgeda) создал два соединения вместо одного. Это происходит, когда вывод присоединяется в точке пересечения двух соединений. Заметьте, что пересекающиеся соединения не подключены друг к другу. Это демонстрирует следующая схема:
Пока разработчики спорят, считать ли это ошибкой gnetlist или нет, вам следует обеспечить, чтобы соединения, особенно там, где выводы подключаются и к другим соединениям, были начерчены явно. Как вышеуказанные соединения должны вычерчиваться, чтобы список соединений создавался правильно, показано на этом рисунке: