• 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 Design
  3. Swapping in DSPF netlists using the Hierarchy Editor?

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 125
  • Views 16572
  • 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

Swapping in DSPF netlists using the Hierarchy Editor?

ckteng
ckteng over 9 years ago

Hi, I'm using UltraSim.

Is there a way to swap in DSPF netlists using the Cadence Hierarchy Editor so that when I netlist using ADE I get DSPF netlists for certain cells (as controlled by the Hierarchy Editor)?

The current method I'm aware of is using the Simulation -> Options -> Analog and stitching in the DSPF.

Thanks!

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

    Marc,

    If you had been using spectre, there's an easy way using Setup->Simulation Files->DSPF ... which tells it to include the DSPF and use the terminals from the schematic block so that means you don't have to worry about pin orders and so on. This isn't available for UltraSim so we need to use a slightly more complicated approach.

    First of all, in the hierarchy editor, you can use RMB->Set Cell View->Specify SPICE Source File over the cell you wish to switch to DSPF. Then navigate to the DSPF file you wish to use for the block. 

    This will then cause the netlister to stop at that cell, and also add an include statement to include the DSPF.

    For this to work, the termOrder in the CDF has to be correct and match the DSPF. There are a couple of ways of achieving this:

    1. If using QRC to generate the DSPF, it offers the choice of specifying the pin order for the DSPF. You can copy this from the spectre simulation information in the CDF into the QRC form, and then the DSPF file will have a terminal order that matches the CDF. Of course, it's important that the CDF termOrder is up to date - and you can achieve that by opening the schematic and typing: artGenerateHierSymbolCDF(geGetEditCellView()) in the CIW.
    2. Alternatively, use Tools->CDF->Edit CDF, select Base, and pick your cell that you wish to replace with the DSPF. Using the Simulation Information tab, switch to spectre as the simulator, and then update the termOrder field to match the order in the DSPF. Note that the names in this field must be the names on your schematic/symbol, so if there's any discrepancy between the names used in the DSPF and the symbol you'll need to take care of that here (typically this would be bus delimiters). A difference is OK, because spectre/Ultrasim will connect by order, so you just need to ensure that the order of the symbol pin names matches the order of the DSPF pin names.

    Having done this, just simulate as normal in UltraSim. No stitching needed. However, be aware that UltraSim's ability to partition will be compromised by doing this - it won't be able to use isomorphism because it's dealing with a flat design. Stitching allows it to use the original hierarchy for isomorphism and partitioning, and then add the parasitics afterwards. Stitching is more complex though and harder to get "complete"...

    Regards,

    Andrew.

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

    Marc,

    If you had been using spectre, there's an easy way using Setup->Simulation Files->DSPF ... which tells it to include the DSPF and use the terminals from the schematic block so that means you don't have to worry about pin orders and so on. This isn't available for UltraSim so we need to use a slightly more complicated approach.

    First of all, in the hierarchy editor, you can use RMB->Set Cell View->Specify SPICE Source File over the cell you wish to switch to DSPF. Then navigate to the DSPF file you wish to use for the block. 

    This will then cause the netlister to stop at that cell, and also add an include statement to include the DSPF.

    For this to work, the termOrder in the CDF has to be correct and match the DSPF. There are a couple of ways of achieving this:

    1. If using QRC to generate the DSPF, it offers the choice of specifying the pin order for the DSPF. You can copy this from the spectre simulation information in the CDF into the QRC form, and then the DSPF file will have a terminal order that matches the CDF. Of course, it's important that the CDF termOrder is up to date - and you can achieve that by opening the schematic and typing: artGenerateHierSymbolCDF(geGetEditCellView()) in the CIW.
    2. Alternatively, use Tools->CDF->Edit CDF, select Base, and pick your cell that you wish to replace with the DSPF. Using the Simulation Information tab, switch to spectre as the simulator, and then update the termOrder field to match the order in the DSPF. Note that the names in this field must be the names on your schematic/symbol, so if there's any discrepancy between the names used in the DSPF and the symbol you'll need to take care of that here (typically this would be bus delimiters). A difference is OK, because spectre/Ultrasim will connect by order, so you just need to ensure that the order of the symbol pin names matches the order of the DSPF pin names.

    Having done this, just simulate as normal in UltraSim. No stitching needed. However, be aware that UltraSim's ability to partition will be compromised by doing this - it won't be able to use isomorphism because it's dealing with a flat design. Stitching allows it to use the original hierarchy for isomorphism and partitioning, and then add the parasitics afterwards. Stitching is more complex though and harder to get "complete"...

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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