• 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. To find the empty area between the matched MOS

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 143
  • Views 17168
  • 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

To find the empty area between the matched MOS

varunkumar
varunkumar over 12 years ago
In several layout matching we  place the devices (nmos or pmos) in 1, 2 ,3,4,5 (rows)  etc and route through the empty space . so i would like to caluclate the empty area between the device through skill. layout is done in L editor with virtuoso 615 and we have many matched cells are in hierarchy level.
  • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Did you have a question? There's very little detail in the above, and a question (aided by a picture) would probably help...

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunkumar
    varunkumar over 12 years ago

    yes i have a question, I have placed NMOS in 2 rows separated by some space in y direction between the mos (like modgen generate the matched module)  we route in pin to trunk manner where trunk is horizontal usually in metal2 through the empty space between the mos.

    I would like to calculate the area of the empty space using skill .

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    I'm sorry to be pedantic, but you still didn't ask a question!

    You just said that you would like to calculate the area of the empty space. Well, that's very nice - but presumably you were telling us for a reason?

    Maybe  you're asking how to compute the area between them but without a picture, it's very hard to imagine what you are trying to compute? Maybe you you could place the NMOS in the layout, save an image of the window (using Export Image in the layout editor, ideally with rulers on to show what you're trying to find), and then post it as an attachment via the options tab when replying.

    Kind Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunkumar
    varunkumar over 12 years ago
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • skillUser
    skillUser over 12 years ago

     This post is empty.  Perhaps you did not use the Options tab to add an image?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunkumar
    varunkumar over 12 years ago
    i m not able to add images....can u tell me (in skill) to how to compare the instances bbox with other instances bbox in the layout view.
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    I'm not sure why you can't use the Options tab when replying to attach an image, as Lawrence described.

    Anyway, if inst1 is the left instance and inst2 is the right instance, it would be:

    xCoord(lowerLeft(inst2~>bBox))-xCoord(upperRight(inst1~>bBox))

    to find the x-spacing between the two. If that's what you wanted.

    As outlined in the Forum Guidelines, the more information you provide, the more likely you are to get a useful answer.

    Kindest Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunkumar
    varunkumar over 12 years ago

    Plese find the attachment. I am interested in find the area showing with marker.

    xcordinate of each instances are same. 

    • area.png
    • View
    • Hide
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • varunkumar
    varunkumar over 12 years ago
    i have tried with this cv=geGetEditCellView() foreach(m cv~>instances if(caar(m~>bBox)==caar(m~>bBox) then ........ i have tried like this but i am stucked
    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 12 years ago

    Your code clearly wouldn't work because it's only comparing itself with itself. 

    I'm assuming something along these lines would be what you're after:

    cv=geGetEditCellView()
    ; first collect a table indexed by the xCoord of the instance origin
    ; each entry is a list of all the instances with the same x coord
    sameXtable=makeTable('sameX nil)
    foreach(inst cv~>instances
      x=xCoord(inst~>xy)
      sameXtable[x]=cons(inst sameXtable[x])
    )
    ; then find any entry in the table with more than one instance
    ; and sort them in yCoord order (using the bBox in case they've been flipped), and print out the gap
    ; in the bBox's (in the y-direction)
    foreach(x sameXtable
      insts=sameXtable[x]
      when(length(insts)>1
        insts=sort(insts lambda((a b) yCoord(lowerLeft(a~>bBox))<yCoord(lowerLeft(b~>bBox))))
        bottom=car(insts)
        foreach(inst cdr(insts)
          printf("Gap between %s and %s is %g\n" inst~>name bottom~>name
            yCoord(lowerLeft(inst~>bBox))-yCoord(upperRight(bottom~>bBox)))
        )
      )
    )

    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