Home > Community > Forums > Custom IC SKILL > How to change via level with skill in IC6

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 to change via level with skill in IC6 

Last post Fri, Jan 18 2013 4:23 AM by Andrew Beckett. 30 replies.
Started by Eric L14 26 May 2011 12:57 AM. Topic has 30 replies and 8199 views
Page 2 of 3 (31 items) < Previous 1 2 3 Next >
Sort Posts:
  • Tue, Jun 19 2012 2:14 PM

    Re: How to change via level with skill in IC6 Reply

    Not sure I entirely understand the question, because it's like asking for the difference between fruit and apples.

    In both CDB and OpenAccess, various things are represented as "objects" in the database. For example, there are objects to represent shapes (e.g. rectangles, polygons, paths, ellipses etc), objects to represent instances, objects to represent nets, terminals, and so on and so on. Instances are a type of object. In CDB there was no specific object type for vias; vias were just instances. In OpenAccess however, instances are one type of object, and vias are another type - so there is now a specific object type for vias, thus separating them from ordinary instances (e.g. instances of devices, instances of other cellViews and so on).

    Hopefully that answers your question?

    Andrew.

    • Post Points: 20
  • Tue, Jun 19 2012 9:59 PM

    • Gurup
    • Not Ranked
    • Joined on Thu, May 17 2012
    • Posts 12
    • Points 195
    Re: How to change via level with skill in IC6 Reply

    Thanks Andrew its working ..

    Please tell me the such similar command to change the via pitch, in one shot

    Andrew Beckett:

    No. You can't do that (it doesn't make sense either).

    You can change the rows and columns of an existing via instance by using:

    viaInst~>cutRows=4
    viaInst~>cutColumns=6

    or you could use dbReplaceProp() or dbReplacePropList() to change them in one go.

    You'll find that you'll get a different viaHeader if you do this - it will bind that via to a different header.

    Andrew.


     

    --Thanks & Regards

     Guru

    Filed under:
    • Post Points: 20
  • Tue, Jun 19 2012 10:03 PM

    • Gurup
    • Not Ranked
    • Joined on Thu, May 17 2012
    • Posts 12
    • Points 195
    Re: How to change via level with skill in IC6 Reply

     Thanks  Andrew,for your nice ans  :-)

    • Post Points: 5
  • Wed, Jun 20 2012 2:54 AM

    Re: How to change via level with skill in IC6 Reply

    Guru,

    You can find this information out yourself very easily. Place a via, and change the properties to what you want. For example, I altered the via width and length, and spacings. Then I did:

    car(getGetSelSet())~>viaHeader~>overrideParams

    and I get:

    (("cutWidth" 0.16)
        ("cutHeight" 0.17)
        ("cutRows" 3)
        ("cutColumns" 2)
        ("cutSpacing"
        (0.3 0.2)
        )
    )

    From this I can see that the spacing is controlled by cutSpacing, and similarly for the width and length (there's no "pitch", but obviously that's the width plus the horizontal spacing).

    Then I can do

    viaInst~>cutSpacing=list(0.6 0.4)
    viaInst~>cutWidth=0.25

    or whatever. You can use the same approach to find out the parameter names - try changing it interactively, then query the database to find out the names used.

    Regards,

    Andrew.

     

    • Post Points: 20
  • Tue, Oct 23 2012 6:37 AM

    • Antonios
    • Not Ranked
    • Joined on Mon, Oct 22 2012
    • Posts 4
    • Points 65
    Re: How to change via level with skill in IC6 Reply

    Dear Andrew,

    I am using your methododlogy to convert cdb instance vias to oa stdVias with dbCreateVia.

    The issue is that my pcells having conditional inclusions of vias do not work any longer. I must recreate them.

    Is there an easy way to update the pcell information with the new via objects?

    Regards,

     Antonios

    Filed under:
    • Post Points: 20
  • Wed, Jan 2 2013 6:02 AM

    Re: How to change via level with skill in IC6 Reply

     Antonios,

    I don't really understand your question.

    Andrew

    • Post Points: 20
  • Mon, Jan 7 2013 4:54 AM

    • Antonios
    • Not Ranked
    • Joined on Mon, Oct 22 2012
    • Posts 4
    • Points 65
    Re: How to change via level with skill in IC6 Reply

    Let me try to be more explicit:

    We have created a layout migration flow which does the following:

    1. Migrates cdb2oa layouts

    2. Scans all the via instances and extracts their parameters i.e.: rows, cols, enclosures, space etc.

    3. Based on a via mapping table which maps the old viaDefs to the new ones, the script recreates the vias with dbCreateVia and assigns to them the extracted in step 2 properties. It is then erasing the old via instances.

    4. It re-compiles hierarchically the pcells.

    We have pcells which can instantiate or not several vias of the the available ones in the technology's viaDefs, based on a metal stack pcell variable.

    The issue is that these pcells are created in a different technology in which the vias where named differently. i.e the name of via 1 was "via1" in the previous technology while in the new one it is "V1". By replacing all "via1" by "V1" in step 3 renders our pcells non functional. We must recreate them from scratch.

    We were wondering if we could change the pcell definitions before recompiling them to account for the new via naming.

    We would like to avoid dumping in a text file the pcell definitions, parse them and reload them. We would prefer the rename the vias directly in the pcell db. Are there functions doing this?

     

    • Post Points: 20
  • Mon, Jan 14 2013 5:15 AM

    Re: How to change via level with skill in IC6 Reply

    Are you using the -viamap argument to cdb2oa?

    BTW, pcell definitions are actually SKILL code - so theoretically you could dump the pcell code out, modify and then load it back in (which would effectively recompile it). Using something like dbDumpPcell() and then dbDefineProc to read back in the modified file. However, that would only work if the original pcell is flat - i.e. it doesn't do any via placement in sub-functions; if the original pcell was a "graphical" pcell, it would be flat - but if it was written in SKILL directly, you'd be best finding the source code and modifying it and recompiling.

    Regards,

    Andrew.

    • Post Points: 50
  • Mon, Jan 14 2013 12:09 PM

    • VaughnR
    • Top 500 Contributor
    • Joined on Tue, Dec 14 2010
    • AUSTIN, TX
    • Posts 17
    • Points 250
    Re: How to change via level with skill in IC6 Reply

    Andrew and the Cadence online guys, I just wanted to say these forums are a tremendous help, thanks!

     

    I have two questions about the stdVia.

     

    1) I see the ViaVariant in the techfile I want to use. How do I instantiate it in my layout using skill? I have tried  dbCreateVia() but failed to get the variant to work.

     

    2) using skill how can I take a seleted set of "M2_M1" stdVias and make them "M3_M2" stdVias? It looks very difficult. Do I really have to delete the selected item and dbCreateVia() using the same XY and params just to change the cut layer?

     

    Regards

     

    Vaughn

    • Post Points: 20
  • Tue, Jan 15 2013 12:39 AM

    • Antonios
    • Not Ranked
    • Joined on Mon, Oct 22 2012
    • Posts 4
    • Points 65
    Re: How to change via level with skill in IC6 Reply

    Dear Andrew,

    First of all I would also like to say that I agree with the thank you statement of Vaughn.

    Just to answer to you that we do not use -viamap in cdb2oa. We were not aware of that. I guess using it would simplify our scripts which currently search also among the regular design instance objects to extract the vias and translate them into stdvias objects. Usign -viamap I guess, would convert via instance objects to customVia objects which are more easily detectable and convertible to stdvias than instances.

    I would also like to add that as Vaughn  suggests in 2), it would be a great help if there was a skill function to transform a via object just by changing its viaDefName while preserving the remaining parameters thus avoiding to delete and dbCreateVia() of a clone of it.

    Best regards,

    Antonios

    • Post Points: 5
  • Tue, Jan 15 2013 7:09 AM

    Re: How to change via level with skill in IC6 Reply

    First I'll reply to Vaughn.

    1. There's dbCreateStdViaVariant and dbCreateCustomViaVariant.
    2. Unfortunately not. One of the most commonly asked questions though - so I suggest you log a service request to ask for a clean way to remaster a via instance. I did find an existing CCR 751369 for this, but this is not planned to be implemented (at all) - it would need more customers asking for it to bring it back to life.

    And to Antonios.

    The viamap can directly map a via instance (they were instances in CDB) to either a customVia or a stdVia directly.

    Regards,

    Andrew.

    • Post Points: 35
  • Tue, Jan 15 2013 3:43 PM

    • VaughnR
    • Top 500 Contributor
    • Joined on Tue, Dec 14 2010
    • AUSTIN, TX
    • Posts 17
    • Points 250
    Re: How to change via level with skill in IC6 Reply

    Andrew,

     

    Please point me to some kind of lesson or example of how to use stdVia and stdViaVariants. I am not understanding the relationship between  dbCreateStdViaVariant, dbCreateCustomViaVariant and dbCreateVia.

    From what I gather stdViaVariant is a temporary local definitions of the stdVia params? If so how do I impose this new definition onto an existing stdVia?

    What is the difference between using stdViaVariant or using the existing override param on an existing stdVia?

     

    Vaughn

    • Post Points: 5
  • Wed, Jan 16 2013 6:25 AM

    • Antonios
    • Not Ranked
    • Joined on Mon, Oct 22 2012
    • Posts 4
    • Points 65
    Re: How to change via level with skill in IC6 Reply

    From the cdb2oa syntax description I understand the following:

    viamap file is a list of the CDB via cellview masters to be created in the new oa library. It is also stated that the translator adds a new oaCustomViaDef in the new oa library.

    viamap is misleading as name since it does not seem to do any mapping.

    In our migration flow (tech1->tech2) We still need to convert let's say Via1 name into V1 by the mean of i.e.: dbCreateStdViaVariant or dbCreateVia and extract all via parameters from Via1 to copy them into V1. We must then erase all Via1 vias since in the target technology there is not such viaDef and we do not have the right to create one. 

    Please correct me if I am wrong but I do not see any major difference between dbCreateVia  and dbCreateStdViaVariant if it is not for the way we pass via parameters such as via layer enclosures, space, viaDef etc.

    As for 2 it would be great if there was already a solution but we have already our custom solution developed as you described. There is no point for us filling in a CCR for this.

    Can you please let us know if there is a CCR filled in for a function doing what you have described in you post of 01-14-2013 1:15 PM of this thread and we asked in the previous post? I mean the via pcell migration function or something similar. If any we would like to have it as reference in case we fill in a similar CCR.

    Best regards,

    Antonios

    • Post Points: 20
  • Thu, Jan 17 2013 2:38 PM

    • VaughnR
    • Top 500 Contributor
    • Joined on Tue, Dec 14 2010
    • AUSTIN, TX
    • Posts 17
    • Points 250
    Re: How to change via level with skill in IC6 Reply

     Andrew,

     I have having difficulty finding the proper format for the l_cutPattern. Which is a requirement for dbCreateStdViaVariant().

    Here is what I have so far.

      p, li { white

    dbCreateStdViaVariant(

       cvId

       "testViaVariant"

       "VIA1"

       '("VIA1" 0.064 0.064)

       '(1 1 (0.16 0.16))

       '(0.0 0.075)

       '(0.075 0.0)

       '(0.0 0.0)

       '(0.0 0.0)

       '(0.0 0.0)

       '(0.0 0.0)

       '(0.0 0.0)

       )

    • Post Points: 20
  • Fri, Jan 18 2013 4:18 AM

    Re: How to change via level with skill in IC6 Reply

    A bit tricky here because we have two interleaved threads (I think it might be beyond my moderator skills to sort out the mess and separate them). So let me answer VaughnR's questions first, and then come back to Antonios.

    Firstly, some examples and more info in some solutions. This solution was created before dbCreateStdViaVariant was created (I think). And this solution talks about using dbCreateStdViaVariant.

    Personally I find the API for dbCreateStdViaVariant a bit odd. The idea of a viaVariant is that it is a variant of a normal via, but with particular values for rows and columns, enclosures, spacings etc. So it's like a template that you can reuse. From the create via form, you can save away a via variant, and then when you use it, you don't have the opportunity to change any of the parameters. With the API however, you have to specify all the parameters, so I can't see much point in using a viaVariant over the source via! I'm going to ask R&D about this. If dbCreateStdViaVariant had optional arguments after the  viaVariantName (or viaDefName) then I could understand it - but it doesn't - they're all required arguments.

    Now, for the cutPattern. I wrote some SKILL to do what you want - to encode the cut pattern for you.

    Regards,

    Andrew.

    • Post Points: 5
Page 2 of 3 (31 items) < Previous 1 2 3 Next >
Sort Posts:
Started by Eric L14 at 26 May 2011 12:57 AM. Topic has 30 replies.