[@partName] labels get "frozen" on copied cells

Discussion in 'Cadence' started by spectrallypure, Nov 1, 2007.

  1. Hello all. Here is the problem:

    1. I have a certain "Cell_A" with schematic and symbol views. Symbol
    view includes the cell's name through the (automatically generated)
    "[@partName]" label.

    2. I make a copy of Cell_A (with all of its views), and name it
    "Cell_B". Then I modify the schematic view of Cell_B and make some
    changes, e.g. eliminate and rename some pins. Then I manually edit the
    symbol view of Cell_B (which was inherited from Cell_A through the
    copying process) to reflect the changes that I did in the schematic
    view.

    3. I save Cell_B's symbol view and, since I have the
    "updateCDFtermOrder" variable set, Virtuoso prompts me to comfirm the
    updating of the cell's termorder. Then I go back to the schematic view
    of Cell_B and check-and-save the cell. Virtuoso says all's fine.

    4. I create a third cell "Testbench" in which I create instances of
    both Cell_A and Cell_B, but ALL THE INSTANCES OF CELL_B READ THE NAME
    "CELL_A" ON THEM!!! (simulation goes fine for both type of cells,
    however, i.e. their electrical behavior is as expected).

    Therefore, the problem is that that when copying a cell's symbol view,
    the [@partName] label of the copy's symbol view gets somewhat "frozen"
    to the original cell's name. Of course, this only can be noted on the
    particular instances of the copied cell as on its symbol view one just
    finds the generic [@partName] label. Is this a reported bug??? Am I
    missing something???

    The only way I found to overcome this is to just copy the schematic
    view, create CELL_B's symbol view using the "Create Cellview from
    Cellview" command, and paste CELL_A's symbol onto it but taking care
    of preserving the [@partName] label generated by the "Create Cellview
    from Cellview" operation. Incredibly time-consuming, and a total waste
    of time!

    I would like to know if there is some simple way of copying cells and
    having the [@partName] label in the copy's symbol view updated. Maybe
    there is some variable (analogous to "updateCDFtermOrder") for forcing
    the update of a cell's labels on its symbol view.

    ....I have almost a hundred basic cells with complex symbols and I have
    to make copies of all of them, and I need the copies to bear their
    appropriate names when instantiating them. :S

    Thanks a lot for any ideas.

    Regards,
     
    spectrallypure, Nov 1, 2007
    #1
  2. spectrallypure

    S. Badel Guest

    On editing the symbol, press shift+Q (or Edit->Properties->CellView) and edit the partName property.

    or use @cellName instead of @partName


    stéphame
     
    S. Badel, Nov 1, 2007
    #2
  3. If you use the "update..." checkbox on the copy form, it should update the
    partName property after the copy (if my memory is correct - I remember filing
    a CCR on this years ago (maybe 10 years ago!), and I'm pretty certain it got
    implemented).

    If you've already done the copy, make the change that Stéphane suggests
    below.

    Regards,

    Andrew.

     
    Andrew Beckett, Nov 2, 2007
    #3
  4. Andrew, do you know why @partName is the default label used when
    generating cellviews from cellviews? The error described by the OP is
    one I see with most novice Cadence users, and it always create a lot
    of problems. I happen to know about this so I can rise the flag quite
    early and tell all colleagues to use @cellName and to add a @libName
    label as this make it easier to see which cell come from which
    library.

    Would it be of any use to open a ticket to have the default template
    files for the symbol generation changed the way I describe, or is
    there any historical reason for the @partName usage in the template
    that will make any problems? We could, of course, change this by
    ourselves, but then I have to redo it for every usr and isr we
    install. It would be better if Cadence did this. Maybe the @partName
    reflect the way most users exept me work with the tools?
     
    Svenn Are Bjerkem, Nov 3, 2007
    #4
  5. Thank you guys for your kind replies. Stéphane's solution seems to
    work, but unfortunately it involves manual edition of every copied
    cell's symbol view, making it not too convenient when making lots of
    copies of lots of cells :(

    I therefore tried to use the "Update Instances" option on the copy
    cell dialog box, but for some reason it doesn't work!!!! When I use
    the "(Update Instances) Of New Copies Only" sub-option, the copies
    still bear the partName of the original cell. The Library Manager
    message window doesn't report any error:
    ....
    Copy is doneProcessing files to be copied...
    Beginning simple copy to library "Turbo_Decodificador_UMTS40".
    Transfer of 8 files phase complete in 0:00:00
    Performing instance update.
    Start running ccpCdbaUpdtr ...
    ccpCdbaUpdtr ran successfully ...
    Loading all available p-cell functions
    ROD pcell code loaded
    Copy is done
    ....

    What's worse, when I use the "(Update Instances) Of Entire Library",
    not only doesn't it also fail to solve the partName updating problem
    on the copies, but I also get the following errors in the Library
    Manager messages window:
    ....
    Processing files to be copied...
    Beginning simple copy to library "Turbo_Decodificador_UMTS40".
    Transfer of 8 files phase complete in 0:00:00
    Performing instance update.
    Start running ccpCdbaUpdtr ...
    Loading all available p-cell functions
    *Error* eval: undefined function - hiCreateCyclicField
    *Error* eval: undefined function - hiCreateCyclicField
    *Error* eval: undefined function - hiCreateStringField
    *Error* eval: undefined function - hiCreateStringField
    ....(several of these hiCreateStringField errors)..
    *Error* eval: undefined function - hiCreateStringField
    *Error* eval: undefined function - hiCreateSeparatorField
    *Error* eval: undefined function - hiCreateAppForm
    *Error* eval: undefined function - addToAMSMenu
    ccpCdbaUpdtr ran successfully ...
    ROD pcell code loaded
    ....

    Finally, I was skimming through the documentation and according to the
    Library Manager User Manual it should be possible to update a cell
    view by selecting it and using the "Design Manager -> Update" command,
    but this command is grayed-out for all the views/cells/libraries in my
    Library Manager!!! I am the only one working in this project so it's
    impossible that the cells could be checked out by somebody else....

    What' could be wrong here? Could it be that I am missing some
    definitions on my environment configuration scripts? Is it a design
    kit bug? :S

    ....As usual, thanks so much in advance for any help!!!

    Best regards,

    Jorge Luis.

    P.S.: By the way, I'm using icfb 5.10.41.500.3.49 with
    AustriaMicrosystems Hit-Kit v3.70.
     
    spectrallypure, Nov 6, 2007
    #5
  6. Svenn,

    It's historical. partName is a hangover from years back - and it was commonly
    used when PCB users used the schematic editor for their schematics too.

    Note that you can always use your own template (there's a cdsenv setting
    for this), rather than changing the Cadence installation.

    Or you could use the "analog" (or "artist") template which uses cdsName()
    instead and can thus be configured to show the cellName or the instance name
    (or nothing) - as well as cdsTerm() and cdsParam labels.

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 15, 2007
    #6
  7. This was my guess.
    If Cadence can wipe AWD, why not wipe the partName from the standard
    templates and let those few PCB designers using composer insert
    partName manually? Or, even better, let cellName and partName live
    happily together by introducing cellName as an additional label in the
    drop down selector and let cellName be default and partName be
    optional?
     
    Svenn Are Bjerkem, Nov 15, 2007
    #7
  8. Andrew,
    Could you please point to the exact entry(ies) that need to be
    modified/added to the .cdsenv in order tho accompish it?
    Where is this template located, and how can I configure it in order to
    perform the customization that you mention for choosing what to show?

    Thanks in advance for your help.

    Best regards,

    Jorge Luis.
     
    spectrallypure, Nov 16, 2007
    #8
  9. When you create cellview from celview, say symbol from schematic, you
    get a Symbol Generation Options dialog where you can assign pins to
    different sides of the symbol. At the bottom there is a select-button
    named Load/Save. If you select that one, the dialog will grow to give
    you additional input fields. Here you can define or redefine your
    templates.
     
    Svenn Are Bjerkem, Nov 16, 2007
    #9

  10. envSetVal("schematic" "tsgTemplateType" 'string "analog")

    will select the "artist" or "analog" template. You can define the location of
    the templates - and their names, by setting the following variable in your
    ..cdsinit file.

    tsgTemplateMasters = list(
    list("digital" (prependInstallPath "samples/symbolGen/default.tsg"))
    list("analog" (prependInstallPath "samples/symbolGen/artist.tsg"))
    list("artist" (prependInstallPath "samples/symbolGen/artist.tsg"))
    list("PCB" (prependInstallPath "samples/symbolGen/package.tsg"))
    list("metric" (prependInstallPath "samples/symbolGen/metric.tsg"))
    )

    The above shows the default - as covered in the sample file:

    <instdir>/tools/dfII/samples/local/schConfig.il

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 19, 2007
    #10

  11. I just checked, and the copy (with update copies only, but I don't suppose that
    matters) updated the partName property.

    From the SKILL errors, I'm wondering whether the libInit.il of the library
    (probably the technology library) is using some functions to display a form -
    which shouldn't really be done - because this should be capable of being loaded
    in executables without any UI. You might want to report it to AMS?

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 19, 2007
    #11
  12. Well, this is a rather different scenario than AWD.

    AWD is rather old technology, and not really amenable to being updated to add
    new capabilities that users demand. It's written in a rather archaic language
    (RATFOR) for a start, and so a modern replacement was needed. The Java
    implementation of the wavescan GUI is gradually being replaced with a Qt
    implementation for the GUI - so some of your Java concerns will be addressed by
    that.

    The partName issue is something that is very easy to workaround, and many
    customers change the templates to suit their needs. Because there are probably a
    number of users that depend on partName still existing, it's rather hard to
    change the default - it's not going to be just PCB users - that's just the
    history behind it.

    Regards,

    Andrew.
     
    Andrew Beckett, Nov 19, 2007
    #12
  13. Andrew & Svenn,

    Thanks so much for your help. I tried the templates approach and works
    great; I'll use it from now on for my new projects.

    However, now I am a little confused because of your last response,
    Andrew...
    How exactly did you manage to succeed to have the partName property
    updated after the copy operation? (you mean you got it updated without
    using any special templates, or am I getting it wrong?) ...So, after
    all, is it possible or not to get the partName properties updated
    (without using templates)?

    By the way, I tried to use a different design kit to see if things
    worked, but with no luck. Using the IBM PDK for tech 7WL 0.18u, I
    still cannot get the copies to have their partName updated. So I guess
    it's not the design kit's fault... why on earth I cannot make it work
    while the others can?!

    As always, thanks a lot for your advices.

    Regards,

    Jorge.
     
    spectrallypure, Nov 24, 2007
    #13
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.