| << [[geda:gnetlist_ug:input_output_files|Input & output files]] | **[[geda:gnetlist_ug|gEDA gnetlist User Guide]]** | [[geda:gnetlist_ug:basic_netlisting|Basic netlisting]] >> | ===== Netlist backends ===== Normally, gnetlist generates a netlist in two steps. - The gnetlist frontend uses the human-readable schematic files to construct an intermediate form of the design. - A //netlist backend// is used to extract information from the intermediate form and write it out to disk. 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 [[http://www.liquidpcb.org/|LiquidPCB]], and the "spice-sdb" backend is often used to create netlists for use with the SPICE simulator. 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). A summary of all the netlist backends distributed with gnetlist is provided in the gnetlist manpage (which you can view by running ''man gnetlist''). If none of the distributed backends do what you need, you can write and install your own! For more information, see the [[geda:gnetlist_scheme_tutorial|Scripting a gnetlist backend in Scheme]] tutorial. ==== Specifying a backend ==== Use the ''-g'' option to indicate which backend you would like gnetlist to run. For example, to run the "bom2" backend: gnetlist -g bom2 ==== Listing backends ==== To view a list of installed backends, use the ''%%--list-backends%%'' command-line option: gnetlist --list-backends This will print a list of all the backends that gnetlist can find. ==== Interactive mode ==== An alternative to running a backend is to use //interactive mode//. When the ''-i'' 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.