1 /*
2 * DBWCommands.c --
3 *
4 * This file contains the dispatch tables for layout commands.
5 *
6 * *********************************************************************
7 * * Copyright (C) 1985, 1990 Regents of the University of California. *
8 * * Permission to use, copy, modify, and distribute this *
9 * * software and its documentation for any purpose and without *
10 * * fee is hereby granted, provided that the above copyright *
11 * * notice appear in all copies. The University of California *
12 * * makes no representations about the suitability of this *
13 * * software for any purpose. It is provided "as is" without *
14 * * express or implied warranty. Export of this software outside *
15 * * of the United States of America may require an export license. *
16 * *********************************************************************
17 */
18
19 #ifndef lint
20 static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/dbwind/DBWcommands.c,v 1.3 2010/06/24 12:37:16 tim Exp $";
21 #endif /* not lint */
22
23 #include <stdio.h>
24
25 #include "utils/magic.h"
26 #include "utils/geometry.h"
27 #include "tiles/tile.h"
28 #include "utils/hash.h"
29 #include "database/database.h"
30 #include "windows/windows.h"
31 #include "dbwind/dbwind.h"
32 #include "utils/main.h"
33 #include "commands/commands.h"
34 #include "textio/textio.h"
35 #include "textio/txcommands.h"
36
37 /*
38 * Standard DBWind command set
39 */
40
41 extern void CmdAddPath(), CmdAntennaCheck(), CmdArray();
42 extern void CmdBox(), CmdCellname(), CmdClockwise();
43 extern void CmdContact(), CmdCopy(), CmdCorner();
44 extern void CmdCrash(), CmdCrosshair();
45 extern void CmdDelete(), CmdDown(), CmdDrc(), CmdDrop(), CmdDump();
46 extern void CmdEdit(), CmdElement(), CmdErase(), CmdExpand(), CmdExtract();
47 extern void CmdFeedback(), CmdFill(), CmdFindBox(), CmdFindLabel(), CmdFlush();
48 extern void CmdGetcell(), CmdGrid(), CmdIdentify();
49 extern void CmdLabel(), CmdLoad();
50 extern void CmdMove(), CmdNetlist(), CmdOrient(), CmdPaint(), CmdPath();
51 extern void CmdPlow(), CmdPolygon(), CmdPort(), CmdProperty();
52 extern void CmdRandom(), CmdSave(), CmdScaleGrid(), CmdSee();
53 extern void CmdSelect(), CmdSetLabel(), CmdSideways();
54 extern void CmdShell(), CmdSnap();
55 extern void CmdStretch(), CmdStraighten();
56 extern void CmdTech(), CmdTool(), CmdUnexpand();
57 extern void CmdUpsidedown(), CmdWhat(), CmdWire(), CmdWriteall();
58 extern void CmdGoto(), CmdFlatten(), CmdXload(), CmdXor();
59
60 /*
61 * Nonmanhattan geometry extensions
62 */
63
64 extern void CmdSplit();
65 extern void CmdSplitErase();
66
67 /*
68 * Wizard commands
69 */
70
71 extern void CmdCoord();
72 extern void CmdExtractTest();
73 extern void CmdExtResis();
74 extern void CmdPsearch();
75 extern void CmdPlowTest();
76 extern void CmdShowtech();
77 extern void CmdTilestats();
78 extern void CmdTsearch();
79 extern void CmdWatch();
80
81 /*
82 * CIF and GDS commands
83 */
84
85 #ifdef CIF_MODULE
86 extern void CmdCif();
87 #endif
88 #ifdef CALMA_MODULE
89 extern void CmdCalma();
90 #endif
91
92 /*
93 * Plot module commands
94 */
95 #ifdef PLOT_MODULE
96 extern void CmdPlot();
97 #endif
98 #ifdef PLOT_AUTO
99 extern void CmdAutoPlot();
100 #endif
101
102 /*
103 * SIM module commands
104 */
105 #ifndef NO_SIM_MODULE
106 extern void CmdGetnode();
107 #ifdef RSIM_MODULE
108 extern void CmdRsim(), CmdSimCmd(), CmdStartRsim();
109 #endif
110 #endif
111
112 /*
113 * Router module commands
114 */
115
116 #ifdef ROUTE_MODULE
117 extern void CmdGARouterTest(), CmdGRouterTest(), CmdIRouterTest();
118 extern void CmdMZRouterTest(), CmdSeeFlags();
119 extern void CmdChannel(), CmdGaRoute(), CmdIRoute(), CmdRoute();
120 #endif
121 #ifdef ROUTE_AUTO
122 extern void CmdAutoRoute();
123 #endif
124
125 /*
126 * LEF module commands
127 */
128 #ifdef LEF_MODULE
129 extern void CmdLef();
130 #endif
131 #ifdef LEF_AUTO
132 extern void CmdAutoLef();
133 #endif
134
135 /*
136 * Wrapper commands for ext2spice and ext2sim
137 */
138
139 #ifdef MAGIC_WRAPPER
140 #ifdef EXT2SIM_AUTO
141 extern void CmdAutoExtToSim();
142 #else
143 extern void CmdExtToSim();
144 #endif
145 #ifdef EXT2SPICE_AUTO
146 extern void CmdAutoExtToSpice();
147 #else
148 extern void CmdExtToSpice();
149 #endif
150 #endif
151
152 /*
153 * Readline extension history command
154 */
155
156 #ifdef USE_READLINE
157 extern void CmdHistory();
158 #endif
159
160 /*
161 * Commands only in the Lawrence Livermore Version
162 */
163
164 #ifdef LLNL
165 extern void CmdMakeSW();
166 extern void CmdSgraph();
167 #endif /* LLNL */
168
169 /*
170 * --------------------------------------------------------------
171 * DBWInitCommands --
172 *
173 * Add commands to the dbw command-line interface. As of
174 * Magic 7.2.41, this has been changed from a statically-pre-
175 * allocated array to a dynamically allocated array, allowing
176 * individual modules to add their commands outside of the
177 * scope of the "commands" subdirectory, and inside of their
178 * own initialization functions. The bulk of the dbwind
179 * interface functions is still in this file, however, with
180 * only a few functions moved out to improve modularization
181 * of the source code. It would be preferable to move every-
182 * thing out and remove the "commands" subdirectory altogether,
183 * but this is unlikely to happen.
184 *
185 * Results:
186 * None.
187 *
188 * SideEffects:
189 * DBWind commands are registered with the command interpreter.
190 *
191 * --------------------------------------------------------------
192 */
193
194 void
DBWInitCommands()195 DBWInitCommands()
196 {
197 /* Add wizard commands */
198 WindAddCommand(DBWclientID,
199 "*coord show coordinates of various things",
200 CmdCoord, FALSE);
201 WindAddCommand(DBWclientID,
202 "*extract [args] debug the circuit extractor",
203 CmdExtractTest, FALSE);
204 WindAddCommand(DBWclientID,
205 "*plow cmd [args] debug plowing",
206 CmdPlowTest, FALSE);
207 WindAddCommand(DBWclientID,
208 "*psearch plane count invoke point search over box area",
209 CmdPsearch, FALSE);
210 WindAddCommand(DBWclientID,
211 "*showtech [file] print internal technology tables",
212 CmdShowtech, FALSE);
213 WindAddCommand(DBWclientID,
214 "*tilestats [file] print statistics on tile utilization",
215 CmdTilestats, FALSE);
216 WindAddCommand(DBWclientID,
217 "*tsearch plane count invoke area search over box area",
218 CmdTsearch, FALSE);
219 WindAddCommand(DBWclientID,
220 "*watch [plane] enable verbose tile plane redisplay",
221 CmdWatch, FALSE);
222 WindAddCommand(DBWclientID,
223 "addpath [path] append to current search path",
224 CmdAddPath, FALSE);
225 WindAddCommand(DBWclientID,
226 "antennacheck [path] check for antenna violations",
227 CmdAntennaCheck, FALSE);
228 WindAddCommand(DBWclientID,
229 "array xsize ysize OR\n"
230 "array xlo xhi ylo yhi\n"
231 " array everything in selection",
232 CmdArray, FALSE);
233 WindAddCommand(DBWclientID,
234 "box [dir [amount]] move box dist units in direction or (with\n"
235 " no arguments) show box size",
236 CmdBox, FALSE);
237 WindAddCommand(DBWclientID,
238 "cellname [list] children|parents|exists|self [name] OR\n"
239 "cellname [list] allcells|topcells\n"
240 " list cells by relationship to cell \"name\", or\n"
241 " the current selection if no name given. \"list\"\n"
242 " returns result as a list. \"exists + name\" returns\n"
243 " true or false (also see command instance)",
244 CmdCellname, FALSE);
245 WindAddCommand(DBWclientID,
246 "clockwise [deg] rotate selection and box clockwise",
247 CmdClockwise, FALSE);
248 WindAddCommand(DBWclientID,
249 "contact type paint contact type on the intersection of its\n"
250 " residues",
251 CmdContact, FALSE);
252 WindAddCommand(DBWclientID,
253 "copy [dir [amount]] OR\n"
254 "copy to x y copy selection: what used to be at box\n"
255 " lower-left will be copied at cursor location (or,\n"
256 " copy will appear amount units in dir from original);\n"
257 " second form will copy to location x y",
258 CmdCopy, FALSE);
259 WindAddCommand(DBWclientID,
260 "corner d1 d2 [layers] make L-shaped wires inside box, filling\n"
261 " first in direction d1, then in d2",
262 CmdCorner, FALSE);
263 WindAddCommand(DBWclientID,
264 "crash save|recover [file]\n"
265 " recover the crash file \"file\", or the first\n"
266 " crash file discovered.",
267 CmdCrash, FALSE);
268 WindAddCommand(DBWclientID,
269 "crosshair x y | off enable and move or disable the screen crosshair",
270 CmdCrosshair, FALSE);
271 WindAddCommand(DBWclientID,
272 "delete delete everything in selection",
273 CmdDelete, FALSE);
274 WindAddCommand(DBWclientID,
275 "down load selected cell into a window",
276 CmdDown, FALSE);
277 WindAddCommand(DBWclientID,
278 "drc option design rule checker; type \"drc help\"\n"
279 " for information on options",
280 CmdDrc, FALSE);
281 WindAddCommand(DBWclientID,
282 "drop layers copy layers from edit cell into\n"
283 " subcells containing selected paint",
284 CmdDrop, FALSE);
285 WindAddCommand(DBWclientID,
286 "dump cell [child refPointC] [parent refPointP]\n\
287 copy contents of cell into edit cell, so that\n\
288 refPointC (or lower left) of cell is at refPointP\n\
289 (or box lower-left); refPoints are either labels\n\
290 or a pair of coordinates (e.g, 100 200)",
291 CmdDump, FALSE);
292 WindAddCommand(DBWclientID,
293 "edit use selected cell as new edit cell",
294 CmdEdit, FALSE);
295 WindAddCommand(DBWclientID,
296 "element option add a generic drawing element to the layout",
297 CmdElement, FALSE);
298 WindAddCommand(DBWclientID,
299 "erase [layers]|cursor erase mask information",
300 CmdErase, FALSE);
301 WindAddCommand(DBWclientID,
302 "expand [toggle] expand everything under box, or toggle\n\
303 expanded/unexpanded cells in selection",
304 CmdExpand, FALSE);
305 WindAddCommand(DBWclientID,
306 "ext option OR",
307 CmdExtract, FALSE); /* For "ext" abbreviation */
308 WindAddCommand(DBWclientID,
309 "extract option circuit extractor; type \"extract help\"\n\
310 for information on options",
311 CmdExtract, FALSE); /* For "extract" */
312 WindAddCommand(DBWclientID,
313 "extresist [args] patch .ext file with resistance info",
314 CmdExtResis, FALSE);
315 WindAddCommand(DBWclientID,
316 "feedback option find out about problems; "
317 "type \"feedback help\"\n\t\t\tfor information on options",
318 CmdFeedback, FALSE);
319 WindAddCommand(DBWclientID,
320 "fill dir [layers] fill layers from one side of box to other",
321 CmdFill, FALSE);
322 WindAddCommand(DBWclientID,
323 "findbox [zoom] center the window on the box and optionally zoom in",
324 CmdFindBox, FALSE);
325 WindAddCommand(DBWclientID,
326 "findlabel lab set the box to the location of this label",
327 CmdFindLabel, FALSE);
328 WindAddCommand(DBWclientID,
329 "flatten destname flatten edit cell into cell destname",
330 CmdFlatten, FALSE);
331 WindAddCommand(DBWclientID,
332 "flush [cellname] flush changes to cellname (edit cell default)",
333 CmdFlush, FALSE);
334 WindAddCommand(DBWclientID,
335 "get OR",
336 CmdGetcell, FALSE);
337 WindAddCommand(DBWclientID,
338 "getcell cell [child refPointC] [parent refPointP]\n\
339 get cell as a subcell of the edit cell, so that\n\
340 refPointC (or lower left) of cell is at refPointP\n\
341 (or box lower-left); refPoints are either labels\n\
342 or a pair of coordinates (e.g, 100 200)",
343 CmdGetcell, FALSE);
344 WindAddCommand(DBWclientID,
345 "goto nodename goto the node named nodename",
346 CmdGoto, FALSE);
347 WindAddCommand(DBWclientID,
348 "grid [xSpacing [ySpacing [xOrigin yOrigin]]]\n\
349 toggle grid on/off (and set parameters)",
350 CmdGrid, FALSE);
351 WindAddCommand(DBWclientID,
352 "id OR",
353 CmdIdentify, FALSE);
354 WindAddCommand(DBWclientID,
355 "identify use_id set the use identifier of the selected cell",
356 CmdIdentify, FALSE);
357 WindAddCommand(DBWclientID,
358 "instance [list] children|parents|exists|self [name] OR\n"
359 "instance [list] allcells|topcells\n\
360 List cells by relationship to cell \"name\", or\n\
361 the current selection if no name given. \"list\"\n\
362 returns result as a list. \"exists + name\" returns\n\
363 true or false (also see command cellname)",
364 CmdCellname, FALSE);
365 WindAddCommand(DBWclientID,
366 "label str [pos [layer]]\n\
367 place a label",
368 CmdLabel, FALSE);
369 WindAddCommand(DBWclientID,
370 "load [cellname] load a cell into a window",
371 CmdLoad, FALSE);
372 WindAddCommand(DBWclientID,
373 "move [dir [amount]] OR\n"
374 "move to x y move box and selection, either by amount\n\
375 in dir, or pick up by box lower-left and put\n\
376 down at cursor position; second form will\n\
377 put box at location x y",
378 CmdMove, FALSE);
379 /* Added by NP 10/28/2004 */
380 WindAddCommand(DBWclientID,
381 "netlist option netlist operation; type \"netlist help\"\n\
382 for information on options",
383 CmdNetlist, FALSE);
384
385 WindAddCommand(DBWclientID,
386 "orient [orientation] orient selection and box",
387 CmdOrient, FALSE);
388 WindAddCommand(DBWclientID,
389 "paint layers|cursor paint mask information",
390 CmdPaint, FALSE);
391 WindAddCommand(DBWclientID,
392 "path [search|cell|sys] [[+]path]\n\
393 set or print search paths",
394 CmdPath, FALSE);
395 WindAddCommand(DBWclientID,
396 "plow option [args] stretching and compaction; type \"plow help\"\n\
397 for information on options",
398 CmdPlow, FALSE);
399 WindAddCommand(DBWclientID,
400 "port [index] [direction...]\n\
401 declare a label to be a subcircuit port",
402 CmdPort, FALSE);
403 WindAddCommand(DBWclientID,
404 "polygon type x1 y1 x2 y2 [x3 y3. . .] xn yn\n\
405 draw a polygon from a list of point pairs",
406 CmdPolygon, FALSE);
407 WindAddCommand(DBWclientID,
408 "property [name] [value]\n\
409 add a property (string) to the edit cell",
410 CmdProperty, FALSE);
411 WindAddCommand(DBWclientID,
412 "rotate [+/-][deg] rotate selection and box (counter)clockwise",
413 CmdClockwise, FALSE); /* "rotate" is alias for "clockwise" */
414 WindAddCommand(DBWclientID,
415 "random [seed [value]] generate random number or set random seed",
416 CmdRandom, FALSE);
417 WindAddCommand(DBWclientID,
418 "save [filename] save edit cell on disk",
419 CmdSave, FALSE);
420 WindAddCommand(DBWclientID,
421 "scalegrid a b scale magic units vs. lambda by a / b",
422 CmdScaleGrid, FALSE);
423 WindAddCommand(DBWclientID,
424 "see [no] layers|allSame change what's displayed in the window",
425 CmdSee, FALSE);
426 WindAddCommand(DBWclientID,
427 "select [option] change selection; type \"select help\"\n\
428 for information on options",
429 CmdSelect, FALSE);
430 WindAddCommand(DBWclientID,
431 "setlabel [option [value]] place a label",
432 CmdSetLabel, FALSE);
433 WindAddCommand(DBWclientID,
434 "shell [command] execute a command in a subshell",
435 CmdShell, FALSE);
436 WindAddCommand(DBWclientID,
437 "sideways flip selection and box sideways",
438 CmdSideways, FALSE);
439 WindAddCommand(DBWclientID,
440 "snap [internal|lambda|user]\n\
441 cause box to snap to the selected grid when moved\n\
442 by the cursor",
443 CmdSnap, FALSE);
444 WindAddCommand(DBWclientID,
445 "straighten direction straighten jogs by pulling in direction",
446 CmdStraighten, FALSE);
447 WindAddCommand(DBWclientID,
448 "stretch [dir [amount]] stretch box and selection",
449 CmdStretch, FALSE);
450 WindAddCommand(DBWclientID,
451 "tech option technology handling; type \"tech help\"\n\
452 for information on options",
453 CmdTech, FALSE);
454 #ifndef MAGIC_WRAPPER
455 WindAddCommand(DBWclientID,
456 "tool [name|info] change layout tool or print info about what\n\
457 buttons mean for current tool",
458 CmdTool, FALSE);
459 #endif
460 WindAddCommand(DBWclientID,
461 "unexpand unexpand subcells under box",
462 CmdUnexpand, FALSE);
463 WindAddCommand(DBWclientID,
464 "upsidedown flip selection and box upside down",
465 CmdUpsidedown, FALSE);
466 WindAddCommand(DBWclientID,
467 "what print out information about what's selected",
468 CmdWhat, FALSE);
469 WindAddCommand(DBWclientID,
470 "wire option [args] wiring-style user interface; type\n\
471 \"wire help\" for information on options",
472 CmdWire, FALSE);
473 WindAddCommand(DBWclientID,
474 "writeall [force] write out all modified cells to disk",
475 CmdWriteall, FALSE);
476 WindAddCommand(DBWclientID,
477 "xload [cellname] load a cell into a window unexpanded",
478 CmdXload, FALSE);
479 WindAddCommand(DBWclientID,
480 "xor destname flatten current top level cell into destname\n\
481 and xor with existing contents",
482 CmdXor, FALSE);
483
484 #ifdef CIF_MODULE
485 /* Add the CIF extension commands */
486 WindAddCommand(DBWclientID,
487 "cif option CIF processor; type \"cif help\"\n\
488 for information on options",
489 CmdCif, FALSE);
490 #endif
491
492 #ifdef CALMA_MODULE
493 /* Add the GDS extension commands */
494 WindAddCommand(DBWclientID,
495 "calma option Calma GDS-II stream file processor; type\n\
496 \"calma help\" for information on options",
497 CmdCalma, FALSE); /* "gds" is an alias for "calma" */
498 WindAddCommand(DBWclientID,
499 "gds option alias for the \"calma\" command",
500 CmdCalma, FALSE);
501 #endif
502
503
504 /* Add the NonManhattan Geometry extension commands */
505 WindAddCommand(DBWclientID,
506 "splitpaint dir layer [layer2]\n\
507 split box diagonally with layer in corner dir and\n\
508 layer2 in the opposite corner (default layer2 is space)",
509 CmdSplit, FALSE);
510 WindAddCommand(DBWclientID,
511 "spliterase dir [layer] erase layers from diagonal corner dir of the\n\
512 edit box",
513 CmdSplitErase, FALSE);
514
515 #ifdef MAGIC_WRAPPER
516 /* Add the Tcl commands for exttospice, exttosim, and aliases ext2spice, ext2sim */
517 #ifdef EXT2SIM_AUTO
518 WindAddCommand(DBWclientID,
519 "exttosim [args] convert extracted file(s) to a sim format file;"
520 " type\n\t\t\t\"exttosim help\" for information on options",
521 CmdAutoExtToSim, FALSE);
522 WindAddCommand(DBWclientID,
523 "ext2sim [args] convert extracted file(s) to a sim format file;"
524 " type\n\t\t\t\"ext2sim help\" for information on options",
525 CmdAutoExtToSim, FALSE);
526 #else
527 WindAddCommand(DBWclientID,
528 "exttosim [args] convert extracted file(s) to a sim format file;"
529 " type\n\t\t\t\"exttosim help\" for information on options",
530 CmdExtToSim, FALSE);
531 WindAddCommand(DBWclientID,
532 "ext2sim [args] convert extracted file(s) to a sim format file;"
533 " type\n\t\t\t\"ext2sim help\" for information on options",
534 CmdExtToSim, FALSE);
535 #endif /* EXT2SIM_AUTO */
536 #ifdef EXT2SPICE_AUTO
537 WindAddCommand(DBWclientID,
538 "exttospice [args] convert extracted file(s) to a SPICE format file;"
539 " type\n\t\t\t\"exttospice help\" for information on options",
540 CmdAutoExtToSpice, FALSE);
541 WindAddCommand(DBWclientID,
542 "ext2spice [args] convert extracted file(s) to a SPICE format file;"
543 " type\n\t\t\t\"ext2spice help\" for information on options",
544 CmdAutoExtToSpice, FALSE);
545 #else
546 WindAddCommand(DBWclientID,
547 "exttospice [args] convert extracted file(s) to a SPICE format file;"
548 " type\n\t\t\t\"exttospice help\" for information on options",
549 CmdExtToSpice, FALSE);
550 WindAddCommand(DBWclientID,
551 "ext2spice [args] convert extracted file(s) to a SPICE format file;"
552 " type\n\t\t\t\"ext2spice help\" for information on options",
553 CmdExtToSpice, FALSE);
554 #endif /* EXT2SPICE_AUTO */
555 #endif /* MAGIC_WRAPPER */
556
557
558 #ifdef USE_READLINE
559 /* Add the Readline extension history command */
560 WindAddCommand(DBWclientID,
561 "history print out the command history list",
562 CmdHistory, FALSE);
563 #endif
564
565 #ifdef LLNL
566 /* Add the Lawrence Livermore extensions */
567 WindAddCommand(DBWclientID,
568 "makesw options generate scan window for LP apparatus",
569 CmdMakeSW, FALSE);
570 WindAddCommand(DBWclientID,
571 "sgraph [options] manipulate a cell's stretch graphs",
572 CmdSgraph, FALSE);
573 #endif
574
575 #ifndef NO_SIM_MODULE
576 /* Add the IRSIM commands */
577 WindAddCommand(DBWclientID,
578 "getnode option get node names of all selected paint",
579 CmdGetnode, FALSE);
580
581 #ifdef RSIM_MODULE
582 WindAddCommand(DBWclientID,
583 "rsim [options] filename run Rsim under Magic",
584 CmdRsim, FALSE);
585 WindAddCommand(DBWclientID,
586 "simcmd cmd send a command to Rsim, applying it to selected paint",
587 CmdSimCmd, FALSE);
588 WindAddCommand(DBWclientID,
589 "startrsim [options] file start Rsim and return to Magic",
590 CmdStartRsim, FALSE);
591 #endif
592 #endif
593
594 #ifdef PLOT_MODULE
595 /* Add the plot extensions */
596 WindAddCommand(DBWclientID,
597 "plot type [args] hardcopy plotting; type \"plot help\"\n\
598 for information on types and args",
599 CmdPlot, FALSE);
600
601 #endif
602 #ifdef PLOT_AUTO
603 /* Placeholder for plot extensions */
604 WindAddCommand(DBWclientID,
605 "plot type [args] hardcopy plotting; type \"plot help\"\n\
606 for information on types and args",
607 CmdAutoPlot, FALSE);
608 #endif
609
610 #ifdef LEF_MODULE
611 /* Add the LEF/DEF extensions */
612 WindAddCommand(DBWclientID,
613 "lef [options] LEF-format input/output; type \"lef help\"\n\
614 for information on options",
615 CmdLef, FALSE);
616 WindAddCommand(DBWclientID,
617 "def [options] DEF-format input; type \"def help\"\n\
618 for information on options",
619 CmdLef, FALSE);
620 #endif
621 #ifdef LEF_AUTO
622 /* Placeholder for LEF/DEF extensions */
623 WindAddCommand(DBWclientID,
624 "lef [options] LEF-format input/output; type \"lef help\"\n\
625 for information on options",
626 CmdAutoLef, FALSE);
627 WindAddCommand(DBWclientID,
628 "def [options] DEF-format input; type \"def help\"\n\
629 for information on options",
630 CmdAutoLef, FALSE);
631 #endif
632
633 #ifdef ROUTE_MODULE
634 /* Add the router extensions */
635 WindAddCommand(DBWclientID,
636 "*garoute [cmd [args]] debug the gate-array router",
637 CmdGARouterTest, FALSE);
638 WindAddCommand(DBWclientID,
639 "*groute [cmd [args]] debug the global router",
640 CmdGRouterTest, FALSE);
641 WindAddCommand(DBWclientID,
642 "*iroute [cmd [args]] debug the interactive router",
643 CmdIRouterTest, FALSE);
644 WindAddCommand(DBWclientID,
645 "*mzroute [cmd [args]] debug the maze router",
646 CmdMZRouterTest, FALSE);
647 WindAddCommand(DBWclientID,
648 "*seeflags [flag] display channel flags over channel",
649 CmdSeeFlags, FALSE);
650 WindAddCommand(DBWclientID,
651 "channels see channels (feedback) without doing routing",
652 CmdChannel, FALSE);
653 WindAddCommand(DBWclientID,
654 "garoute [cmd [args]] gate-array router",
655 CmdGaRoute, FALSE);
656 WindAddCommand(DBWclientID,
657 "iroute [cmd [args]] do interactive point to point route",
658 CmdIRoute, FALSE);
659 WindAddCommand(DBWclientID,
660 "route route the current cell",
661 CmdRoute, FALSE);
662 #endif
663 #ifdef ROUTE_AUTO
664 /* Placeholder for router extensions */
665 WindAddCommand(DBWclientID,
666 "*garoute [cmd [args]] debug the gate-array router",
667 CmdAutoRoute, FALSE);
668 WindAddCommand(DBWclientID,
669 "*groute [cmd [args]] debug the global router",
670 CmdAutoRoute, FALSE);
671 WindAddCommand(DBWclientID,
672 "*iroute [cmd [args]] debug the interactive router",
673 CmdAutoRoute, FALSE);
674 WindAddCommand(DBWclientID,
675 "*mzroute [cmd [args]] debug the maze router",
676 CmdAutoRoute, FALSE);
677 WindAddCommand(DBWclientID,
678 "*seeflags [flag] display channel flags over channel",
679 CmdAutoRoute, FALSE);
680 WindAddCommand(DBWclientID,
681 "channels see channels (feedback) without doing routing",
682 CmdAutoRoute, FALSE);
683 WindAddCommand(DBWclientID,
684 "garoute [cmd [args]] gate-array router",
685 CmdAutoRoute, FALSE);
686 WindAddCommand(DBWclientID,
687 "iroute [cmd [args]] do interactive point to point route",
688 CmdAutoRoute, FALSE);
689 WindAddCommand(DBWclientID,
690 "route route the current cell",
691 CmdAutoRoute, FALSE);
692 #endif
693 }
694