File: gnetlist.html

package info (click to toggle)
geda-gnetlist 20061020-2
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 2,184 kB
  • ctags: 710
  • sloc: lisp: 5,513; ansic: 4,045; sh: 3,736; makefile: 309
file content (537 lines) | stat: -rw-r--r-- 15,541 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
<!-- Creator     : groff version 1.18.1 -->
<!-- CreationDate: Fri Oct 20 23:27:33 2006 -->
<html>
<head>
<meta name="generator" content="groff -Thtml, see www.gnu.org">
<meta name="Content-Style" content="text/css">
<title>gnetlist</title>
</head>
<body>

<h1 align=center>gnetlist</h1>
<a href="#NAME">NAME</a><br>
<a href="#SYNOPSIS">SYNOPSIS</a><br>
<a href="#DESCRIPTION">DESCRIPTION</a><br>
<a href="#OPTIONS">OPTIONS</a><br>
<a href="#EXAMPLES">EXAMPLES</a><br>
<a href="#ENVIRONMENT">ENVIRONMENT</a><br>
<a href="#AUTHOR">AUTHOR</a><br>
<a href="#SEE ALSO">SEE ALSO</a><br>
<a href="#COPYRIGHT">COPYRIGHT</a><br>

<hr>
<a name="NAME"></a>
<h2>NAME</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>gnetlist - gEDA/gaf Netlist extraction/generation</p>
</td>
</table>
<a name="SYNOPSIS"></a>
<h2>SYNOPSIS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>gnetlist</b> [-i] [-I] [-q] [-s] [-v] [-l schem_file]
[-m schem_file ] [-g guile_procedure] [-c scheme_string ]
[-o output_filename] schematic1 [... schematicN]</p>
</td>
</table>
<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><i>gnetlist</i> is the netlist extraction/generation
program which is part gEDA (GPL Electronic Design
Automation) toolset. This program takes a schematic for its
input and outputs a netlist.</p>
<!-- INDENTATION -->
<p>gnetlist depends heavily on guile (a scheme based
scripting language). It uses guile to define the output
format. Basically gnetlist reads a schematic, creates an
internal representation of the various connections, and then
a guile script extracts the connections into some netlist
format.</p>
<!-- INDENTATION -->
<p>gnetlist is very much so a work in progress. Currently it
supports the following backends:</p>
<!-- INDENTATION -->
<p>1) Allegro netlist format (-g allegro)</p>
<!-- INDENTATION -->
<p>2) BAE netlist format (-g bae)</p>
<!-- INDENTATION -->
<p>3) BOM / BOM2 - Bill of Materials (-g bom and -g
bom2)</p>
<!-- INDENTATION -->
<p>4) Partslist 1,2,3 - More Bill of Materials (-g
partslist[1-3])</p>
<!-- INDENTATION -->
<p>5) DRC - Start of a design rule checker (-g drc)</p>
<!-- INDENTATION -->
<p>6) DRC2 - A second design rule checker (-g drc2)</p>
<!-- INDENTATION -->
<p>7) gEDA - native format, mainly used for testing (-g
geda)</p>
<!-- INDENTATION -->
<p>8) Gossip netlist format (-g gossip)</p>
<!-- INDENTATION -->
<p>9) PADS netlist format (-g pads)</p>
<!-- INDENTATION -->
<p>10) PCB / PCBboard (-g PCB and -g PCBboard)</p>
<!-- INDENTATION -->
<p>11) gsch2pcb backend (-g gsch2pcb)</p>
<!-- INDENTATION -->
<p>12) ProtelII netlist format (-g protelII)</p>
<!-- INDENTATION -->
<p>13) Spice compatible netlist format (-g spice)</p>
<!-- INDENTATION -->
<p>14) Enhanced spice compatible netlist format (-g
spice-sdb)</p>
<!-- INDENTATION -->
<p>15) Switcap netlist format (-g switcap)</p>
<!-- INDENTATION -->
<p>16) Tango netlist format (-g tango)</p>
<!-- INDENTATION -->
<p>17) Verilog code (-g verilog)</p>
<!-- INDENTATION -->
<p>18) VHDL code (-g vhdl)</p>
<!-- INDENTATION -->
<p>19) VIPEC netlist format (-g vipec)</p>
<!-- INDENTATION -->
<p>20) Bartels Autoengineer netlist format (-g bae)</p>
<!-- INDENTATION -->
<p>21) GOSSIP system simulation system netlist format (-g
gossip)</p>
<!-- INDENTATION -->
<p>22) MAXASCII netlist format (-g maxascii)</p>
<!-- INDENTATION -->
<p>23) VHDL-AMS netlist format (-g vams)</p>
<!-- INDENTATION -->
<p>24) Futurenet2 netlist format (-g futurenet2 )</p>
<!-- INDENTATION -->
<p>25) SWITCAP switched capacitor simulator netlist format
(-g switcap )</p>
<!-- INDENTATION -->
<p>26) RF Cascade netlist format (-g cascade )</p>
<!-- INDENTATION -->
<p>27) RACAL-REDAC netlist format (-g redac )</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">

<p>28) PCB actions file for forward annotating pin/pad
names from schematic to layout (-g pcbpins)</p>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>For more info on these formats please look at the
README.*</p>
<!-- INDENTATION -->
<p>Please read the official (non-existant) documentation on
how to use gnetlist, since this man page just describes the
command line arguments and a few examples on how to run
gnetlist.</p>
</td>
</table>
<a name="OPTIONS"></a>
<h2>OPTIONS</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><i>gnelist</i> accepts the following options:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">

