• 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 SKILL
  3. How to preserve the termOrder in the CDF parameters and...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 143
  • Views 6963
  • 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 to preserve the termOrder in the CDF parameters and the subckt in order in netlist when copying a schematic view

MFahmy
MFahmy over 2 years ago

Hi, 

I have noticed that when I create a netlist for a given schematic and then copy this schematic to a different library (no editing done) and netlist the copy I get different pin ordering in the pin list, and when looking in the CDF parameters termOrder I see they are different

- is there a way to preserver the termOrder when copying the schematic view 

- if not, how can I read the term order of a given schematic and set it in the copy from SKILL

Here is a snippet of the code I used to reproduce the issue

envSetVal("spectre.envOpts" "setTopLevelAsSubckt" `boolean t)
simulator('spectre)
design(lib_orig cell_orig view_orig)
createNetlist()

let((cv cv_new)
cv_orig=dbOpenCellViewByType(lib_orig cell_orig view_orig "schematic" "r")
dbCopyCellView(cv_orig lib_new cell_new view_new nil nil t)
dbClose(cv_orig)


cv_new=dbOpenCellViewByType( lib_new cell_new view_new "schematic" "a")
schCheck(cv_new)
dbSave(cv_new)
dbClose(cv_new)
)
design(lib_new cell_new view_new)
createNetlist()

comparing the two resulting netlists, I see that the terminals' order is different, and comparing the termOrder in the CDF Editor for the two schematic views , I see it is also different

Virtuoso version ICADVM20.1-64b 05/11/2023 
Sub-version ICADVM20.1-64b.500.28.EHF13629

Thanks, 

Fahmy 

  • Cancel
Parents
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Fahmy,

    When you copied the schematic, did you also copy the cell data.dm at the same time? If not, the CDF won't have been copied and hence the termOrder won't have been preserved. You could copy the CDF separately via Tools→CDF→Copy

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 2 years ago

    Fahmy,

    When you copied the schematic, did you also copy the cell data.dm at the same time? If not, the CDF won't have been copied and hence the termOrder won't have been preserved. You could copy the CDF separately via Tools→CDF→Copy

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • MFahmy
    MFahmy over 2 years ago in reply to Andrew Beckett

    I believe only the schematic was copied, as I used the dbCopyCellView(cv_orig lib_new cell_new view_new nil nil t) command

    maybe I am missing something obvious, but how can I copy the data.dm from my skill code along with the schematic 

    Thanks, 

    Fahmy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 2 years ago in reply to MFahmy

    Fahmy,

    Rather than copying the entire data.dm (this is something that the library manager copy offers), you could just use cdfCopyCDF()

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • MFahmy
    MFahmy over 2 years ago in reply to Andrew Beckett

    Thanks, it worked, but I noticed that after I copy the cdf when doing the cell copy, if later in the flow a check and save (schCheck(), dbSave()) is done, the termOrder is rest , although nothing really has changed related to the pins and some times nothing at all, is this expected ? is there a way indicate that the termOrder does not need update after a schCheck, I am using cdfCopyCDF with "baseCellData"

    Thanks,

    Fahmy 

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

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