• 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. create DSPF/SPICE cellView using SKILL

Stats

  • Replies 6
  • Subscribers 143
  • Views 763
  • Members are here 0

create DSPF/SPICE cellView using SKILL

Albert
Albert 2 months ago

Hello,
Using Library Manager, I'm able to create DSPF and SPICE cellviews with the dedicated Cadence text editor. There's also a special button available: "Build a database of instances, nets, and pins found in file", which generates the necessary data and stores it under the view. After that, the view can be used in the config view without any additional actions to specify the DSPF/SPICE netlist location for the simulator.

However, I haven't found any SKILL functions that perform the same operation via the SKILL API.
Could you please suggest how to achieve this using SKILL?

Thanks in advance!

  • Sign in to reply
  • Cancel
  • henker
    henker 1 month ago

    It is documented on the description of dbOpenCellViewByType, esp. fourth and fifth argument (viewType and mode), though maybe not that clear on first sight. So you may follow this article first and look at the documentation afterwards, than it gets much clearer:

    support.cadence.com/.../ArticleAttachmentPortal

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 month ago in reply to henker

    The easiest way by far is to use the cdsTextTo5x UNIX program to import the dspf and create the shadow (netlist.oa) database:

    cdsTextTo5x -lib mylib -cell newcell -view dspf -lang dspf newcell.dspf

    The only public interface (I think) to generate the shadow database within Virtuoso is:

    cv=ddGetObj("mylib" "newcell" "dspf")
    teSaveWithDerivedData(cv)

    However, this only works if you have the view open in the graphical text editor.

    Following on from the suggestion above, you can also use this code to create textual views: How to create a text cellview using SKILL. However, that also doesn't help with generating the shadow database (the shadow database primarily contains info about the I/O of the cell for netlisting to succeed). The CDF also would need generating too.

    Andrew 

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Albert
    Albert 1 month ago in reply to henker

    Henker, thanks for the replay. Yes - I'm aware about dbOpenCellViewByType and "netlist" type as a fourth parameter - but this just creates dummy netlist.oa file without any information. And I don't see any possibilities how to add information about I/O pins.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Albert
    Albert 1 month ago in reply to Andrew Beckett

    Andrew, thanks for the advice!

    Yes — teSaveWithDerivedData works only in interactive mode and does not support batch mode.

    Regarding cdsTextTo5x — I tried it some time ago, but it didn’t work for me: no views were generated, and no errors were reported. However, today, after multiple attempts, I discovered that if the -cell option is specified, it must match the name of the subckt in the netlist — otherwise, nothing will be generated and no error will be shown.

    If the -cell option is omitted, then the cell name will default to the name of the subckt in the netlist.

    So yes — I confirm that cdsTextTo5x is a working solution for generating a proper cellView from DSPF and SPICE in batch mode.

    Thanks!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • henker
    henker 1 month ago in reply to Albert

    Ah, sorry, I misread and assumed that view creation was the problem.

    The public API behind the 'Build a database ...' button is hdlGenerateTextDatabase (available since IC6.1.7 ISR15). This creates the shadow database for analog and digital languages without requiring the text editor. It also creates the termOrder entry in the CDF simInfo and the property nlAction=stop, which are needed to have the netlist file of the view included in simulation.

    You can actually locate this by checking your CDS.log:
    After pressing the 'Build a database ...' button, you get an entry with "_teSaveAndExtract()" from the private text editor API (the naming is rather obvious). With that as starting point in the support, you'd get hits for hdlGenerateTextDatabase.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 month ago in reply to henker

    Thanks henker . I'd missed the fact that a public API had been added (previously there was a private function to do this. My mistake...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • 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