Magic

Magic is invoked with the command:

magic [file without .mag extension]

Commands - General Information

Magic uses three sorts of commands:

Mouse Buttons

Magic uses a three button mouse. The buttons are interpreted in a way that depends on the current ``tool''. The shape of the cursor indicates which of the four tools is being used currently. Pressing the Space bar toggles between the 4 tools available. The tools are:

Long Commands

These commands work if you are pointing to the interior of a layout window. Commands are invoked by typing a colon (``:'') or semi-colon(``;''), followed by a line containing a command name and zero or more parameters. After you type the colon or semicolon the ``>'' prompt will be replaced by a ``:'' prompt. This indicates that magic is waiting for a long command. A ``]'' prompt indicates that magic is performing design-rule checking.

Global Commands

Command Description
center center window on the cursor
closewindow close a window
echo [-n] [strings] print text on the terminal
grow blow a window up to full-screen size or back again
help [pattern] print out synopses for all commands valid
in the current window (or just those
containing pattern)
logcommands [file [update]] log all commands into a file
macro [char [string]] define or print a macro called char
openwindow [cell] open a new window
over move a window over (on top of) the rest
pushbutton button act push a mouse button
redo [count] redo commands
redraw redraw the display
reset reset the display
scroll dir [amount] scroll the window
send type command send a command to a certain window type
setpoint [x y [WID]] force to cursor (point) to x,y in window WID
sleep seconds sleep for a number of seconds
source filename read in commands from file
specialopen [coords] type [args] open a special window
quit exit magic
underneath move a window underneath the rest
undo [count] undo commands
updatedisplay force the display to be updated
view zoom window out so everything is visable
windowscrollbars [on|off] toggle scroll bars for new windows
windowpositions [file] print out window positions
zoom amount zoom window by amount

Layout Commands

Command Description
addpath [path] append to current search path
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
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
clockwise [deg] rotate selection and box clockwise
copy [dir [amount]] copy selection: what used to be at box
lower-left will be copied at cursor location (or,
copy will appear amount units in dir from original);
copy [dir] to x y 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
drc option design rule checker; type ``:drc help''
for information on options
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)
edit use selected cell as new edit cell
erase [layers] erase mask information
expand [toggle] expand everything under box, or toggle
expanded/unexpanded cells in selection
ext option OR circuit extractor; type ``:extract help''
extract option for information on options
extresist [args] patch .ext file with resistance info
feedback option find out about problems; type ``:feedback help''
for information on options
fill dir [layers] fill layers from one side of box to other
findbox [zoom] center the window on the box and optionally zoom in
flush [cellname] flush changes to cellname (edit cell default)
garoute [cmd [args]] gate-array router
get OR get cell as a subcell of the edit cell, so that
getcell cellName
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)
getnode option get node names of all selected paint
grid [xSpacing
toggle grid on/off (and set parameters)
identify use
iroute [cmd [args]] do interactive point to point route
label str [pos [layer]] place a label
layers print names of layers for this technology
load [cellname] load a cell into a window
move [dir [amount]] move box and selection, either by amount
in dir, or pick up by box lower-left and put
move [dir] to x y down at cursor position; second form will
put box at location x y
paint layers paint mask information
path [searchpath] set or print cell search path
plot type [args] hardcopy plotting; type ``plot help''
for information on types and args
plow option [args] stretching and compaction; type ``:plow help''
for information on options
route route the current cell
rsim [options] filename run Rsim under Magic
save [filename] save edit cell on disk
see [no] layers|allSame change what's displayed in the window
select [option] change selection; type ``:select help''
for information on options
sideways flip selection and box sideways
simcmd cmd send a command to Rsim, applying it to selected paint
snap [ on | off ] cause box to snap to window's grid when moved by cursor
straighten direction straighten jogs by pulling in direction
startrsim [options] file start Rsim and return to Magic
stretch [dir [amount]] stretch box and selection
tool [name|info] change layout tool or print info about what
buttons mean for current tool
unexpand unexpand subcells under box
upsidedown flip selection and box upside down
what print out information about what's selected
wire option [args] wiring-style user interface; type
``:wire help'' for information on options
writeall [force] write out all modified cells to disk

Macros

Macro Command Macro Command
Cntrl D erase Cntrl L redraw
Cntrl N iroute route -dSelection Cntrl R iroute route -dBox
Cntrl X expand toggle Space tool
, center . macro
? help
A select more area B findbox
C select clear E stretch up 1
G grid 2 O closewindow
Q stretch left 1 R stretch right 1
S select more T stretch
U redo W stretch down 1
X unexpand Z zoom 2
a select area b box
c copy d delete
e move up 1 f select cell
g grid o openwindow
q move left 1 r move right 1
s select t move
u undo v view
w move down 1 x expand
y drc why z findbox zoom

Layers

Some of the layer names are: