• 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. Plot an internal node voltage after post-layout simulat...

Stats

  • Locked Locked
  • Replies 9
  • Subscribers 129
  • Views 26444
  • 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

Plot an internal node voltage after post-layout simulation

YutaoLiu
YutaoLiu over 6 years ago

Hi,

I am using  Virtuoso ADE Assembler for post-layout simulation. And the version is ICADV12.3-64b.main.957.

My steps is following

1)I set "save all", ran post-layout sim (transient sim) and get the signal expression from result browser as below,

 v("/i0/Xith0/Xi0/Xthpsf_combo/Xampp/Xth_psf/Xth_sw[0]/Mpassgate2[0]:SRC" ?result "tran").

2) Put the expression in "Outputs Setup", changed Output Save setup back to "Select". Reran the post-layout sim.

It showed "eval err" for that plot. 

The expression of the internal node seems different from the normal output expression

The circuit is big and I will run the simulation with parameter sweep, so I want to set Output Save as "Select" to save hard disk space. 

What should I do to plot the internal node signal in post-layout sim?

Thanks and regards,

Yutao

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 6 years ago

    Dear YutaoLiu,

    YutaoLiu said:

    2) Put the expression in "Outputs Setup", changed Output Save setup back to "Select". Reran the post-layout sim.

    It showed "eval err" for that plot. 

    The expression of the internal node seems different from the normal output expression

    That is correct. There are two options I use to save a selected net. I'm sure other experts have better or different means.

    1. Option 1

    In your netlist directory for one of the simulations, locate the specific node you want to save. The syntax in the nelist can be included in a separate save() statement that can be included with your netlist for simulation. The syntax will be different than the browser.

    2. Option 2

    Create a simple ocean script as follows:

    simulation ('spectre)

    results = strcat ("<path to your psf directory>")

    openResults( results)

    selectResult("tran")

    ocnPrint(?output "outputs.txt" outputs())

    exit()

    Run the ocean script using the path to your results where you did a "save all" and it will create a list of all your outputs in a text file "outputs.txt" that can be used in a save() statement with the proper syntax.

    I hope this helps.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • YutaoLiu
    YutaoLiu over 6 years ago in reply to ShawnLogan

    Hi Shawn,

    Thanks for your reply.

    I would prefer the first option.

    Instance name of the circuit I am looking at is "i0", and the node of interest in the netlist is shown as "Xith0/Xi0/Xthpsf_combo/Xampp/Xth_psf/Xth_sw[0]/Mpassgate2[0]:DRN" 

    So, in the save statement, I wrote as following

    "simulator lang=spectre

    save i0.Xith0\\/Xi0\\/Xthpsf_combo\\/Xampp\\/Xth_psf\\/Xth_sw\[0\]\\/Mpassgate2\[0\]*"

    and in the output setup I defined an expression as following

    "v("i0.Xith0\\/Xi0\\/Xthpsf_combo\\/Xampp\\/Xth_psf\\/Xth_sw\\[0\\]\\/Mpassgate2\\[0\\]:DRN" ?result "tran")"

    After simulation, I saw the node of interest is in the result browser, which means the save statement is correct. However, it still showed "eval error" in the ADE assembler GUI. And then I found that the expression changed automatically. A slash is added at the beginning of the net name, and the dot changes to slash. It is shown as below and the changed part is highlighted by underline

    "v("/i0/Xith0\\/Xi0\\/Xthpsf_combo\\/Xampp\\/Xth_psf\\/Xth_sw\\[0\\]\\/Mpassgate2\\[0\\]:DRN" ?result "tran")"

    After I changed the expression back to what it was and re-evaluated the result, the plot came out.

    Do you have the same experience? Do you know why the expression changes automatically every time the simulation run? Is there any problem I define the expression in the output setup?

    Thanks again,

    Yutao

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 6 years ago in reply to YutaoLiu

    Dear Yutao,

    Dear Yutao,

    YutaoLiu said:
    Do you have the same experience?
    YutaoLiu said:
    After simulation, I saw the node of interest is in the result browser, which means the save statement is correct.

    Great! Spectre did save the correct node for you!

    YutaoLiu said:
    However, it still showed "eval error" in the ADE assembler GUI. And then I found that the expression changed automatically. A slash is added at the beginning of the net name, and the dot changes to slash. It is shown as below and the changed part is highlighted by underline
    YutaoLiu said:
    Do you have the same experience? Do you know why the expression changes automatically every time the simulation run? Is there any problem I define the expression in the output setup?

    Yes. I have seen this issue before and simply change the syntax. In the GUI, the internal node uses a "/" for  the top level cell and precedes it with a "/" whereas in the netlist, it contains only a "." following the top level instance name. There needs to be a "/" to denote that the node is internal to the instance i0. in the GUI. Otherwise, it thinks the node is at the top level of your test bench. Some information on this is in the forum posting at URL:

    community.cadence.com/.../oceanscript-postsim-net-name

    To faciliate your effort, you might consider using a deepprobe in your test bench to directly access the node as a top level node. A deepprobe element uses th synatx of the node in the netlist (as you did) and essentialy makes the net a top level signal. Hence, syntax changes should be eliminated. Information on the deeprobe instance may be found at URL:

    solution 11017972

    or directly at URL:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nWEHEA2&pageName=ArticleContent

    I hope this helps Yutao! Others in the forum may have other and better suggestions.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan over 6 years ago in reply to YutaoLiu

    Dear Yutao,

    Dear Yutao,

    YutaoLiu said:
    Do you have the same experience?
    YutaoLiu said:
    After simulation, I saw the node of interest is in the result browser, which means the save statement is correct.

    Great! Spectre did save the correct node for you!

    YutaoLiu said:
    However, it still showed "eval error" in the ADE assembler GUI. And then I found that the expression changed automatically. A slash is added at the beginning of the net name, and the dot changes to slash. It is shown as below and the changed part is highlighted by underline
    YutaoLiu said:
    Do you have the same experience? Do you know why the expression changes automatically every time the simulation run? Is there any problem I define the expression in the output setup?

    Yes. I have seen this issue before and simply change the syntax. In the GUI, the internal node uses a "/" for  the top level cell and precedes it with a "/" whereas in the netlist, it contains only a "." following the top level instance name. There needs to be a "/" to denote that the node is internal to the instance i0. in the GUI. Otherwise, it thinks the node is at the top level of your test bench. Some information on this is in the forum posting at URL:

    community.cadence.com/.../oceanscript-postsim-net-name

    To faciliate your effort, you might consider using a deepprobe in your test bench to directly access the node as a top level node. A deepprobe element uses th synatx of the node in the netlist (as you did) and essentialy makes the net a top level signal. Hence, syntax changes should be eliminated. Information on the deeprobe instance may be found at URL:

    solution 11017972

    or directly at URL:

    https://support.cadence.com/apex/ArticleAttachmentPortal?id=a1Od0000000nWEHEA2&pageName=ArticleContent

    I hope this helps Yutao! Others in the forum may have other and better suggestions.

    Shawn

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 6 years ago in reply to ShawnLogan

    Shawn - FYI - this reply went to moderation because the system saw the repeated text in the post and thought it might be spam. It wasn't abusive, it was just the text analysis that's a bit dumb (better dumb than some of the spam we used to get in the past).

    Thanks for your help with answering posts here, I really appreciate it!

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ShawnLogan
    ShawnLogan over 6 years ago in reply to Andrew Beckett

    Dear Andrew,

    I honestly am far more thankful for the guidance you have provided me and so many others! Nevertheless, I much appreciate your kind, but totally undeserving words!

    Shawn

    • 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