<p><b>-q</b></p>
</td>
<td width="4%"></td>
<td width="76%">

<p>Quiet mode on. This mode turns off all
warnings/notes/messages. (optional)</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="7%">

<p><b>-v</b></p>
</td>
<td width="4%"></td>
<td width="76%">

<p>Verbose mode on. This mode gives as much feedback to the
user as possible. (optional)</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>-g guile_procedure</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Specify the guile procedure which is executed to create
the netlist.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>-o output_filename</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Specify the filename which will contain the netlist
generated by gnetlist. If this option is not specified the
default filename is &quot;output.net&quot;.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>-l scheme_file</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Specify a filename which contains scheme code to be
loaded and execute before any backend is loaded or any guile
procedure (using -g flag) is executed. This flag can be
specified multiple times and can be used to pass information
to backends.</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>-m scheme_file</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Specify a filename which contains scheme code to be
loaded and execute after the backend is loaded but still
before any guile procedure (using -g flag) is executed. This
flag can be specified multiple times and can be used to pass
information to backends. This flag, for example, allows the
user to override variables inside of the backends (such as
paths).</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>-c string</b></p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>Pass the specified string to the guile interpreter. This
allows you to execute arbitrary guile scripts from the
command line. Be sure to surround the string with either
single or double quotes to satisfy your shell. The string is
execute before any init or netlist backend scheme code is
loaded or executed.</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="4" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">

<p><b>-I</b></p>
</td>
<td width="7%"></td>
<td width="76%">

<p>Put .INCLUDE &lt;filename&gt; in output file instead of
model file&rsquo;s contents.</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">

<p><b>-i</b></p>
</td>
<td width="7%"></td>
<td width="76%">

<p>Interactive mode. After the schematic is read in and
parsed then go into interactive mode. Interactive mode
allows the user to execute guile procedures directly.</p>
</td>
<tr valign="top" align="left">
<td width="11%"></td>
<td width="4%">

<p><b>-s</b></p>
</td>
<td width="7%"></td>
<td width="76%">

<p>Sort output netlist (for Gnucap)</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>schematic1 [... schematicN]</p></td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="23%"></td>
<td width="76%">
<p>At least one schematic file must be specified. If
multiple schematics are specified then they are sequentially
read in and parsed with the assumption that they are all
part of the same design. It is important that the
schematic(s) follow all the options (ie last).</p>
</td>
</table>
<a name="EXAMPLES"></a>
<h2>EXAMPLES</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>These examples assume that you have a stack_1.sch in the
current directory.</p>
<!-- INDENTATION -->
<p>gnetlist requires that at least one schematic to be
specified on the command line:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="7%"></td>
<td width="7%">
</td>
<td width="85%">

<p>./gnetlist stack_1.sch</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>This is not very useful since it does not direct gnetlist
to do<br>
anything.</p>
<!-- INDENTATION -->
<p>Specify a guile procedure name to get gnetlist to output
a netlist:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="7%"></td>
<td width="7%">
</td>
<td width="85%">

<p>./gnetlist -g geda stack_1.sch</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The netlist output will be written to a file called
&quot;output.net&quot;<br>
in the current working directory.</p>
<!-- INDENTATION -->
<p>You can specify the output filename by using the -o
flag:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="7%"></td>
<td width="7%">
</td>
<td width="85%">

<p>./gnetlist -g geda stack_1.sch -o stack.netlist</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>The spice backend is run against the schematic(s) if you
specify<br>
-g spice and the tango backend is run if you specify -g
tango.</p>
<!-- INDENTATION -->
<p>To interact with the guile interpreter:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="7%"></td>
<td width="7%">
</td>
<td width="85%">

<p>./gnetlist -i stack_1.sch</p>
</td>
</table>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>You will get a prompt where you can execute guile
procedures.</p>
<!-- INDENTATION -->
<p>To get a more verbose feedback as to what gnetlist is
doing run<br>
with the -v flag:</p>
</td>
</table>
<!-- TABS -->
<table width="100%" border=0 rules="none" frame="void"
       cols="3" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="7%"></td>
<td width="7%">
</td>
<td width="85%">

<p>./gnetlist -v -g geda stack_1.sch</p>
</td>
</table>
<a name="ENVIRONMENT"></a>
<h2>ENVIRONMENT</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>No environment variables are used.</p>
</td>
</table>
<a name="AUTHOR"></a>
<h2>AUTHOR</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>Ales Hvezda and many others</p>
</td>
</table>
<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p><b>gschem</b>(1), <b>gsymcheck</b>(1)</p>
</td>
</table>
<a name="COPYRIGHT"></a>
<h2>COPYRIGHT</h2>
<!-- INDENTATION -->
<table width="100%" border=0 rules="none" frame="void"
       cols="2" cellspacing="0" cellpadding="0">
<tr valign="top" align="left">
<td width="10%"></td>
<td width="89%">
<p>Copyright &copy; 1999-2004 Ales Hvezda</p>
<!-- INDENTATION -->
<p>This document can be freely redistributed according to
the terms of the GNU General Public License version 2.0</p>
</td>
</table>
<hr>
</body>
</html>