• 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. How to find the transient operating point of MOS device...

Stats

  • Locked Locked
  • Replies 13
  • Subscribers 125
  • Views 17502
  • 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 find the transient operating point of MOS device while simulating extracted netlist

RFStuff
RFStuff over 5 years ago

Dear All,

We can find the  transient operating point of MOS device (see as below)  with non-extracted or pre-layout  netlist.

But, how it can be done when we are using extracted netlist (spf view of the block).

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

    Whilst we have added some stuff recently to support mapping of saved nodes into corresponding nodes in DSPF (this was added recently in IC618) I don't think the same has been done for saving operating point parameters this way (I may be mistaken, but I don't think it's been done). I would suggest contacting customer support as then we can check the status and if not file an enhancement request to cover that part too.

    In the meantime (you're using an older version; I can tell because the UI has changed), you would have to write some save statements in an include file, giving the name of the device in the DSPF file with the correct hierarchical name into the DSPF. I imagine that the DSPF might be flat, so you can uncover the instance name by looking into the DSPF and then it will be ITOP.someName:gm etc that you are saving (ITOP is whatever is the hierarchical name, using dot as hierarchy separator, of the instance of the DSPF block).

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Thanks a lot for your reply. Could you also tell how to add the save statements in an include file and how that include file be addded in ADE.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff
    1. Look at the syntax of the save statements saving this information in your current input.scs (at least when doing pre-layout simulation)
    2. Write similar lines in a file called (say) "save.scs" (make sure it has a .scs suffix to tell the simulator that the file is in Spectre syntax).
    3. Reference this file via Setup->Model Libraries or on the Definition Files field in Setup->Simulation Files in ADE

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    I followed the steps you have suggested. My extracted top cell name is clkdiv and its spf netlist has the following lines.  I need to find the transient operating point of the device MMNDRV0.

    Though in schematic the device MNDRV is --> MNDRV<1:0> with 48 fingers.

    I used the save command in .scs file as --> save clkdiv.XXI69.MMNDRV0:region

    But, When I simulated the testbench, following warnning is shown in outputLog as :- 

    Warning from spectre during initial setup.
    WARNING (SPECTRE-8282): `clkdiv.XXI69.MMNDRV0' is not a device or subcircuit instance name.
    WARNING (SPECTRE-8287): Ignoring invalid item `clkdiv.XXI69.MMNDRV0:region' in save statement.

    Could you please tell why this is happening.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff

    It means you've got the name wrong. For a start, is clkdiv the instance name of the extracted cell (you said the cell name) - it needs to be the instance name.

    Without seeing the extracted netlist (there's a bit of screenshot you've showed which is unclear to me what it is you've actually shown in the image), it's really hard to know what the right name is. I would suggest you contact customer support to get this resolved - it's really quite straightforward in practice.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to Andrew Beckett

    Hi Andrew,

    Yes, the Instance name is clkdiv and the cellName is rx_clkdiv.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to RFStuff

    XI69 is another instance below the top hierarchy of clkdiv. The MOS device MNDRV resides in XI69.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to RFStuff

    IN the instance XI69 schematic the device is like :- 

    and the more portion of the big netlist is as below:-

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff

    OK, the question is really what the MNDRV instances are called in the DSPF. You need to find those instances in the netlist - maybe they are not hierarchical (often transistor level DSPF is flat and doesn't have hierarchy in - so it might be clkdrv.MXXI69\/MNDRV0 - without knowing what the name is in the DSPF I can't guess.

    One approach you could take is this. Add this row into the Outputs->Save All form and then you'll end  up with a text file with all the hierarchical instance names (plus other info) at the location you want. 

    Judging by your other append, I think you (maybe) want:

    clkdiv.XXI69\.MMNDRV1\<0\>\@20:region

    You're going to need to escape any unusual characters. It's not obvious to me though whether the . in the instance name causes a problem. As I said, the best thing is to do this via support as a little experimentation might be needed - seeing the actual files rather than screenshots would really help.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff

    OK, the question is really what the MNDRV instances are called in the DSPF. You need to find those instances in the netlist - maybe they are not hierarchical (often transistor level DSPF is flat and doesn't have hierarchy in - so it might be clkdrv.MXXI69\/MNDRV0 - without knowing what the name is in the DSPF I can't guess.

    One approach you could take is this. Add this row into the Outputs->Save All form and then you'll end  up with a text file with all the hierarchical instance names (plus other info) at the location you want. 

    Judging by your other append, I think you (maybe) want:

    clkdiv.XXI69\.MMNDRV1\<0\>\@20:region

    You're going to need to escape any unusual characters. It's not obvious to me though whether the . in the instance name causes a problem. As I said, the best thing is to do this via support as a little experimentation might be needed - seeing the actual files rather than screenshots would really help.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • RFStuff
    RFStuff over 5 years ago in reply to Andrew Beckett

    Dear Andrew,

    Thanks a lot.

    As you have suggested --> "One approach you could take is this. Add this row into the Outputs->Save All form and then you'll end  up with a text file with all the hierarchical instance names (plus other info) at the location you want."

    I added the text file with its location as shown above. I ran the simulation and checked the file. But it is still blank.

    Could you please tell what I am missing here ?

    Kind Regards,

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff

    Did you ensure that the enabled checkbox is on? Did you make sure that "Where" is "file"? Can you post the line from the bottom of the input.scs where the textinst info statement appears?

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • RFStuff
    RFStuff over 5 years ago in reply to Andrew Beckett

    Dear Andrew,

    They are there as shown below.

    The portion of input.scs containing the save file textinst.txt

    #################################################

    modelParameter info what=models where=rawfile
    element info what=inst where=rawfile
    outputParameter info what=output where=rawfile
    designParamVals info what=parameters where=rawfile
    primitives info what=primitives where=rawfile
    subckts info what=subckts where=rawfile
    asserts info what=assert where=rawfile
    textinst info what=inst where=file \
    file="/home/user1/ADE_DATA/textinst.txt"
    save ckdiv\[0\] ckdiv\[1\] ckdiv\[2\] ckdiv\[3\] ck\[0\] ck\[1\] ck\[2\] \
    ck\[3\] ckb\[0\] ckb\[1\] ckb\[2\] ckb\[3\] ckvco_outp ckvco_outm \

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to RFStuff

    No idea - I've never seen this behave this way and not write the file (unless the path is wrong - but then I'd expect warnings in the log file). As I keep telling you, this would be better handled via customer support.

    Regards,

    Andrew.

    • 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