• 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. Modify netlist of a block and resimulate (CDL.... CDF.....

Stats

  • Locked Locked
  • Replies 1
  • Subscribers 125
  • Views 17262
  • 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

Modify netlist of a block and resimulate (CDL.... CDF....)

cozdag
cozdag over 11 years ago

Hello everyone,

I am trying to pinpoint a layout error mechanism by modifying the av_extracred view netlist and resimulating the testbench. I have managed to create a manually written netlist as a spectre view before by following this tutorial:

http://www.cadence.com/blogs/rf/archive/2009/01/07/tip-of-the-week-how-to-simulate-a-subcircuit-netlist-with-spectre-in-ade.aspx

 But it was just a single resistors, and the library binding as I understand was by default analogLib, so it was relatively simple.

 This time, I want to modify a netlist with mosfets from TSMC and capacitors from analogLib (C extraction of a switch architecture I'm trying out). I got the netlist exported from CIW---> File ---> Export ---> CDL ---> choose the library/cell/view name and left all other options at default. Here is the output: http://www.pastebin.ca/2519207

When I try to simulate this block using the technique in the tutorial I linked above, (CIW ---> CDF ---> Edit ---> ...) I get the following error:

================================ 

Notice from spectre in `sw3_and_constantvgs_1_editable', during circuit

        read-in.

    "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        159: Use subckt `PD' as the master of `MI8|M0'

    "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        160: Use subckt `PD' as the master of `MM28'

    "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        161: Use subckt `PD' as the master of `MM27'

    "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        162: Use subckt `PD' as the master of `MI7|M0'

    "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        163: Use subckt `PD' as the master of `MM25'

        Further occurrences of this notice will be suppressed (except in log

        file).

Error found by spectre in `sw3_and_constantvgs_1_editable', during circuit

        read-in.

    ERROR (SFE-400):

        "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        159: The instance `MI8|M0' does not have a valid master.

    ERROR (SFE-400):

        "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        160: The instance `MM28' does not have a valid master.

    ERROR (SFE-400):

        "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        161: The instance `MM27' does not have a valid master.

    ERROR (SFE-400):

        "/home/caglarozdag/projects/TMSCOZDAG/cadence/sw3/sw3_and_constantvgs_1_editable"

        162: The instance `MI7|M0' does not have a valid master.

...

etc.

================================ 

 

As far as I understand, capacitors in my netlists are taken from analogLib by default, so no problem there, just as it worked with my single resistor attempt. But the simulator is confused about how to handle the pchannel and nchannel mosfets.

 

If my understanding of the problem is correct, my question is: How can I bind these mosfets to the tsmc mosfet models? Do I have to do this during my netlist export? Do I have to do this during my CDF edit?

 Thank you very much,

-Caglar 

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

    Hi Caglar,

    First of all, I wouldn't use a CDL netlist to simulate with (unless it really was your only choice). CDL is a format that is SPICE-like, but is intended for physical verification. As a result, the model names are typically there to recognize a particular device, rather than matching the model name for simulation. Also, it won't have all the extracted parameters for each device, because LVS typically is not concerned with source/drain area & perimeter, LOD/STI/WPE parameters and so on. This is why you are getting lots of problems because the model names (subtypes in CDL) don't match the model names in your spectre models.

    So, what I would do is either get QRC to write out a SPICE file (rather than an extracted view), or I would produce a spectre netlist of the av_extracted view and take that as the source to modify. Whilst QRC does have the choice to output a spectre netlist directly, it does so by using an obsolete SPICE to spectre translator, and this flow is really not supported any more. Since many foundry PDKs only validate the extracted view flow, I would go for netlisting the av_extracted view.

    From IC616 ISR3 onwards, there is an option in ADE to include the subckt header for the top cellView - so if using that version you could open your extracted view, start ADE, and then turn on the top subckt option on the Setup->Environment form. Then do Simulation->Netlist->Create and then take your netlist for later modification.

    In earlier versions, use the hierarchy editor (or switch list in ADE) to include the av_extracted view in your normal testbench simulation. Then do a simulation->netlist->create and take the resulting netlist and chop out the subckt you are interested in.

    Hack this subckt to your heart's content, and then you can include it back in simulation using the approach suggested in Tawna's blog - the way you've been doing it so far.

    Kind Regards,

    Andrew.

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

    Hi Caglar,

    First of all, I wouldn't use a CDL netlist to simulate with (unless it really was your only choice). CDL is a format that is SPICE-like, but is intended for physical verification. As a result, the model names are typically there to recognize a particular device, rather than matching the model name for simulation. Also, it won't have all the extracted parameters for each device, because LVS typically is not concerned with source/drain area & perimeter, LOD/STI/WPE parameters and so on. This is why you are getting lots of problems because the model names (subtypes in CDL) don't match the model names in your spectre models.

    So, what I would do is either get QRC to write out a SPICE file (rather than an extracted view), or I would produce a spectre netlist of the av_extracted view and take that as the source to modify. Whilst QRC does have the choice to output a spectre netlist directly, it does so by using an obsolete SPICE to spectre translator, and this flow is really not supported any more. Since many foundry PDKs only validate the extracted view flow, I would go for netlisting the av_extracted view.

    From IC616 ISR3 onwards, there is an option in ADE to include the subckt header for the top cellView - so if using that version you could open your extracted view, start ADE, and then turn on the top subckt option on the Setup->Environment form. Then do Simulation->Netlist->Create and then take your netlist for later modification.

    In earlier versions, use the hierarchy editor (or switch list in ADE) to include the av_extracted view in your normal testbench simulation. Then do a simulation->netlist->create and take the resulting netlist and chop out the subckt you are interested in.

    Hack this subckt to your heart's content, and then you can include it back in simulation using the approach suggested in Tawna's blog - the way you've been doing it so far.

    Kind 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