Home
  • Products
  • Solutions
  • Support
  • Company
  • Products
  • Solutions
  • Support
  • Company
Community Forums Custom IC SKILL How to plot Transient Value for every DC value in DC sweep...

Stats

  • Replies 5
  • Subscribers 137
  • Views 1002
  • Members are here 0

How to plot Transient Value for every DC value in DC sweep in Cadence.

Tong011201
Tong011201 2 months ago

I am using Cadence 6.1.8 - 64b. I need to plot a result from the transient analysis (Settling Time: settlingTime(IT("/V0/PLUS") ymax(IT("/V0/PLUS")) nil value(IT("/V0/PLUS") 0.8m   ) nil 1 nil "time" ) ) for every DC voltage value in the DC sweep. Also, the x-axis needs to be another DC sweep output (Power:  (( IS("/N12/D") + IS("/P11/S") + IS("/P10/S") + IS("/N10/D") + IS("/N15/D")) * 3 +( IS("/P6/S") + IS("/N11/D") ) * 2.7 ) *4 ). I wonder how I can do that.

  • Reply
  • Cancel
  • Cancel
Parents
  • ShawnLogan
    ShawnLogan 2 months ago

    Dear Tong011201,

    Tong011201 said:
    I wonder how I can do that.

    One way might be:

    1. Define each (settling time and power) as outputs in Explorer or Assembler.

    2. Run the set of transient simulations as your vary the DC voltage.

    3. Plot each output in two Viva windows (settling time versus DC voltage in one plot and power versus DC voltage in a second plot)

    4. Export each waveform from Viva to distinct comma-separated variable files, say settling_time.csv and power.csv

    5. Create a new comma-separated variable file whose first column is the second column power.csv and whose second column is the second column of settling_time.csv. This can be done with a UNIX awk command, as an example:

    awk 'BEGIN{FS=",";} {print $2}' settling_time.csv > second_column_setting_time.csv

    awk 'BEGIN{FS=",";} {print $2}' power.csv > second_column_power.csv

    paste -d","  second_column_power.csv second_column_setting_time.csv > settling_time_vs_power.csv

    6. Use the function getAsciiWave() to create a waveform from your csv file "settling_time_vs_power.csv"  and plot the waveform; alternately use the SKILL function CCSCreateWaveCSV() at URL:

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

    Shawn

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
Reply
  • ShawnLogan
    ShawnLogan 2 months ago

    Dear Tong011201,

    Tong011201 said:
    I wonder how I can do that.

    One way might be:

    1. Define each (settling time and power) as outputs in Explorer or Assembler.

    2. Run the set of transient simulations as your vary the DC voltage.

    3. Plot each output in two Viva windows (settling time versus DC voltage in one plot and power versus DC voltage in a second plot)

    4. Export each waveform from Viva to distinct comma-separated variable files, say settling_time.csv and power.csv

    5. Create a new comma-separated variable file whose first column is the second column power.csv and whose second column is the second column of settling_time.csv. This can be done with a UNIX awk command, as an example:

    awk 'BEGIN{FS=",";} {print $2}' settling_time.csv > second_column_setting_time.csv

    awk 'BEGIN{FS=",";} {print $2}' power.csv > second_column_power.csv

    paste -d","  second_column_power.csv second_column_setting_time.csv > settling_time_vs_power.csv

    6. Use the function getAsciiWave() to create a waveform from your csv file "settling_time_vs_power.csv"  and plot the waveform; alternately use the SKILL function CCSCreateWaveCSV() at URL:

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

    Shawn

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
Children
  • ShawnLogan
    ShawnLogan 2 months ago in reply to ShawnLogan

    Dear Tong111201,

    A second way, which is easier, is to utilize the relatively new Calculator waveVsWave() function. Its function prototype and an example are at the URL:

    support.cadence.com/.../techpubDocViewerPage

    and

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

    respectively. In your case, the expression might read:

    waveVsWave(?x power,settling_time ?y "Power" ?xName "Power")

    Shawn

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • Tong011201
    Tong011201 1 month ago in reply to ShawnLogan

    I cannot access these two links since I am a student using a school's cadence license. Is there any way that I can view these without logging in?

    • Cancel
    • Up 0 Down
    • Reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 1 month ago in reply to Tong011201

    waveVsWave is documented in the help information shipped with Virtuoso (which is essentially what you'd be getting from the first link above; the second is just an example). 

    In Virtuoso, in any window, use the Help menu and in the type-in box at the top of the menu type "waveVsWave" and it should take you to relevant help.

    Andrew

    • Cancel
    • Up +1 Down
    • Reply
    • Cancel
  • Tong011201
    Tong011201 1 month ago in reply to Andrew Beckett

    Got it. Thank you.

    • Cancel
    • Up 0 Down
    • 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.

© 2023 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information