You must have experienced and appreciated the new Virtuoso ADE product suite that is packaged with a lot of easy-to-use, productivity-enhancing, and robust features. Did you notice the tools also offer a new set of SKILL functions? Let’s learn about these functions. The new functions can be used with both Virtuoso ADE Explorer and Virtuoso ADE Assembler, and provide ease and efficiency in setting up regression flows from batch mode. These functions can be used only for the maestro cellviews, thus their names are prefixed with mae . You can have a quick look at the list of available functions in Cadence SKILL API Finder . Note: To open the Cadence SKILL API Finder window, click Tools -> Finder in the CIW. Let’s look at some of the benefits that these new functions provide. Ease of Use The mae functions are comprehensive, that is, each function takes care of most of the required elements itself. Thus, you can complete an action by using fewer commands as compared to an ADE XL script. In addition, the new functions always work in context of the current session and setup database, so you don't need to provide these values as arguments unless you are working with multiple sessions. This makes scripting much simpler! For example, if you need to load a maestro cellview, enable a test or a set of corners, run simulation, and save results, you can do this by using a just few commands, as shown below. session=maeLoadSetup("myLib" "myCell" "myView" ?mode "a") ; loads the active setup for the given cellview maeSetSetup(?test '("test1") ?enabled t) ; enables test 'test1' maeSetSetup(?corners '("corner1" "corner2") ?enabled t) ; enables two corners historyName=maeRunSimulation() maeExportOutputView(?fileName "simResults.csv" ?view "Detail") ; exports the simulation results to a csv file exit() Compatibility with the Existing SKILL Functions Used for ADE L and ADE XL There are mae functions for most of the common actions, but if there is any specific action for which an mae function is not available, you can use the existing axl or asi functions. For example, to find the parasitic run mode set in the given session, you can use the axlGetParasiticRunMode function and provide the setup database for the maestro session as an argument to that. Similarly, you can edit the model file for a test using the handle to the maestro test in the asiAddModelLibSelection function, as shown below. sess=maeLoadSetup("opamp090" "full_diff_opamp_AC" "maestro" ?mode "a") => "fnxSession0" Example 1: handleSDB=axlGetMainSetupDB(sess) => 1001 axlGetParasiticRunMode(handleSDB) => "No Parasitics/LDE" Example 2: testnames=maeGetSetup() => ("AC" "TRAN") testHandle=maeGetTestSession(car(testnames)) =>stdobj@0x21989b60 asiAddModelLibSelection( testHandle "../models/spectre/gpdk090.scs" "NN" ) => t Ability to Save Scripts Directly from the User Interface Another interesting feature is that if you have configured the setup, including the tests, outputs, run options, etc., in the Virtuoso ADE Explorer or Virtuoso ADE Assembler user interface, then you can save that in a script by running the maeWriteScript command from the CIW. Yes, that's a quick way to create a script, but that's not all! There's an additional benefit—since the saved script uses a reference to the cellview, if you make any change in the cellview later, the script will always be synchronized with it. No need to update the script to reflect the changes in the setup. Now, doesn't that sound useful? More Info For more details about these functions, refer to the following collateral: Introduction to MAE APIs in Assembler (RAK on Cadence Online Support) Virtuoso ADE Explorer and ADE Assembler SKILL Reference TeamADE
↧