Home > Community > Forums > Custom IC Design > How can I parameterize a layout library?

Email

* Required Fields

Recipients email * (separate multiple addresses with commas)

Your name *

Your email *

Message *

Contact Us

* Required Fields
First Name *

Last Name *

Email *

Company / Institution *

Comments: *

 How can I parameterize a layout library? 

Last post Wed, Jul 15 2009 6:45 AM by janko. 2 replies.
Started by janko 15 Jul 2009 01:54 AM. Topic has 2 replies and 939 views
Page 1 of 1 (3 items)
Sort Posts:
  • Wed, Jul 15 2009 1:54 AM

    • janko
    • Not Ranked
    • Joined on Thu, Jul 17 2008
    • Posts 4
    • Points 50
    How can I parameterize a layout library? Reply

    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

    Filed under:
    • Post Points: 20
  • Wed, Jul 15 2009 5:35 AM

    • skillUser
    • Top 10 Contributor
    • Joined on Fri, Sep 19 2008
    • Austin, TX
    • Posts 2,595
    • Points 16,045
    Re: How can I parameterize a layout library? Reply

    Hi Ingo,

    You can have parameters stored in the techParams section of the technology file and refer to these values elsewhere in the techfile, effectively parameterizing the technology, but the techfile must be compiled, so these values are static.

    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()?)

    I hope that this helps you.

    Best regards,

    Lawrence.

    • Post Points: 20
  • Wed, Jul 15 2009 6:45 AM

    • janko
    • Not Ranked
    • Joined on Thu, Jul 17 2008
    • Posts 4
    • Points 50
    Re: How can I parameterize a layout library? Reply

    skillUser:

    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.

    • Post Points: 5
Page 1 of 1 (3 items)
Sort Posts:
Started by janko at 15 Jul 2009 01:54 AM. Topic has 2 replies.