• 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 SKILL
  3. Binary Data Bus via programming script

Stats

  • Locked Locked
  • Replies 8
  • Subscribers 144
  • Views 15205
  • 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

Binary Data Bus via programming script

jaleco
jaleco over 11 years ago

 Is there a simple, automated way of placing vias from a data bus in a binary pattern to instances like decoders?

 

  • Cancel
Parents
  • jaleco
    jaleco over 11 years ago

    Being without the GXL license for either version 5 or 6, I adapted the SlotMetal.il form to create a Program Binary Bus form, and changed its enterPath function to an enterPoints function.

    The attached code will accept points for via connections between a data bus and the least significant instance in a one-dimensional array - eg row or column of decoders - and place all the remaining via connections to the array. 

    It incorporates some checks for duplicate point entry and to ensure there are sufficient bits to program the number of instances in the array.  This is only set up to operate using v5 commands, but it shouldn't be too hard to modify.  I have already included a variable in the code to store the results of dbGetDatabaseType(), but it isn't used.

    Assumptions are that the data bus has consistent pitch between all signals and uses the same via connection for all inputs; there is consistent pitch between each true and complement pair (this does not require them to be adjacent though); the programming is conventional binary order from least significant instance to most significant in one direction (up, down, left or right) - no mirroring. 

    The core of the program uses the via parameters from the form to create a via symbolic for each point entered, for each cell instance, using a binary repeating pattern, modifying the X or Y coord for each via placement with respect to the initial point selected for each respective bit from LSB to MSB.

    I don't have the benefit of the SKILL IDE and it hasn't been evaluated and given a LINT score, so please forgive any opportunities to improve the code!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • jaleco
    jaleco over 11 years ago

    Being without the GXL license for either version 5 or 6, I adapted the SlotMetal.il form to create a Program Binary Bus form, and changed its enterPath function to an enterPoints function.

    The attached code will accept points for via connections between a data bus and the least significant instance in a one-dimensional array - eg row or column of decoders - and place all the remaining via connections to the array. 

    It incorporates some checks for duplicate point entry and to ensure there are sufficient bits to program the number of instances in the array.  This is only set up to operate using v5 commands, but it shouldn't be too hard to modify.  I have already included a variable in the code to store the results of dbGetDatabaseType(), but it isn't used.

    Assumptions are that the data bus has consistent pitch between all signals and uses the same via connection for all inputs; there is consistent pitch between each true and complement pair (this does not require them to be adjacent though); the programming is conventional binary order from least significant instance to most significant in one direction (up, down, left or right) - no mirroring. 

    The core of the program uses the via parameters from the form to create a via symbolic for each point entered, for each cell instance, using a binary repeating pattern, modifying the X or Y coord for each via placement with respect to the initial point selected for each respective bit from LSB to MSB.

    I don't have the benefit of the SKILL IDE and it hasn't been evaluated and given a LINT score, so please forgive any opportunities to improve the code!

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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