• 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 can I parameterize a layout library?

Stats

  • Locked Locked
  • Replies 2
  • Subscribers 125
  • Views 13614
  • 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 can I parameterize a layout library?

janko
janko over 16 years ago

Hi,

what I would like to do is set a property on my library (say, "via_size") and have the possibility to insert the property value into the instance call in my layout cells - think of my via as a pcell with variable size, I would want to not fix the size of it at design time, but later by just changing a single property value on the library.

 Of course it would be possible to insert another hierarchy level where a cell "myvia" references the actual via, so that I would only have to change that cell. However, what I really want is something more flexible, where several cells respect the values that I set once only.

 So what I want is the possibility to put variable / property names into the instance creation forms.

 Is that possible? What would be the syntax?

I had thought of using pcells that look up the library properties and accordingly create shapes and instances, but I fear that might not work, and also I believe there must be an easier way. However, I was unable to find a solution for that particular problem although I cannot believe I am the only one ever to have faced that.  

 Thanks for any help.

   Ingo.

 P.S.: I am using cadence 5.141

  • Cancel
Parents
  • janko
    janko over 16 years ago

    skillUser said:

    So I believe that the easiest way to dynamically parameterize your designs, or cells is to make them parameterized cells (PCells), which can include vias.  PCells are "sort of" compiled too, for example when you instantiate an instance of a PCell, the code is evaluated; so if you were to base your PCells on some library property, for example, then changing the property will not trigger any change in the cells, you will need to forcefully refresh them (e.g. close the data to purge it from virtual memory and re-open, or perhaps use File->Refresh()?)

     

     Well that wouldn't be too bad. I tried writing a SKILL PCell using dbSearchPropByName(), it is supposed to find lib properties if given a DdId, but the one I got from dbGetCellViewDdId() just wasn't accepted: dbSearchPropByName() claims it's neither a cellview, cell nor lib ID. But why? I thought it should. Grrrr. Can you offer any further insight?

     Anyway, I had hoped it was as easy as writing something like %mylib::myproperty% in some field of the instance creation form. But I guess that would've been too easy ;-)

     Thank you for your answer, you have already helped me.  A bit.  Seems I am not quite there yet, but edging closer.

     Kind regards,

       Ingo.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • janko
    janko over 16 years ago

    skillUser said:

    So I believe that the easiest way to dynamically parameterize your designs, or cells is to make them parameterized cells (PCells), which can include vias.  PCells are "sort of" compiled too, for example when you instantiate an instance of a PCell, the code is evaluated; so if you were to base your PCells on some library property, for example, then changing the property will not trigger any change in the cells, you will need to forcefully refresh them (e.g. close the data to purge it from virtual memory and re-open, or perhaps use File->Refresh()?)

     

     Well that wouldn't be too bad. I tried writing a SKILL PCell using dbSearchPropByName(), it is supposed to find lib properties if given a DdId, but the one I got from dbGetCellViewDdId() just wasn't accepted: dbSearchPropByName() claims it's neither a cellview, cell nor lib ID. But why? I thought it should. Grrrr. Can you offer any further insight?

     Anyway, I had hoped it was as easy as writing something like %mylib::myproperty% in some field of the instance creation form. But I guess that would've been too easy ;-)

     Thank you for your answer, you have already helped me.  A bit.  Seems I am not quite there yet, but edging closer.

     Kind regards,

       Ingo.

    • 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