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.
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...