Quick startup
magic -T <technology name>
Technology drc is located in ~cad/lib/magic/sys/<technology name>.tech27
Default ":load" and ":cif read" cell directory: ~cad/lib/magic/<technology
name>
Default ~cad is set to the Unix environmental "setenv CAD_HOME /dtool/MAGIC/MAGIC_TOOL"
| magic -T scmos-sub | Using technology "scmos", version 8.2.8.
MOSIS Scalable CMOS Technology for HP CMOS26G and CMOS14B processes. :cif istyle
:cif ostyle
|
| magic -T SCN3M.50 | Download the current technology files and cells from
http://www.isi.edu/~sondeen/magic.html via http://www.mosis.org /Technical /Designsupport /menu-designsupport.html via http://www.mosis.org |
Quick commands
| :path | Display search path of cell libraries |
| :addpath <directory> | Add a new search path in order to do a read or load |
| :cif istyle | Display read in cif technology styles (default lambda=1.0(gen)) |
| :cif istyl lambda=1.0(nwell) | |
| :cif read <file> | Read in Caltech layout file.cif (filetype not needed) |
| :load <file> | Read in Magic layout file.mag |
| :see no errors | Turn off displaying drc errors |
| :see errors | Turn on displaying drc errors |
| :drc off | Turn drc checker off |
| :box | Display the selected object height and length |
| :source <file> | Read in magic commands (colon not needed in source file) |
Quick macros (inside graphic window)
| :macro <char> | Macro help on <char> |
| z | Zoom in |
| Z | Zoom out |
| v | view the whole design |
| g | Turn the grid on/off |
| s | Select and object or cell |
| b | Display the box size of the selected cell |
| Ctrl-x | Go into the design |
File Commands
| addpath [path] | append to current search path |
| edit | use selected cell as new edit cell |
| flush [cellname] | flush changes to cellname (edit cell default) |
| load [cellname] | load a cell into a window using the current search path (addpath, path) |
| logcommands [file [update]] | log all commands into a file (G) |
| path [searchpath] | set or print cell search path |
| plot type [args] | hardcopy plotting; type "plot help" for information on types and args |
| quit | exit magic (G) |
| save [filename] | save edit cell on disk |
| writeall [force] | write out all modified cells to disk |
Simple Editing
| copy [dir [amount]] to x y | what used to be at box lower-left will be copied at cursor location (copy will appear amount units in dir from original); second form will copy to location x y |
| corner d1 d2 [layers] | make L-shaped wires inside box, filling first in direction d1, then in d2 |
| delete | delete everything in selection |
| fill dir [layers] | fill layers from one side of box to other |
| get or getcell cell [child refPointC] [parent refPointP] | get cell as a subcell of the edit cell, so that refPointC (or lower left) of cell is at refPointP refPointC (or lower left) of cell is at refPointP (or box lower-left); refPoints are either labels or a pair of coordinates (e.g, 100 200) |
| label str [pos [layer]] | place a label |
| move [dir [amount]] to x y | move box and selection, either by amount in dir, or pick up by box lower-left and put down at cursor position; second form will put box at location x y |
| paint layers | paint mask information |
| plow option [args] | stretching and compaction; type ":plow help" for information on options |
| select [option] | change selection; type ":select help" for information on options |
| tool [name|info] | change layout tool or print info about what buttons mean for current tool |
| redo [count] | redo commands (G) |
| undo [count] | undo commands (G) |
| wire option [args] | wiring-style user interface; type":wire help" for information on options |
Advanced Editing
| array xsize ysize OR array xlo xhi ylo yhi | array everything in selection |
| box [dir [amount]] | move box dist units in direction or (with no arguments) show box size |
| clockwise [deg] | rotate selection and box clockwise |
| dump cell [child refPointC] [parent refPointP] | copy contents of cell into edit cell, so that refPointC (or lower left) of cell is at refPointP (or box lower-left); refPoints are either labels or a pair of coordinates (e.g, 100 200) |
| erase [layers] | erase mask information |
| expand [toggle] | expand everything under box, or toggle expanded/unexpanded cells in selection |
| garoute [cmd [args]] | gate-array router |
| iroute [cmd [args]] | do interactive point to point route |
| route | route the current cell |
| see [no] layers|allSame | change what's displayed in the window |
| sideways | flip selection and box sideways |
| straighten direction | straighten jogs by pulling in direction |
| stretch [dir [amount]] | stretch box and selection |
| unexpand | unexpand subcells under box |
| upsidedown | flip selection and box upside down |
Change the View
| center | center window on the cursor (G) |
| closewindow | close a window (G) |
| findbox [zoom] | center the window on the box and optionally zoom in |
| grid [xSpacing [ySpacing [xOrigin yOrigin]]] | toggle grid on/off (and set parameters) (G) |
| grow | blow a window up to full-screen size or back again (G) |
| openwindow [cell] | open a new window (G) |
| over | move a window over (on top of) the rest (G) |
| redraw | redraw the display (G) |
| reset | reset the display (G) |
| scroll dir [amount] | scroll the window (G) |
| snap [on|off] | cause box to snap to window's grid when moved by cursor (G) |
| specialopen [coords] type [args] | open a special window (G) |
| underneath | move a window underneath the rest (G) |
| updatedisplay | force the display to be updated (G) |
| view | zoom window out so everything is visable (G) |
| windowscrollbars [on|off] | toggle scroll bars for new windows (G) |
| windowpositions [file] | print out window positions (G) |
| zoom amount | zoom window by amount (G) |
Extraction & DRC
| drc option | design rule checker; type ":drc help" for information on options |
| ext option or extract option | circuit extractor; type ":extract help" for information on options |
| extresist [args] | patch .ext file with resistance info |
| rsim [options] filename | run Rsim under Magic |
| simcmd cmd | send a command to Rsim, applying it to selected paint |
| startrsim [options] file | start Rsim and return to Magic |
Help
| feedback option | find out about problems; type ":feedback help" for information on options |
| help [pattern] | print out synopses for all commands valid in the current window (or just those containing pattern) (G) |
| layers | print names of layers for this technology |
| what | print out information about what's selected |
Other Commands
| calma option | Calma GDS-II stream file processor; type ":calma help" for information on options |
| channels | see channels (feedback) without doing routing |
| cif option | CIF processor; type ":cif help" for information on options |
| echo [-n] [strings] | print text on the terminal (G) |
| getnode option | get node names of all selected paint |
| identify use_id | set the use identifier of the selected cell |
| macro [char [string]] | define or print a macro called char (G) |
| pushbutton button act | push a mouse button (G) |
| send type command | send a command to a certain window type (G) |
| setpoint [x y [WID]] | force to cursor (point) to x,y in window WID (G) |
| sleep seconds | sleep for a number of seconds (G) |
| source filename | read in commands from file (G) |
| version | print out version info (G) |