• 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. VIVA Plots across many Points

Stats

  • Locked Locked
  • Replies 6
  • Subscribers 126
  • Views 18069
  • 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

VIVA Plots across many Points

Cdub
Cdub over 5 years ago

Hello Cadence,

I am trying to plot the 3db point while varying the number of fingers and the finger width of two MOSFETs, I really only have the two variable though since the second mosfet matches the first one.

For some reason when I plot this after running adexl I only get points, It doesn't connect the dots, my guess is maybe there are too many variables; I haven't had this problem before. I guess my general question is how can I prevent this from happening? Also, how can I fix this in VIVA if I am to run into this problem again?

Thanks!
Charles

  • Cancel
Parents
  • ShawnLogan
    ShawnLogan over 5 years ago

    Dear Cdub,

    If I examine your plot, on the left panel, I can see there are three variables. Two, as you mention, have the same value. If am interpreting it correctly. As an example:

    M2     M2.fw     M3.fw

    1         1e-6         1

    1         4.55e-6    1

    1         8.11e-06   1

    ...

    11         1e-6         11

    11         4.55e-6    11

    Hence, it appears your plot is making a distinction in variables even thought their values are identical. Is there a reason you can't assign the same variable name to each instance? In this fashion, there are only two variables, one that can be treated as an x variable and one as a y variable. If you want to use the data you have now, you might export the data, save the two unique columns to a comma-separated variable file, use the ASCII file import function to read in your data and then use ViVA to plot the two columns.

    There may be other ways to accomplish this more efficiently, but this process came to mind as I read your post.

    Shawn

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

    Thank you Shawn for the reply. I was hoping for a way to do it all in ViVA, or adexl. I am editing M2.fingers and M3.fingers in the parameters section where I just set M3.fingers=M2.fingers and M2.fingers is between 1:1:100.

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

    Dear Cdub,

    Cdub said:
    was hoping for a way to do it all in ViVA, or adexl.

    The waveform function is a ViVA function and the ability to export data is also a Calculator function. The function to import the ASCII data is:

    getAsciiWave

    getAsciiWave( 
    t_filename
    x_xColumn 
    x_yColumn [ ?xskip x_x_skip ] [ ?yskip x_yskip ] [ ?formatFloat g_formatFloat ] [ ?xName t_xName ] [ ?xUnits t_xUnits ] [ ?yName t_yName ] [ ?yUnits t_yUnits ] ) => o_wave / nil

    Description

    Reads in an ASCII file of data and generates a waveform object from the specified data. The X-axis data must be real numbers. The Y-axis data can be real or complex values. Complex values are represented as (real imag) or complex(real imag). This function skips blank lines and comment lines. Comments are defined as lines beginning with a semicolon.

    Arguments

    t_filename

    The name of the Ascii file to be read in.

    x_xColumn

    The column in the data file that contains the X-axis data.

    x_yColumn

    The column in the data file that contains the Y-axis data.

    ?xskip x_xskip

    The number of lines to skip in the X column.

    ?yskip x_yskip

    The number of lines to skip in the Y column.

    ?formatFloat g_formatFloat

    A boolean when set to t converts the integer data into float values. Default value: nil.

    ?xName t_xName

    The name of the X-axis.

    ?xUnits t_xUnits

    The units for the X-axis.

    ?yName t_yName

    The name of the Y-axis.

    ?yUnits t_yUnits

    The units for the Y-axis.

    Value Returned

    o_wave

    The waveform object.

    nil

    Returns nil if the function fails.

    Example

    getAsciiWave("~/mydatafile.txt " 1 2 ) 
    => srrWave:32538648

    Reads in an ascii file ~/mydatafile.txt, which has x-axis data in the first column and y-axis data in the second column, and returns a waveform object.

    getAsciiWave("~/mydatafile.txt " 1 2 ?xskip 1 ?yskip 2) 
    => srrWave:32538656

    Reads in an ascii file ~/mydatafile.txt, which has x-axis data in the first column and y-axis data in the second column and skips 1 line in the x_xcolumn and 2 lines in the y_ycolumn, and returns a waveform object.

    getAsciiWave("/vout_tran_xy.csv" 1 2 ?xskip 1 ?yskip 1 ?formatFloat nil ?xName "Time" ?xUnits "Secs" ?yName "V(Out)" ?yUnits "V")

    Reads in an ascii file, vout_tran_xy.csv, which has x-axis data in the first column and y-axis data in the second column, skips 1 line in the x_xcolumn and 2 lines in the y_ycolumn, x- and y-axis names are Time and V(out), and x-and y-axis units are Secs and V respectively.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Reply
  • FormerMember
    FormerMember over 5 years ago in reply to Cdub

    Dear Cdub,

    Cdub said:
    was hoping for a way to do it all in ViVA, or adexl.

    The waveform function is a ViVA function and the ability to export data is also a Calculator function. The function to import the ASCII data is:

    getAsciiWave

    getAsciiWave( 
    t_filename
    x_xColumn 
    x_yColumn [ ?xskip x_x_skip ] [ ?yskip x_yskip ] [ ?formatFloat g_formatFloat ] [ ?xName t_xName ] [ ?xUnits t_xUnits ] [ ?yName t_yName ] [ ?yUnits t_yUnits ] ) => o_wave / nil

    Description

    Reads in an ASCII file of data and generates a waveform object from the specified data. The X-axis data must be real numbers. The Y-axis data can be real or complex values. Complex values are represented as (real imag) or complex(real imag). This function skips blank lines and comment lines. Comments are defined as lines beginning with a semicolon.

    Arguments

    t_filename

    The name of the Ascii file to be read in.

    x_xColumn

    The column in the data file that contains the X-axis data.

    x_yColumn

    The column in the data file that contains the Y-axis data.

    ?xskip x_xskip

    The number of lines to skip in the X column.

    ?yskip x_yskip

    The number of lines to skip in the Y column.

    ?formatFloat g_formatFloat

    A boolean when set to t converts the integer data into float values. Default value: nil.

    ?xName t_xName

    The name of the X-axis.

    ?xUnits t_xUnits

    The units for the X-axis.

    ?yName t_yName

    The name of the Y-axis.

    ?yUnits t_yUnits

    The units for the Y-axis.

    Value Returned

    o_wave

    The waveform object.

    nil

    Returns nil if the function fails.

    Example

    getAsciiWave("~/mydatafile.txt " 1 2 ) 
    => srrWave:32538648

    Reads in an ascii file ~/mydatafile.txt, which has x-axis data in the first column and y-axis data in the second column, and returns a waveform object.

    getAsciiWave("~/mydatafile.txt " 1 2 ?xskip 1 ?yskip 2) 
    => srrWave:32538656

    Reads in an ascii file ~/mydatafile.txt, which has x-axis data in the first column and y-axis data in the second column and skips 1 line in the x_xcolumn and 2 lines in the y_ycolumn, and returns a waveform object.

    getAsciiWave("/vout_tran_xy.csv" 1 2 ?xskip 1 ?yskip 1 ?formatFloat nil ?xName "Time" ?xUnits "Secs" ?yName "V(Out)" ?yUnits "V")

    Reads in an ascii file, vout_tran_xy.csv, which has x-axis data in the first column and y-axis data in the second column, skips 1 line in the x_xcolumn and 2 lines in the y_ycolumn, x- and y-axis names are Time and V(out), and x-and y-axis units are Secs and V respectively.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
Children
  • Andrew Beckett
    Andrew Beckett over 5 years ago in reply to FormerMember

    I don't think it should be necessary to  export the data and bring it in again.

    Please can you show an image of the parameters section in the Data View assistant so I can see the sweep setup more clearly? Also please show the expression that you're trying to plot in the outputs. This will help in trying to reproduce the problem and understand a way around it (otherwise I might guess and find something that works anyway).

    Also, please report what subversion of the IC tools you're using - Help->About will report this (or type getVersion(t) in the CIW).

    Thanks,

    Andrew

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

    That would be great! I have attached the pictures of my parameters and tests. I'm using IC6.1.7-64b.500.1; What do you think? 

    • 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