• 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. How to combine two procedure syntax and use by bindkey layer...

Stats

  • Locked Locked
  • Replies 3
  • Subscribers 125
  • Views 10874
  • 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

How to combine two procedure syntax and use by bindkey layer?

toyakoyosu
toyakoyosu over 4 years ago

Hi! All:

I have question about syntax use,

And thru the toggle Bindkey combine two procedure syntax implement  I wanna to 

I think toggle keyboard "1" is setMetal1LayerVisible(), and toggle keyboard "Alt +2" is setMetal2LayerVisible()

and maybe toggle keyboard "1" + "Alt+3" can see layer ME1, CONT, M1_CAD_TEXT, ME3, VIA2, M3_CAD_TEXT

how could I set this bindkey combo?

Thanks!!

Virtuoso version is IC6.1.8-64b.500.16

I write the bindkey as below

------------------------------------------------------------------------------------------------------

hiSetBindkey("Layout" "Alt<Key3" "setMetal3LayerVisible()" hiredraw()")

hiSetBindkey("Layout" "<Key>1" "setMetal1LayerVisible()" hiredraw()")

procedure( setMetal1LayersVisible()
leSetEntryLayer('("M1" "drawing"))
foreach( laylsw list(
'("ME1" "drawing")
'("CONT" "drawing")
'("M1_CAD" "TEXT")
)
leSetLayerVisible (laylsw t)
leSetLayerSelectable(laysw t)
); end foreach
); end procedure


hiSetBindkey("Layout" "<Key>2" "setMetal2LayerVisible()" hiredraw()")
procedure( setMetal2LayersVisible()
leSetEntryLayer('("M2" "drawing"))
foreach( laylsw list(
'("ME2" "drawing")
'("VIA1" "drawing")
'("M2_CAD" "TEXT")
)
leSetLayerVisible (laylsw t)
leSetLayerSelectable(laysw t)
); end foreach
); end procedure

hiSetBindkey("Layout" "<Key>3" "setMetal3LayerVisible()" hiredraw()")
procedure( setMetal3LayersVisible()
leSetEntryLayer('("M3" "drawing"))
foreach( laylsw list(
'("ME3" "drawing")
'("VIA2" "drawing")
'("M3_CAD" "TEXT")
)
leSetLayerVisible (laylsw t)
leSetLayerSelectable(laysw t)
); end foreach
); end procedure

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    I really don't understand your question (your English is very unclear - I understand that's probably not your first language, but I just don't understand what you're asking).

    I certainly can see that your bindkey definitions are all incorrect though, because they have:

    1. An extra quotation mark in the final argument
    2. A call to an incorrectly spelled function - it should be hiRedraw() not hiredraw()

    So they should be something like:

    hiSetBindkey("Layout" "Alt<Key3" "setMetal3LayerVisible() hiRedraw()")

    However, I don't understand what you're talking about "toggle Bindkey" or "toggle keyboard". I'm not sure what is "toggling" here, or what you're trying to combine. Please clarify!

    Kind Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 4 years ago

    I really don't understand your question (your English is very unclear - I understand that's probably not your first language, but I just don't understand what you're asking).

    I certainly can see that your bindkey definitions are all incorrect though, because they have:

    1. An extra quotation mark in the final argument
    2. A call to an incorrectly spelled function - it should be hiRedraw() not hiredraw()

    So they should be something like:

    hiSetBindkey("Layout" "Alt<Key3" "setMetal3LayerVisible() hiRedraw()")

    However, I don't understand what you're talking about "toggle Bindkey" or "toggle keyboard". I'm not sure what is "toggling" here, or what you're trying to combine. Please clarify!

    Kind Regards,

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • toyakoyosu
    toyakoyosu over 4 years ago in reply to Andrew Beckett

    Hi! Andrew, sorry make you inconvenience,

    this is not my first language, my mother tongue is Taiwanese,

    I try to make procedure as below,

    and hopefully you know I talk about, 

    1. Type Keyboard "3" show "via2", "Metal3", "ME3_CAD" layer, type Keyboard "2" show "via1", "Metal2" and "ME2_CAD" layer
    2. Type Keyboard "2" and "alt+3" show "via1", "Metal2","ME2_CAD", add "Metal3", "via2", "ME3_CAD" layer
    3. Type keyboard "alt+3" again, remove  "Metal3", "via2" layer,
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to toyakoyosu

    I still don't quite get what you're asking. Are you asking that when you press (say) 3, it always sets layers associated with metal3 to be visible, but when you press (say) alt+3 it toggles the visibility of the metal3-related layers (so if they are invisible, they become visible; if they are visible, they become invisible)? Then the same for 1 (and alt+1) - metal1-related layers, and 2 (and alt+2) - metal2-related layers?

    Your sequence didn't quite make sense to me if that's what you wanted - as I would have expected that pressing alt+3 in the second step above would have removed "Metal3", "via2", "ME3_CAD" (since they were already visible after pressing 3 in step 1), and also in step 3 you didn't mention "ME3_CAD" being removed. So it's hard for me to see precisely what you want...

    Regards,

    Andrew

    • 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