This is a beginner’s guide to using magic and some basic bind-key mapping that can improve productivity while doing layouts. If you are unaware of Magic as a layout tool, check out the tutorial by our magic power user Bertrand on creating layouts for inverter here,
- Magic tutorial – 01 – Highlight of Magic features
- Magic tutorial – 02 – Using cells, copy, move and wiring
- Magic tutorial – 03 – Creating a cell using parametrized devices
Layers

^^Note: Metal 1 has no (revealed) contact layer, as all devices (p-cells) come with metal1 contact built-in.
Right click on individual layer on layer side-bar to hide/show layers. One can also use commands,
see m1
to make layer m1 visible.
see no m2,m3
to make layer m2 and m3 invisible.
Basic functions
Box mechanism and navigation
Magic uses a box as an area “cursor” for many operations (not to be confused with the pointer location). To create/move the box (or for rectangular box selection), left-click to create bottom left origin of the box and right-click to create top-right end of the box.
z Zoom-to fit the box
Shift+z Zoom-out 2x
Ctrl+z Zoom-in 2x
f Fit full view of entire cell
To pan through the layout, use the MouseWheel to scroll vertically and Shift+MouseWheel to scroll horizontally; also Meta+arrow for small-pan, Shift+Meta+arrow for large-pan.
Select
To select a cell instance, use the bind key “Ctrl-I“ and left-click over area the cell of interest. (Bind key “s” can select unexpanded cells if no other layers are drawn at the point; it’s not specific to just cell instances).

Use forward slash “/” to toggle between expand and unexpand (of currently selected cell instances).

Correction: Click the middle mouse button to drop the selection and finish the event of moving objects instead of hitting the “m” key, as illustrated above.
In expanded view
For example, hover the cursor over a metal layer and,
- Hit “s” key once -> to select largest layer rectangle at pointer (“chunk”).
- Hit “s” key twice -> to select entire same-layer polygon at pointer (“region”).
- Hit “s” key thrice -> to select all layers that are electrically connected (whole “net”).
In unexpanded view
- Hit “s” key to select cell.
- Hit “Ctrl+I” to select cell.
- Hit “a” to select by box area.
Arrows
pan small: Meta+arrow
pan large: Meta+Shift+arrow
With something selected:
move by grid: arrow
move small: Ctrl+arrow
stretch by grid: Shift+arrow
stretch small: Shift+Ctrl+arrow
Note: For layout of the X-FAB low power bandgap challenge, Magic restricts layer editing to metal routing (m1/m2/m3 layers) as well as usage of well connected substrate (subdiff layer).
As always, if you have any suggestions for essential bind-keys we might have missed, feel free to reach out to us using the lower right corner Help widget or by email to helpdesk@efabless.com. Last updated February 02.