editing connectivity database (cdlin schematic) with skill

Discussion in 'Cadence' started by danmc, Apr 1, 2005.

  1. danmc

    danmc Guest

    Hi,

    I want to make some changes to some "schematics" which were originally
    generated by cdlin. The 2 operations I'm interested in are

    1) changing some properties and

    2) adding some extra devices in parallel with existing devices

    For changing properties something like:

    cvId = dbOpenCellViewByType( libName cellName viewName nil "a" )
    instId = dbFindAnyInstByName( cvId, instName)
    propId = dbGetPropByName(instId, pName)
    propId->value = newValue

    seems to work, but I can no longer netlist because I get a complaint
    that the schematic has changed since last extraction.

    For adding devices in parallel, I've tried something like:

    cvId = dbOpenCellViewByType( libName cellName viewName nil "a" )
    instId = dbFindAnyInstByName( cvId, instName)
    instId2 = schCopy(instId, cvId, nil)
    instId2->name = inst2Name

    but I still have the extraction problem as well as the problem where I
    havent' figured out how to set the connectivity of my new instance
    (instId2).

    Any suggestions?

    Thanks
    -Dan
     
    danmc, Apr 1, 2005
    #1
  2. danmc

    S.Badel Guest

    propId = dbGetPropByName(instId, pName)
    you could rather use dbReplaceProp( instId pName pType value )
    use
    schHiCheckAndSave()
    or
    schCheck( cvId )
    dbSave( cvId )
    if you do this your new instance is not connected to anything.
    get the connectivity from instId~>instTerms, the create instTerms for
    your new instance with dbCreateInstTerm(), ie

    foreach( instTerm instId~>instTerms
    net = instTerm~>net
    termName = instTerm~>name
    term = dbFindTermByName( instId~>master termName )
    dbCreateInstTerm( net instId2 term )
    )

    Another option is to turn your instance into an iterated instance. much
    easier:
    instId~>numInst = 2*instId~>numInst

    cheers,

    stéphane
     
    S.Badel, Apr 1, 2005
    #2
  3. danmc

    danmc Guest

    the connectivity part works like a champ. The schCheck() part doesn't
    because the schematics created by cdlin are really just a connectivity
    database and it has this schType=schNoEdit set on them which prevents
    schCheck() from doing anything.

    -Dan
     
    danmc, Apr 1, 2005
    #3
  4. danmc

    S.Badel Guest

    they say cdlin schematics are editable since version 5.0.33 (i don't
    know i never use cdl).

    since then there is also the connectivity-to-schematic which allows to
    generate wired schematics instead of connectivity-only. (schematic
    generation options in the cdlin form, conn2sch() with skill).

    you still have the good old auLvsFixTimeStamps( cvId ) which may get rid
    of the problem.

    stéphane
     
    S.Badel, Apr 1, 2005
    #4
  5. Hi Badel,
    I am also trying to do something similar in skill. But in my case the
    instTerm is already connected to an existing net. So, when I call
    dbCreateInstTerm() I get a warning saying
    *WARNING* : Shorted nets - net101

    Could you please tell us how to modify the existing connectivity through
    skill.

    Thanks in advance,
    Regards,
    Suresh
     
    Suresh Jeevanandam, Apr 4, 2005
    #5
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.