• 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 env variable to control the trace name in the lege...

Stats

  • Replies 6
  • Subscribers 130
  • Views 236
  • Members are here 0

viva env variable to control the trace name in the legend

kolep
kolep 2 days ago

VIVA shows the legend like this : signal_name(CONFIG/library_name/cell=cell_view).

Is there a way to show it just : signal_name(cell_view) or signal_name(cell=cell_view)?

  • Cancel
  • Sign in to reply
Parents
  • Andrew Beckett
    Andrew Beckett 2 days ago

    I assume you have a "Config" sweep variable defined? I assume you have the legend set to "above" (under Graph->Properties and then the Graph Options tab)?

    I'm not sure it's currently possible to change the default trace naming convention (I did some quick checks), but there are at least some requests for customising this. I just wanted to check that this is indeed what you are doing?

    It's probably best to contact customer support (use the Case menu to submit a support case after logging in) to follow up on this.

    Andrew 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • kolep
    kolep 2 days ago in reply to Andrew Beckett

    yes and yes.

    you are correct. that is what exactly I am doing.

    I can manually change the trace name...but would like to automate this, if there is a way available.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 2 days ago in reply to kolep

    Yes, that should be possible (what I don't think is possible is to have a default naming convention that covers this). I'll write something during this afternoon.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 2 days ago in reply to Andrew Beckett

    If you load this code:

    /* abRenameConfigTraces.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date        
    Modified   
    By         
    
    Renames the traces in the current ViVA window to change any part which is
    of the form CONFIG/libName/cellName=viewName to just viewName.
    
    ***************************************************
    
    SCCS Info: @(#) abRenameConfigTraces.il 12/01/25.14:58:08 1.1
    
    */
    
    /***************************************************************************
    *                                                                          *
    *                 abRenameConfigTraces([wid [subwindow]])                  *
    *                                                                          *
    * All trace names with CONFIG sweep variables in, leave just the view name *
    *                 in the trace suffix to make it shorter.                  *
    *                                                                          *
    ***************************************************************************/
    
    procedure(abRenameConfigTraces(@optional (wid awvGetCurrentWindow()) subwindow)
      ;----------------------------------------------------------------------
      ; The pattern here defines the part to remove in the trace name
      ;----------------------------------------------------------------------
      let((currentNames (configPat pcreCompile("CONFIG/[^/]*/[^=]*=")))
        cond(
          (fixp(subwindow) subwindow=list(subwindow))
          (!subwindow subwindow=awvGetSubwindowList(wid))
        )
        ;--------------------------------------------------------------------
        ; Get the names for each subwindow, and then process them to remove the part
        ; matched in the pattern, then set the names back again
        ;--------------------------------------------------------------------
        foreach(subwin subwindow
          currentNames=awvGetWaveNameList(wid ?subwindow subwin)
          currentNames=list(
            car(currentNames)
            foreach(mapcar name cadr(currentNames)
              pcreReplace(configPat name "" 1)
            )
          )
          awvSetWaveNameList(currentNames wid)
        )
        t
      )
    )
    

    Then you can call abRenameConfigTraces() with the ViVA window you want to update as current, it will shorten all the CONFIG parts of the signal names in all sub windows (by default).

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Reply
  • Andrew Beckett
    Andrew Beckett 2 days ago in reply to Andrew Beckett

    If you load this code:

    /* abRenameConfigTraces.il
    
    Author     A.D.Beckett
    Group      Custom IC (UK), Cadence Design Systems Ltd.
    Language   SKILL
    Date        
    Modified   
    By         
    
    Renames the traces in the current ViVA window to change any part which is
    of the form CONFIG/libName/cellName=viewName to just viewName.
    
    ***************************************************
    
    SCCS Info: @(#) abRenameConfigTraces.il 12/01/25.14:58:08 1.1
    
    */
    
    /***************************************************************************
    *                                                                          *
    *                 abRenameConfigTraces([wid [subwindow]])                  *
    *                                                                          *
    * All trace names with CONFIG sweep variables in, leave just the view name *
    *                 in the trace suffix to make it shorter.                  *
    *                                                                          *
    ***************************************************************************/
    
    procedure(abRenameConfigTraces(@optional (wid awvGetCurrentWindow()) subwindow)
      ;----------------------------------------------------------------------
      ; The pattern here defines the part to remove in the trace name
      ;----------------------------------------------------------------------
      let((currentNames (configPat pcreCompile("CONFIG/[^/]*/[^=]*=")))
        cond(
          (fixp(subwindow) subwindow=list(subwindow))
          (!subwindow subwindow=awvGetSubwindowList(wid))
        )
        ;--------------------------------------------------------------------
        ; Get the names for each subwindow, and then process them to remove the part
        ; matched in the pattern, then set the names back again
        ;--------------------------------------------------------------------
        foreach(subwin subwindow
          currentNames=awvGetWaveNameList(wid ?subwindow subwin)
          currentNames=list(
            car(currentNames)
            foreach(mapcar name cadr(currentNames)
              pcreReplace(configPat name "" 1)
            )
          )
          awvSetWaveNameList(currentNames wid)
        )
        t
      )
    )
    

    Then you can call abRenameConfigTraces() with the ViVA window you want to update as current, it will shorten all the CONFIG parts of the signal names in all sub windows (by default).

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
Children
  • kolep
    kolep 20 hours ago in reply to Andrew Beckett

    This solution works amazingly! Thank you, as always!

    If there is a way to automatically execute the script after every simulation, it would be better.

    btw, I tried to put it in output expression, it does not work, so does not as well the expression for saving picture saveGraphImage which worked in ADE L.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 19 hours ago in reply to kolep

    Adding it as an output expression wouldn't help, because the graph has to have been plotted - and (normal) output expressions are evaluated in the expression evaluator process (or ICRP if using ICRP). Even the "all" output type wouldn't necessarily work.

    You could define a bindkey to call the function so you can easily press it after plotting.

    I did have some code which might help here in this article: How to set up and execute a Post Run Simulation OCEAN Script for ADE XL, Explorer, and Assembler simulations. Note, I didn't try it for this purpose though...

    Andrew

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to 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.

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

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