• 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. Spectre S-parameter analysis

Stats

  • Locked Locked
  • Replies 12
  • Subscribers 125
  • Views 35877
  • 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

Spectre S-parameter analysis

cADEUser
cADEUser over 5 years ago

I am doing s-parameter analysis using spectre "SP" analysis.  Few question : 

1) I have placed 40 ports ( port from analogLib) and attached to the appropriate nodes in the circuit. I have numbered them as 1 to 40.  Do I need to tell the tool which ones is input and which ones are output ?

2) In the ADE analysis GUI I have given the port name in the following form. 

3) Is there any way to put all the S11/S12/S13......etc in the output so that I can view them in the result analysis as soon as the simulation is done ? 

4) How do I save the s-parameter result in a touchstone file format ? 

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

    Answering your questions:

    1. If you've specified the port number on the port component (in the parameter "Port Number"), and these are uniquely specified and are contiguous (i.e. you've not got a gap anywhere) then you don't need to specify the ports on the sp form. If you do specify the ports on the sp choose analysis form, then the order they are defined in on the form defines the numbering - so the first port is port 1, the second is port 2 and so on. The sp analysis then only computes the s-parameters between the ports specified on the form; if none are specified on the form, it uses all the ports in the schematic. There's no need to tell it which are inputs and outputs (in fact there's no such thing in s-parameter analysis - s parameters are computed between all specified ports and it's the numbering that defines which is which).
    2. The Sprobes field can be left blank. This is used if you've placed the sprobe component from analogLib, and as "spectre -h sp" explains, sprobe is a special testbench to allow in-situ probing of bi-directional impedances.
    3. I rather doubt you want all 1600 s-parameters plotted when you've completed the simulation. You can certainly pick the s-parameters you want via Results->Direct Plot->Main Form, pick the s-parameters you want (plotted the way you want) and use the "add to outputs" to add them into the ADE outputs. If you really want lots of them, you can export the outputs to a text file, edit the resulting CSV to add lots of rows with the many s-parameters you want to plot and re-import (via Outputs->Export and Outputs->Import in ADE L or Explorer).
    4. On the Options form for the sp analysis (at the bottom of the choose analysis form for sp there's an "Options" button), you can specify the file and datafmt parameters in the OUTPUT PARAMETERS section. Note that any relative filename (i.e. not a full path) will get written to the netlist directory.

    Regards,

    Andrew.

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

    Thanks a lot Andrew for the detail explanation. I got all the answer to all the questions except number 4. I don't see any "Option" button. Attaching the form here :

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

    I've never seen that before. Your form looks very odd - for a start, there are normally 4 columns of analysis names with the default font size. You're missing the options on the bottom of the form for "Do Noise" and also the Mode (Single Ended, Mixed In/Out, Other), and the Enabled checkbox, as well as the Options button. I tried to reproduce this by making my font size very large, starting ADE, bring up the form, and the changing the font size to be default again - and bringing up the form again. I get the two columns of analyses, but not the missing fields. 

    Can you please report:

    1. What does this return (make sure the ADE window is the current window) if you paste it in the CIW?
      maxnamelen=0
      foreach(name asiGetAnalysisNameList(asiGetCurrentSession())
        maxnamelen = max(hiGetTextWidth("label" get_string(name)) maxnamelen)
      )
      printf("Max Length is %L\n" maxnamelen)
    2. What does this return?
      getVersion(t)

    Regards,

    Andrew.

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

    I get the following : 

    (pz dcmatch stb tran envlp
    ac dc lf noise xf
    sp pss pac pstb pnoise
    pxf psp qpss qpac qpnoise
    qpxf qpsp hb hbac hbstb
    hbnoise hbxf sens acmatch hbsp
    include
    )
    Max Length is 81

    getVersion(t)
    "sub-version ICADVM18.1-64b.500.8 "

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

    OK, the max length is rather long (still don't know why that would lead to this problem, but worth pursuing to try to get some understanding). What does hiGetFontInfo("label") return?

    Also, did you get any errors in the CIW when you launched ADE or invoked the Choose Analysis form for the first time (I'd suggest starting in a fresh Virtuoso session and seeing whether that made a difference).

    I quickly tried in the same version as you (and hacked things to give 81 - for me it returns 47) and I get the two columns of analyses, but not the other problems. I wonder if the font metrics are messing things up - hopefully my request for info may help identify this?

    Andrew

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

    Here's what I get :

    ("label")
    (nil name "Open Sans" size 20
    bold nil italic nil
    )

    I dont get any error when I invoke ADE.  I tested it again. Here's what I get when I invoke ADE in CIW : 

    NOTE: Calling local ADE-XL session creation function: VCADadexlLocalSessionCreationCB
    WARNING (ADE-5033): Cannot find the environment variable 'ParestMode' for tool 'spectre.opts'.
    Its internal default value will be used.
    WARNING (ADE-5033): Cannot find the environment variable 'ParestModel' for tool 'spectre.opts'.
    Its internal default value will be used.
    WARNING (ADE-5033): Cannot find the environment variable 'ParestCapScale' for tool 'spectre.opts'.
    Its internal default value will be used.
    WARNING (ADE-5033): Cannot find the environment variable 'ParestResScale' for tool 'spectre.opts'.
    Its internal default value will be used.
    WARNING (ASSEMBLER-2467): Outputs that save or plot terminal voltages are supported from IC6.1.8 or ICADVM18.1 ISR3 onwards. These outputs are deleted if you open the cellview with an earlier version of Virtuoso.

    This is a big problem for me Andrew if I am missing stuff in the forms. I might be missing other stuff in the other forms as well. 

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

    Hi Andrew,

    I think I have found the issue. For the my monitor I had to change the default virtuoso font size and that was messing up the text in different forms.  At that time I contacted the Cadence AE and they suggested to to use the following env setting before opening virtuoso. 

    setenv CDS_2DFORM_FONT_SCALING 1

    So I did that and it fixed all the text wrap around issue. But looks like it caused some of the items to disappear from the Form. Now I exited virtuoso and unsetenv that variable and re-opened that. Now when I open the Form I see the "Option" button that you were referring to. But all my text are messed up and wrapped around ( please see below ). It becomes so bad in some of the Form that I can't read anything. How do we solve this issue ?  Why is this "setenv CDS_2DFORM_FONT_SCALING 1" causing some of the items to disappear ?

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

    I'd come to the same conclusion - that you have a very large font size and this (not intended to be widely used yet, as it's under investigation in the field) env var to deal with older 2D forms that use a coordinate-based approach for field placement. Whilst there is an article on the support site which references this env var, I'm not sure it should be published yet (or if it should, it doesn't have enough caveats).

    I found that with a font size of 20 and the env var set, I do still get the Options field and so on, but they are a long way down the form (and I have scroll bars to reach them). Your initial image appears to not have scrollbars on the right, but maybe that's just how  you did your screenshot? Is there a scrollbar on the right hand side?

    Anyway, if you have a 20 point font then the fields will absolutely overlap normally on these older 2D forms (unfortunately most forms in Virtuoso are done this way). You can solve that by going to Options->Fonts in the CIW and hitting the "Defaults" button and OK. This will prevent the overlaps, but of course it might be challenging to see on a very high DPI screen. The env var was an attempt to magically handle 2D forms correctly but ion some more complex forms it doesn't work that well.

    You should work with customer support to report this, but I don't think there's an easy fix right now.

    Regards,

    Andrew.

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

    I had a scrollbar with the env var set and check scroll all the way down and right side. I still did not see the "Option" button.  With the default font size I literally can't see anything. It's so small I would need a powerful magnifying glass. This is a pretty bad font design consider most of the people uses high resolution monitor these days and many EDA tools can easily handle large font size. I will report this to customer support.

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

    There's a lot of history here. The UI technology in Virtuoso has changed significantly several times over the years, but we've had to retain compatibility with code that was written 25 or more years ago. Until IC617 when Qt Layouts were made available in the UI infrastructure (from SKILL), forms were coordinate based, which didn't then scale well as font sizes changed - in general people only made small changes to font sizes because there weren't really any high DPI displays in use.

    The ADE infrastructure has an additional challenge, in that it needs to continue supporting both our own simulator integrations and third party integrations which have been using this UI infrastructure for years. We've been going around many of the forms in Virtuoso (and there are a lot of forms) and changing them to use the new hi Layouts which are then scalable - rather than the coordinate based approach. We then introduced (via an environment variable for experimental purposes since we weren't sure it would work everywhere) the env variable that you mentioned (this was introduced only one ISR (hot fix) before the version you were using). Given that the ADE infrastructure tries to compute the sizes of various UI components dynamically based on content and font sizes, the mechanisms seem to be fighting.

    This isn't really an excuse - just an explanation as to why it is why it is. Obviously we need to revisit every form and the ADE extensible infrastructure for third party integrations (OASIS) and fix it to use the newer hi Layouts, but this is a lot of work which has to be balanced against all the many, many other things that customers need us to do to get new capabilities to verify their designs, handle performance issues with large volumes of data and so on.

    I did have the options button showing - but clearly it was messed up:

    Here's the bottom of the scroll bar:

    Now for the good news. I tried the versions after the one  you're using, and if I use the very latest hotfix (ISR10) then the form then behaves properly (with the scaling env var, and the 20 point fonts you're using):

    So if you can switch to the latest hotfix, I think you'll be OK.

    As a workaround, with the form open (make sure you click in one of the fields on the form) I think you can enter this in the CIW:

    errsetstring(hiGetCurrentForm()->sp_asiiOptionsFormButton->_callback)

    and it will bring up the Options form.

    Regards,

    Andrew.

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

    There's a lot of history here. The UI technology in Virtuoso has changed significantly several times over the years, but we've had to retain compatibility with code that was written 25 or more years ago. Until IC617 when Qt Layouts were made available in the UI infrastructure (from SKILL), forms were coordinate based, which didn't then scale well as font sizes changed - in general people only made small changes to font sizes because there weren't really any high DPI displays in use.

    The ADE infrastructure has an additional challenge, in that it needs to continue supporting both our own simulator integrations and third party integrations which have been using this UI infrastructure for years. We've been going around many of the forms in Virtuoso (and there are a lot of forms) and changing them to use the new hi Layouts which are then scalable - rather than the coordinate based approach. We then introduced (via an environment variable for experimental purposes since we weren't sure it would work everywhere) the env variable that you mentioned (this was introduced only one ISR (hot fix) before the version you were using). Given that the ADE infrastructure tries to compute the sizes of various UI components dynamically based on content and font sizes, the mechanisms seem to be fighting.

    This isn't really an excuse - just an explanation as to why it is why it is. Obviously we need to revisit every form and the ADE extensible infrastructure for third party integrations (OASIS) and fix it to use the newer hi Layouts, but this is a lot of work which has to be balanced against all the many, many other things that customers need us to do to get new capabilities to verify their designs, handle performance issues with large volumes of data and so on.

    I did have the options button showing - but clearly it was messed up:

    Here's the bottom of the scroll bar:

    Now for the good news. I tried the versions after the one  you're using, and if I use the very latest hotfix (ISR10) then the form then behaves properly (with the scaling env var, and the 20 point fonts you're using):

    So if you can switch to the latest hotfix, I think you'll be OK.

    As a workaround, with the form open (make sure you click in one of the fields on the form) I think you can enter this in the CIW:

    errsetstring(hiGetCurrentForm()->sp_asiiOptionsFormButton->_callback)

    and it will bring up the Options form.

    Regards,

    Andrew.

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

    Thanks Andrew for the details. Both of your suggestions worked. I tested ISR11 and it worked.  Also this method gave me the form "errsetstring(hiGetCurrentForm()->sp_asiiOptionsFormButton->_callback)". Is that generic that I can use in other forms as well just in case, by changing <analysis>_asii<button>_callback ?

    Anyway ...looks like ISR11 has the fixes which is good. 

      

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

    The expression should be generic - at least I think it's always errsetstring(hiGetCurrentForm()->analysis_asiiOptionsFormButton->_callback) . I wouldn't try to generalise it to other things on the form.

    If you're running ISR11, that must be an early access build since ISR11 isn't released yet (the fix seems to be in the released ISR10 too). Anyway, glad it's working now...

    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