• 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. Digital Implementation
  3. how to move FTerms

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 91
  • Views 12887
  • 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 move FTerms

Nataraja G
Nataraja G over 15 years ago

my requirement is to move selected pins Fterms (tile pins) , to a specified offset

 
this is what i have done

set selectedList [dbGet selected] ;# list of selected objects

#going into a loop and chaging the positions using

dbSetFTermLoc ftermPtr x y

But theirs a catch ! for tile's along with PIN , we have STRIPBOX (a small metal peice which has been pushed down by integration team) , when im  changing the PIN position this metal peice isnt moving !!!  


dbGet selected.box ---- this is giving the position of that metal peice , then i tryed
dbSet selected.box $newPositionCoordinates ----- this isnt working !!!

So, Here are my questions
a)Can we change Pin positions using dbGet or even get the position of selected pins

b)how to move this stripbox , dbInfoStripBox stripbox  has the information but im not able to edit :)

c)how to move any object irrespective of is type (dbObjType)

  • Cancel
  • BobD
    BobD over 15 years ago

    Great question.

    I've gotten caught up in this in the past myself.  IO pins consist of a logical "triangular" marker and associated physical geometries.  Some lower-level db commands don't take care of updating all the necessary geometries and it sounds like that's what's bogging you down.

    The most productized way to move IO pins around is through Edit->Pin Editor which resolves to the editPin command.  If you wanted to use editPin to space the selected pins out along the top boundary starting at x=10 and spacing them out by 20 microns you could do something like this:

    #first, capture the top coordinate of the design:
    encounter 59> set y [lindex [lindex [dbGet top.fplan.box] 0] 3]                                               
    231.84
    #then call editPin on the selected pin names:
    encounter 60> editPin -pin [dbGet selected.name] -spreadType START -side TOP -layer 2 -start 10 $y -spacing 20
    Successfully spread [3] pins.


    You could also mimic the spreading functionality yourself by calling editPin -assign which defines an explicit location:

    set x 10
    foreach term [dbGet selected] {
      set y [lindex [lindex [dbGet top.fplan.box] 0] 3]
      editPin -pin [dbGet $term.name] -assign $x $y
      set x [expr $x + 20]
    }

    In general, you should also be able to use dbSet to set the .pt of each selected term (or other dbGet object type that is settable according to what dbGet <obj>.?h says) but in testing here I notice that this approach suffers from the same limitation as you're seeing- that the geometry of the pin isn't updated correctly after the move.  I'll file a bug against that- thanks for raising my awareness of this issue.

    Hope this helps,
    Bob

    • 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