• 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. Automation in Calculator

Stats

  • Locked Locked
  • Replies 19
  • Subscribers 125
  • Views 15821
  • 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

Automation in Calculator

ElectronLearn
ElectronLearn over 4 years ago

Hi,

I have a design which have 100 nets and same measurements have to be done on them. Manually doing it in Visualization & Analysis XL calculator and adding expression to the ADEL seems never ending task. How can I automate it? Please help.

Thanks

Sheenu

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

    Sheenu,

    Probably the simplest (especially as you're using the elderly ADE L tool) would be to use Outputs->Export, then update the CSV file in a text editor or with a script, and then do Outputs->Import again,

    If you were using the newer Explorer tool you could use the maeAddOutput function to add output expressions using a loop to build the expressions you need.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    Is this function "maeAddOutput" available in ADEXL?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ElectronLearn

    No, but it is in ADE Assembler.

    ADE L/XL have been in "sunset mode" for a while, with no new developments. If you're using IC617 or later, you really should be adopting Explorer/Assembler if possible - there are all sorts of features, performance improvements, and automation that is possible with the newer tools that wasn't possible in the past.

    That said, if you're really constrained to ADE XL for some reason, in ADE XL there is the axlAddOutputExpr function which could be used instead.

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    Thanks Andrew. It would be great if u can help me locate this function also.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ElectronLearn
    ElectronLearn said:
    It would be great if u can help me locate this function also.

    What do you mean? I already told you the name of the function...

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    I meant to say where in the menu of ADEXL can I find functions. I hope this is not in calculator. Is it related to Ocean scripting?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ElectronLearn

    This is not a menu. This is a SKILL function that you could use to automate the creation of the outputs. Let me put together a simple example to show the principle. Are all the nets you are wanting to make these measurements at the top level of your testbench? So in other words, if I gave you a sample piece of code which created a bunch of similar output expressions (and you can adapt the code to change it to your desired output expression) based on the nets/wires selected in the testbench schematic, would that be OK? I'm trying to avoid you having to type a list of net names.

    Andrew

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    Oh I see, as I have always used the GUI, so I was not much aware of the programming languages, by way of which we can run things in virtuoso. Now I got your point. Surely a sample code would help. So it goes like this, I have to make a file and write code in it and then can run(load) it in CIW which will populate the expressions in ADEXL/Assembler, right?

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 4 years ago in reply to ElectronLearn

    OK, here's some sample code:

    procedure(CCFaddManyExpr(testName template 
        @key 
          (outNameTemplate "") 
          (session axlGetWindowSession()) 
          (nets geGetSelSet())
        )
      let((netNames netTable)
        ;--------------------------------------------------------------------
        ; this first bit is just to take selected wires, or a list
        ; of net names as strings, and uniquify and sort the list
        ;--------------------------------------------------------------------
        netTable=makeTable('netTable nil)
        foreach(net nets
          cond(
            (stringp(net) netTable[net]=t)
            (dbobjectp(net) && net~>net netTable[net~>net~>name]=t)
          )
        )
        netNames=sort(netTable->? lambda((a b) alphaNumCmp(a b)<0))
        ;--------------------------------------------------------------------
        ; Then loop through all the sorted net names and build expressions
        ; to add into the outputs
        ;--------------------------------------------------------------------
        foreach(netName netNames
          axlAddOutputExpr(
            session
            testName
            lsprintf(outNameTemplate netName)
            ?expr lsprintf(template netName)
          )
        )
        t
      )
    )
    

    I suggest you put this in a file, and then in the CIW, do:

    load("thefile") ; whatever file name you stored the code in is the argument (in quotation marks)

    Then having done that, have your ADE XL view open, and over the test name do right mouse->open design in tab. On the resulting schematic tab, select the wires on the nets you wish to add (you can also select in the navigator). Then if you wish to add an expression such as VT("/netname") then enter (in the CIW):

    CCFaddManyExpr("myTest" "VT(\"/%s\")" )

    The idea is that you use '%s' where you want the net name to be. The backslashes are do deal with embedded quotation marks within the string. So this could be something more complex, and you can also specify a name for the output too if you wish:

    CCFaddManyExpr("myTest" "settlingTime(VT(\"/%s\") 0 t 1e-07 t 1) - 5e-08" ?outNameTemplate "settling %s")

    In the above "myTest" is whatever test name you're adding the outputs for.

    Of course, if you don't like what it just added, you can select them all and delete interactively.

    Hope that help!

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    Thank u Andrew !

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Reply
  • ElectronLearn
    ElectronLearn over 4 years ago in reply to Andrew Beckett

    Thank u Andrew !

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
Children
No Data

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