Get email delivery of the Cadence blog featured here
Last week I got to attend a "Social Media Summit" here at Cadence. Jeepers, a "summit." I feel so important. Anyway, being the kind of person I am, one of the things that stuck in my mind was that they told us not to "tweet aggressively." Got it. Should I ever decide to "tweet", I promise to do so in a completely non-threatening manner. Seriously though (since it's quite likely our summit leaders are reading this) there was loads of great content in the meeting. Thanks folks! Hopefully I can make good use of some of the tips.
On to today's ADE XL topic. This article is concerned more with nuts-and-bolts and less with flashy user interfaces than usual, but hey, we're engineers, right? We like to know how things are put together. So, let's talk about what kinds of data ADE XL stores, where it keeps it and how you can control it.
3 types of data
ADE XL divides the data it deals with into 3 categories.
This is the information you put into ADE XL. In the past several posts, I've told you how to set up tests and create output expressions. These simulation setups are stored in the adexl view in a subdirectory called "test_states", similar in structure to the ADE states directories you're already familiar with. I haven't written anything here about specifications. I think I'll leave that as an exercise for the reader. (Hint: In the Outputs Setup pane, next to one of your expressions, double-click in the column labeled "Spec".) Specifications, along with variables, parameters, sweeps and corners (each to be the subject of future articles) are collectively referred to as the Setup DB. This is stored in the adexl view you created when you selected Launch->ADE XL.
This is the information you put into ADE XL.
In the past several posts, I've told you how to set up tests and create output expressions. These simulation setups are stored in the adexl view in a subdirectory called "test_states", similar in structure to the ADE states directories you're already familiar with.
I haven't written anything here about specifications. I think I'll leave that as an exercise for the reader. (Hint: In the Outputs Setup pane, next to one of your expressions, double-click in the column labeled "Spec".) Specifications, along with variables, parameters, sweeps and corners (each to be the subject of future articles) are collectively referred to as the Setup DB. This is stored in the adexl view you created when you selected Launch->ADE XL.
You know what this is -- the output generated by the simulator. PSF, SST2, PSF XL, etc.
The ADE XL Results DB contains the values for all your output expressions -- essentially everything that gets evaluated after the simulation is finished. It's organized in a format to easily generate those big tables you see when you run sweeps and corners.
The locations for storing the waveform files and the Results DB are controlled by 3 environment variables. (I'll use the syntax you'd need for setting these in your .cdsinit file.)
projectDir envSetVal("asimenv.startup" "projectDir" ‘string "<path>")
You may already be using this variable. This is the same way you set the location for the simulation output in ADE L. This defaults to $HOME/simulation.
saveResDir envSetVal("adexl.results" "saveResDir" ‘string "<path>")
If specified, this controls where the waveforms and netlist directories get saved.
saveDir envSetVal("adexl.results" "saveDir" ‘string "<path>")
If specified, this controls where the ADE XL Results DB gets saved. This defaults to a subdirectory called, appropriately enough, "results" in the adexl view.
That said, here's a handy little table illustrating where things get saved when any of these variables are set.
(If you are working with an adexl view in read-only mode, and you don't set the saveDir variable, the Results DB will be saved to the projectDir).
In ADE XL, the Options->Save... dialog has section at the bottom where you can specify where you want to save the Simulation Results (Waveforms) and the ADE XL Results Database.
Bonus Tip: Copying ADE XL Views
Use the Library Manager to copy adexl views (or cells or libraries which contain adexl views). Set the following in your .cdsinit file in order to make the copy work correctly:
envSetVal("ddserv.lib" "enableCopyInDFII" ‘boolean t)
envSetVal("cdsLibManager.copyGlobals" "mpsRadio" ‘toggle t)
Then, if you want to copy just the Setup DB, just do a regular copy in the Library Manager.
If you want to copy both the Setup DB and the Results DB, select Update Instances->Of New Copies Only when you do the copy.
If you want to copy all 3 types of data (Setup DB, Results DB and Waveforms), set the additional variable: envSetVal("adexl.cpupdtr" "copyResultsData" ‘boolean t) and copy as in the previous example.
That's all for now. Hopefully I haven't confused anyone too much. If I have, leave a comment and we'll try to sort it out...
Hi Ramesh, Yes, absolutely. Each test under an ADE XL view can reference different configs, different schematics, different states, different simulators.
Can I use different config views for different tests under one ADEXL state
Sorry, ADE XL is only available in IC6.X.
Hi, Is it possible to get the values for all the output expressions in IC 5.14.1 also?? As i dont seem to find any results DB in it.
Hi, Actually, I have found that I don't even need to set the mpsRadio environment variable. The default value works correctly (although I'm not sure if I've tried it in 6.1.4--just 6.1.5). As for the test states library not getting modified, that is a known issue. The original intention was that the tests in an ADE XL view could be pointing to many different libraries independent of the library the adexl view was in, so updating their paths would not be always desirable. However, we have gotten this request from several customers, so we are currently investigating it for an upcoming release. Thanks, Stacy
I'm having trouble copying the adexl views using the advice given in this article. From the documentation in the ic614 release it seems that the environment variable needs to declared as follows:
cdsLibManager.copyGlobals mpsRadio toggle (sessionCopy libmgrCopy). It is unclear to me whether I should use (t nil) or (nil t). So I tried them both but there were still some problems around copying the adexl view. It seems that the design library referenced by the test_states are still that of the old library after the Library Manager copy was done. I managed to work around this by manually editing the data.sdb file in the adexl view folder. I also changed the library path names deeper down into the adexl view folder. It is possible to work this way, but it does not feel like a very fluent solution.
Does anyone know how to use a config file correctly with ADEXL? When I open up both the config file and the schematic, then open up ADEXL from the schematic window, it shows that I am using the config file in the top of the window. But when I make changes to the config file, ie using an extracted parastic view instead of schematic view- How do I put these changes into effect? When I netlist from ADEXL, after making changes to config view, it doesnt seem to take into account the changes to the config view for the cell.... Any help would be appreciated...
No, you shouldn't need to use "save setup state". Any expressions you create in ADE XL should be saved when you hit the save button in ADE XL. They are also saved automatically when you run a simulation. As long as the expression appears in the ADE XL Output Setup panel, it should be saved. If this is not the case, please file an SR with Customer Support and I'm sure they can help you.
If i create an output expression (for say measuring the slew rate of my output wave) in ADEXL, and this new expression is not yet saved in any of the states. If i just save my ADEXL view as a cellview using the save button inside ADEXL, my expressions are not retained when i quit and re-load the cellview. Should i use "save setup state" to save my expressions?
Gosh, I'm sorry I didn't see this earlier. Our comment notification system is a bit problematic at times.
Actually, ADE XL automatically saves the results of each run. If you take a look at the History tab in the Data View assistant, you'll likely see a bunch of "Interactive.X" entries representing past simulation runs. The number of entries which are saved is controlled under the Options->Save... dialog from ADE XL.
More importantly, if you RMB (right mouse button) on a history item, you can select "Lock" to make sure those results will not be deleted when you hit the maximum number of saved entries.
(If you double-click on the title of the entry--"Interactive.X"--before you lock it, you can change it's name to something more meaningful)
I hope this helps.
Do you know, in ADE XL, how I can save the simulation results (especially waveforms) to some other places like we used to "Results->Save..." in ADE L?
I am trying all different settings for my testbenches, and need to store the results to somewhere else to prevent it from being deleted if I rerun the sims with a different setting.
Simply going into the results/data (under adexl view directory) and changing the subdirectories' name do not seem working properly...