You can setup hotkeys in your ".cdsinit" file.
;;---------------- ;; Misc Shortcuts ;;---------------- ; XL Probe using ` hiSetBindKey("Layout" "<Key>`" "lxHiProbe()") ; Toggle Read Only / Make Editable Using Space Bar hiSetBindKey("Schematics" "Space" "if(hiGetCurrentWindow()->cellView->mode != \"r\" then geChangeEditMode(\"r\") else geChangeEditMode(\"a\"))") hiSetBindKey("Layout" "Space" "if(hiGetCurrentWindow()->cellView->mode != \"r\" then geChangeEditMode(\"r\") else geChangeEditMode(\"a\"))") hiSetBindKey("Symbol" "Space" "if(hiGetCurrentWindow()->cellView->mode != \"r\" then geChangeEditMode(\"r\") else geChangeEditMode(\"a\"))") ;;---------------- ;; Layout Shortcuts ;;---------------- ;; Set the selection/visibility of poly and metal layers ;; ;; Possible combination of meta-characters are: ;; Ctrl, Shift, Ctrl+Shift ;; Possible layers are: ;; 0 poly ;; 1 metal 1 ;; 2 metal 2 ;; ... ;; ;; Find the layer ID PO_layer=list("PO" "drawing") M1_layer=list("M1" "drawing") M2_layer=list("M2" "drawing") ;; ... add all of your metal layers ;; pin layers PO_pn_layer=list("PO" "pin") M1_pn_layer=list("M1" "pin") M2_pn_layer=list("M2" "pin") ;; ... add all of your pin layers ;; Via Layers CO_layer=list("CO" "drawing") VIA1_layer=list("VIA1" "drawing") VIA2_layer=list("VIA2" "drawing")
;; MIM layers CTM_layer=list("CTM" "drawing") CBM_layer=list("CBM" "drawing") CTMDMY_layer=list("CTMDMY" "drawing") CTMDMY2_layer=list("CTMDMY" "dummy2") ;; Other layers ; Stupid lvsdmy layer, can't remove from LSW -> unable to turn off! LVSDMY_layer=list("LVSDMY" "dummy1") text_layer=list("text" "drawing") ;; Set entry layer hiSetBindKey("Layout" "Shift<Key>0" "leSetEntryLayer(PO_layer)") hiSetBindKey("Layout" "Shift<Key>1" "leSetEntryLayer(M1_layer)") hiSetBindKey("Layout" "Shift<Key>2" "leSetEntryLayer(M2_layer)") ;; ... add your layers ;; Toggle layer visibility hiSetBindKey("Layout" "Ctrl<Key>0" "leSetLayerVisible(PO_layer not(leIsLayerVisible(PO_layer))) hiRedraw()") hiSetBindKey("Layout" "Ctrl<Key>1" "leSetLayerVisible(M1_layer not(leIsLayerVisible(M1_layer))) hiRedraw()") hiSetBindKey("Layout" "Ctrl<Key>2" "leSetLayerVisible(M2_layer ;; ... add your layers ;; Toggle all layers visibility hiSetBindKey("Layout" "Ctrl<Key>q" "leSetAllLayerVisible(t) hiRedraw()") ; Other option: ;hiSetBindKey("Layout" "Ctrl<Key>q" "leSetAllLayerVisible(t) leSetLayerVisible(LVSDMY_layer nil) hiRedraw()") hiSetBindKey("Layout" "Ctrl Shift<Key>q" "leSetAllLayerVisible(nil) hiRedraw()") ;; Set one layer visible hiSetBindKey("Layout" "Ctrl Shift<Key>0" "leSetEntryLayer(PO_layer) leSetAllLayerVisible(nil) hiRedraw()") hiSetBindKey("Layout" "Ctrl Shift<Key>1" "leSetEntryLayer(M1_layer) leSetAllLayerVisible(nil) hiRedraw()") hiSetBindKey("Layout" "Ctrl Shift<Key>2" "leSetEntryLayer(M2_layer) leSetAllLayerVisible(nil) hiRedraw()") ;; ... add your layers ;; Make pin layers visible hiSetBindKey("Layout" "Ctrl Shift<Key>p" "leSetEntryLayer(M1_pn_layer) leSetEntryLayer(M2_pn_layer) hiRedraw()") ;; Toggle MIM layers visible hiSetBindKey("Layout" "Ctrl Shift<Key>m" "leSetLayerVisible(CBM_layer not(leIsLayerVisible(CTM_layer))) leSetLayerVisible(M8_layer not(leIsLayerVisible(CTM_layer))) leSetLayerVisible(CTMDMY2_layer not(leIsLayerVisible(CTM_layer))) leSetLayerVisible(CTMDMY_layer not(leIsLayerVisible(CTM_layer))) leSetLayerVisible(VIA7_layer not(leIsLayerVisible(CTM_layer))) leSetLayerVisible(CTM_layer not(leIsLayerVisible(CTM_layer))) hiRedraw()") ;; Toggle text layer visibility hiSetBindKey("Layout" "Ctrl Shift<Key>T" "leSetLayerVisible(text_layer not(leIsLayerVisible(text_layer))) hiRedraw()") ;; Connectivity check ;; ;; Supported operations are: ;; Mark net ;; Unmark net ;; hiSetBindKey("Layout" "Ctrl <Key>[" "leHiMarkNet(nil)") hiSetBindKey("Layout" "Ctrl <Key>]" "leHiUnmarkNet(nil)") hiSetBindKey("Layout" "Ctrl Shift<Key>]" "leHiUnmarkNetAll(nil)") ;; ;; ICFB window ;; ;; Supported operations are: ;; Library manager ;; CDS library editor hiSetBindKey("Command Interpreter" "<Key>F2" "ddsOpenLibManager()") hiSetBindKey("Command Interpreter" "<Key>F3" "ddsHiOpenCdsLibEditor()")
Disable the help F1 key (it crashes our Cadence 5 install):
hiSetBindKey("Layout" "<Key>F1" "printf(\"Help disabled\")") hiSetBindKey("Schematics" "<Key>F1" "printf(\"Help disabled\")") hiSetBindKey("Symbol" "<Key>F1" "printf(\"Help disabled\")")
Load and run a skill script stored in a file (in this case, bound to F10):
hiSetBindKey("Layout" "<Key>F10" "load(\"scripts/createPinWrapper.il\") createPinWrapper()")
Note: "Ctrl Shift<Key>3" and "Shift<Key>3, must be entered as "Ctrl <Key>#" and "<Key>#".
Same goes for Shift<Key>9 and 0
Not sure why these are not equivalent to Virtuoso, but the hack works.
Note: if your schematic layers are marked as valid (shown in LSW), then the "show only layer x" commands will make your schematic invisible. To disable this "feature"
Edit Layer Filters, and add Exclude / Layers starting with "wire device pin anno dsn edge Unrou hilite"
Save this layerset with the filename "default"
This will create a file in ./.cadence/dfII/layerSets/[tech]/default.layerSet
If it is called "default" it will be loaded automagically (at least in IC615)
But seriously Cadence, why would you include schematic layers in the layout LSW? These should be two separate layer sets...
Another, more serious hotkey set:
http://relyveld.wordpress.com/cadence-page/