• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. Bind key for setting to "copy reference" mode in the "Quick...

Stats

  • Locked Locked
  • Replies 7
  • Subscribers 125
  • Views 5146
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Bind key for setting to "copy reference" mode in the "Quick Align" window.

Arokia
Arokia over 6 years ago

Hi,

I am looking to assign a bindkey to switch between enabling and disabling "Copy Reference" in the "Quick Align" window in "Virtuoso Layout". Could you please provide a procedure, that I can tag to one of my bindkey. 

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago

    The function you'd need to toggle it would be:

    leSetEnv("quickAlignMode" if(leGetEnv("quickAlignMode")=="Copy" "MoveOrStretch" "Copy"))

    This gets hold of the current value, checks the value, and then then if returns the opposite value - the surrounding leSetEnv re-sets the controlling environment variable.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Arokia
    Arokia over 6 years ago in reply to Andrew Beckett

    Hi Andrew

    The above command works in the CIW window.

    But when used inside my Bindkey file (Bindkey.il"), in the below way. 

    hiSetBindKey("Layout" "Shift Alt Ctrl<key>t" "leSetEnv("quickAlignMode" if(leGetEnv("quickAlignMode")=="Copy" "MoveOrStretch" "Copy"))")

    I'm getting an error message. 

    hiSetBindKey("Layout" "Shift Alt Ctrl<key>t" "leSetEnv("quickAlignMode" if(leGetEnv("quickAlignMode")=="Copy" "MoveOrStretch" "Copy"))")
    ^^^^^^^^^^^^^^
    SYNTAX ERROR found at line 296 column 57 of file

    *Error* lineread/read: syntax error encountered in input

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Arokia

    Not surprising because you have quotes within your bindkey string - that's never going to work unless you escape them - otherwise it thinks that the string ends after "leSetEnv(" and then the parser will get rather confused. You need to escape (with backslash) the embedded quotes:

    hiSetBindKey("Layout" "Shift Alt Ctrl<key>t" "leSetEnv(\"quickAlignMode\" if(leGetEnv(\"quickAlignMode\")==\"Copy\" \"MoveOrStretch\" \"Copy\"))")

    Regards,

    Andrew/

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Arokia
    Arokia over 6 years ago in reply to Andrew Beckett

    Yes, I forgot about the escape, thanks it works now. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Arokia
    Arokia over 6 years ago in reply to Arokia

    But I do have a question, Could you please let me know how you were able to get the below keywords.

    "quickAlignMode"

    "Copy"

    "MoveOrStretch"

    Is there a way to find out which keywords or variables are mapped to certain functions. Is there a particular file which contains these keywords or variables, if so, could you please let me know the name of the file (and its default path). 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to Arokia

    Hit the help button on the Quick Align options form. That then has links to the documentation for the environment variables which shows the available values.

    The default env vars for the layout application are in <ICinstDir>/tools/dfII/etc/tools/layout/.cdsenv (note, this file should never be edited). You can also use Window->Assistants->Search and search for "quick" (if you had a clue that would be in the name, which seems reasonable) and it will show you the env var settings the the "Variables" section of the results. It wouldn't show you there the available choices for a cyclic field - the .cdsenv registration file does, as does the documentation.

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Arokia
    Arokia over 6 years ago in reply to Andrew Beckett

    Thank you so much, sir, you are an Angel! 

    I've been trying to find these documents for a long time, I had no idea it was under the "help button". This has saved me a lot of time. 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information