maeReadResDB
maeReadResDB( [?historyNamet_historyName] [?sessiont_sessionName] [?runt_runName] ) =>h_resultsDBObj/ nil
Description
Returns a handle to the results database for the given history.
This handle provides read-only access to the results database that contains objects of the following types:
- point: A design point
- corner: A corner defined for a particular design point
- test: A test defined for a particular corner
- param: A parameter defined for a particular corner
- output: An output defined for a particular test
There is a hierarchical relationship between the instances of these objects. For example, a point is associated with one or more corners. Each corner is associated with one or more tests. Each test is associated with zero or more outputs, and so on. As a result of this relationship, for an object, you can access the properties of the object itself and other objects related to it.
-
Three properties,
name, which returns the name of the object;value, which returns its value; and a property that returns ID of the parent object. For example, an object of type corner has a propertypointIDthat returns the ID of the parent point object. - A set of member functions that return the instances of that object type and other related types. For example, using an instance of type output, you can get the value of an output object and its parent test instance. Using the functions given for a test instance, you can get a corner instance. For a corner instance, you can get the parameters which were used to generate the output, as well as the point and its ID.
In addition, the result database provides a function help() for each object of the above mentioned types to displays the list and description of functions that can be called using that particular object. For example, function call help('corner) displays a list of all the functions that can be called using an object of type corner. help('all) displays help for all the object types.
Arguments
|
Name of the history for which results are required. If not specified last active run will be used. |
||
|
This argument is considered only when the |
||
Value Returned
Examples
Returns a handle to access the results for a history named Interactive.1.
maeReadResDB( ?historyName "Interactive.1" )
=> t
Opens the results database and displays built-in help.
rdb = maeReadResDB( ?historyName "Interactive.1" )
=> axlrdb@0x18b5e200
rdb -> help()

As shown in the help above, you can use the handle to access specific results from the results database.
; The following statement returns the point object for design point 1 pt = rdb->point(1) => axlrdbd@0x18b5e230 ; The following code prints corner name, test name, output name and its value ; for each output of type expression
foreach(out pt->outputs(?type 'expr ?sortBy 'corner) printf("corner=%s, test=%s, output=%s, value=%L\n" out->cornerName out->testName out->name out->value) ) corner=C0, test=test1, output=VAR("val1"), value=99.22984 corner=C0, test=test1, output=freq_res, value=5.112893e+08 corner=C0, test=test2, output=(((xmin(mag(IF("/I0/p1")) 1) / 1000000) - 200) * 4), value=1299.23 corner=C0, test=test2, output=myCalib, value=99.22984 corner=C0, test=test2, output=calib_dummy, value=1 (axlrdbo@0x18476638 axlrdbo@0x18476620 axlrdbo@0x184765f0 axlrdbo@0x184765c axlrdbo@0x18476590)
Prints the results of reliability analysis.
rdb=maeReadResDB(?historyName "Interactive.1") reportport=outfile("./reportport.txt") foreach(point rdb->points() fprintf(reportport "Processing point %L\n" point->id) foreach(corner rdb->corners() fprintf(reportport " Corner %L pointID %L\n" corner->name corner->pointID) foreach(relxSetup corner->relxSetups() fprintf(reportport " RelxSetup: %L Age:%L \n" relxSetup->name relxSetup->age) foreach(test relxSetup->tests() fprintf(reportport " Test: %L\n" test->name) foreach(output test->outputs() unless(output->value=='Error || !output->value
fprintf(reportport " Output: %L=%L\n" output->name output->value)
)
)
)
)
)
)
close(reportport)
view("./reportport.txt")
The .txt file that contains the report is displayed as shown below.

Prints the results of reliability analysis when the setup contains aging scenarios:
rdb1=maeReadResDB(?historyName "Interactive.3") reportport1=outfile("./reportport1.txt") foreach(point rdb1->points() fprintf(reportport1 "Processing point %L\n" point->id) foreach(param point->params() when(equal(param->name "RelxScenario") fprintf(reportport1 " Param %L=%L\n" param->name param->value) ) ) foreach(relxSetup point->relxSetups() fprintf(reportport1 " RelxSetup: %L Age:%L CornerName:%L\n" relxSetup->name relxSetup->age relxSetup->cornerName) foreach(test relxSetup->tests() fprintf(reportport1 " Test: %L\n" test->name) foreach(output test->outputs() unless(output->value=='Error || !output->value fprintf(reportport1 " Output: %L=%L\n" output->name output->value)
)
)
)
)
)
close(reportport1)
view("./reportport1.txt")
The txt file that contains the report is displayed as shown below.

Returns the r and p values from the results of Monte Carlo analysis.
rdb = (maeReadResDB ?historyName "MonteCarlo.0")
myoutputs = (setof x rdb->outputs(?type 'expr) (and (equal x->name "UGF")))
myoutputvalues = (mapcar (lambda (x) (x->value)) myoutputs)
yvec = (drCreateVec 'double myoutputvalues)
xvec = (drCreateVec 'double (mapcar (lambda (x) (x->pointID)) myoutputs))
mywave = (drCreateWaveform xvec yvec)
myqq2 = (normalQQ (histogram2D mywave 10 "standard" nil nil))
printf("r = %f\n" myqq2->correlation) printf("p = %f\n" myqq2->pValue) => srrVec:0x37f331d0 srrVec:0x37f331e0 srrWave:0x37f770d0 srrWave:0x37f770f0 r = 0.976763 t p = 0.053200 t
Prints the parameter combinations for all points in the history Interactive.4.
rdb=maeReadResDB(?historyName "Interactive.4")
printf(" Params %L\n" mapcar(lambda((x) sprintf(nil "%s=%L" x->name x->value)) rdb->params()))
=> Params ("age=0" "vcontrol=1.8" "vdd=2" "age=-1" "vcontrol=1.8" "vdd=\"2.2\"" "age=\"5_yr\"" "vcontrol=1.8" "vdd=2" "age=\"10_yr\"" "vcontrol=1.8" "vdd=2" "age=0" "vcontrol=2" "vdd=2" "age=-1" "vcontrol=2" "vdd=\"2.2\"" "age=\"5_yr\"" "vcontrol=2" "vdd=2" "age=\"10_yr\"" "vcontrol=2" "vdd=2")
Return to top