missing NULL terminator in set_config_x
[geda-gaf.git] / docs / wiki / geda-gnetlist_ug-netlist_backends.html
blob78fe9f927789c07a09d0ad91ac147dd675c2f0a4
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>
12 <a href=.>start</a>&nbsp;=>&nbsp;<a href=geda-gnetlist_ug.html>gnetlist_ug</a></br>
13 <div class="table sectionedit1"><table class="inline">
14 <tr class="row0">
15 <td class="col0 leftalign"> « <a href="geda-gnetlist_ug-input_output_files.html" class="wikilink1" title="geda-gnetlist_ug-input_output_files.html">Input &amp; output files</a> </td><td class="col1 centeralign"> <strong><a href="geda-gnetlist_ug.html" class="wikilink1" title="geda-gnetlist_ug.html">gEDA gnetlist User Guide</a></strong> </td><td class="col2 rightalign"> <a href="geda-gnetlist_ug-basic_netlisting.html" class="wikilink1" title="geda-gnetlist_ug-basic_netlisting.html">Basic netlisting</a> » </td>
16 </tr>
17 </table></div>
18 <!-- EDIT1 TABLE [1-187] -->
19 <h2 class="sectionedit2" id="netlist_backends">Netlist backends</h2>
20 <div class="level2">
22 <p>
23 Normally, gnetlist generates a netlist in two steps.
24 </p>
25 <ol>
26 <li class="level1"><div class="li"> The gnetlist frontend uses the human-readable schematic files to construct an intermediate form of the design.</div>
27 </li>
28 <li class="level1"><div class="li"> A <em>netlist backend</em> is used to extract information from the intermediate form and write it out to disk.</div>
29 </li>
30 </ol>
32 <p>
33 Most backends are used to write out electrical connectivity information in a machine-readable format for use by other tools. For example, the “liquidpcb” backend is used to generate a netlist to use when designing a circuit board with <a href="http://www.liquidpcb.org/" class="urlextern" title="http://www.liquidpcb.org/" rel="nofollow">LiquidPCB</a>, and the “spice-sdb” backend is often used to create netlists for use with the SPICE simulator.
34 </p>
36 <p>
37 Backends may have other uses, however. For example, the “bom2” backend is used for generating a list of components used (a “Bill of Materials”), and the “drc2” backend carries out “design rule checking” (i.e. checking a design for commonly-made errors and potential problems).
38 </p>
40 <p>
41 A summary of all the netlist backends distributed with gnetlist is provided in the gnetlist manpage (which you can view by running <code>man gnetlist</code>).
42 </p>
43 <div class="notetip">If none of the distributed backends do what you need, you can write and install your own! For more information, see the <a href="geda-gnetlist_scheme_tutorial.html" class="wikilink1" title="geda-gnetlist_scheme_tutorial.html">Scripting a gnetlist backend in Scheme</a> tutorial.
44 </div>
45 </div>
46 <!-- EDIT2 SECTION "Netlist backends" [189-1522] -->
47 <h3 class="sectionedit3" id="specifying_a_backend">Specifying a backend</h3>
48 <div class="level3">
50 <p>
51 Use the <code>-g</code> option to indicate which backend you would like gnetlist to run. For example, to run the “bom2” backend:
52 </p>
53 <pre class="code">gnetlist -g bom2</pre>
55 </div>
56 <!-- EDIT3 SECTION "Specifying a backend" [1523-1709] -->
57 <h3 class="sectionedit4" id="listing_backends">Listing backends</h3>
58 <div class="level3">
60 <p>
61 To view a list of installed backends, use the <code>--list-backends</code> command-line option:
62 </p>
63 <pre class="code">gnetlist --list-backends</pre>
65 <p>
66 This will print a list of all the backends that gnetlist can find.
67 </p>
69 </div>
70 <!-- EDIT4 SECTION "Listing backends" [1710-1938] -->
71 <h3 class="sectionedit5" id="interactive_mode">Interactive mode</h3>
72 <div class="level3">
74 <p>
75 An alternative to running a backend is to use <em>interactive mode</em>. When the <code>-i</code> option is used, gnetlist creates the intermediate form from the schematic files, and then enters a Scheme REPL (Read-Eval-Print Loop). This allows you to run Scheme commands and inspect the output, which can be useful for troubleshooting and to enable some advanced netlist processing techniques.
76 </p>
78 </div>
79 <!-- EDIT5 SECTION "Interactive mode" [1939-] --></body>
80 </html>