MARCO GSRC Calibrating Achievable Design Theme GTX
GTX User Manual
revision 2.1, December 18, 2001
 |
|
| Andrew Caldwell, Andrew B. Kahng, Igor Markov, Mike Oliver and Dirk
Stroobandt |
Contents
Follow the example steps for a quick tour.
I. Introduction
The user manual explains step by step how you can perform studies in
GTX. An example study shows the various possibilities GTX offers (just
follow all the steps of this manual). This user manual
assumes that you know about the major concepts of GTX. If you don't, please
read the GTX framework document first.
The user manual also assumes you do not wish to change the models (parameters
or rules) but merely use them for performing studies. For developing your
own models, please refer to the
developer
manual.
II. Getting Started
II.a. Loading Files
From the "File" menu, select "Load Supplied" (for
data that came pre-packaged) or "Load User" (for data created by
you), then "Parameter File", "Rule File", "Rule
Chain
File", "Value File" or "GTX File".
-
Parameter files have a ".prm" extension and contain the definitions of
parameters (data) used within a module.
-
Rule files have a ".rul" extension and contain the definitions of rules
(models) that are known within the module.
-
Rule chain files have a ".chn" extension and contain a list of rules needed
for a specific study.
-
Value files have a ".val" extension and contain parameter value allocations.
-
GTX files have a ".gtx" extension and contain a list of parameter, rule,
rule chain and value files that together comprise all information needed
for a single study (or a set of studies). They allow you to load all those
files in a single action.
-
To unload the files, permitting the loading of a new study without
interference, go to Edit->Clear Engine State.
Select the file name, and select "OK". If the file parses successfully,
the parameters will be added to the list of all parameters.
Example step 1: Load the file BACPAC.gtx--from
the File menu, choose "Load Supplied" followed by "GTX
File", and double-click on the icon for BACPAC.gtx. You should see
something like this screenshot.
(Go to next step)
(Special note to Windows users: the BACPAC study will
not run correctly unless you have Perl installed. There is a version
called ActivePerl which is downloadable without charge from www.activestate.com.
However you can choose a different study from the supplied studies and
run through the example steps, choosing different parameter names as appropriate;
most steps will still make sense.)
II.b. The Five Basic Views
The GTX interface consists of two primary windows (screen
shot):
-
The list window (on the left): displays lists of items.
-
The detail window (on the right): displays information on a particular
item selected from the list window.
The type of information displayed is determined by the currently selected
view.
You can change views using either the five buttons at the bottom of the
list window, or by selecting one of the five items in the
View pull-down
menu. The five views are:
-
Parameters view
-
Rules view
-
Rule chain view
-
Values view
-
Graph view
The parameters view
contains a listing of all parameters currently loaded into GTX. The list
contains each parameter's name (following the
GTX
naming convention), its current value(s) and dimensions. Selecting
a parameter from the list displays its detailed information (name, data
type, allowable range of values, units, description, reference, default
value and current value) in the detail window for editing and viewing.
For more information on the parameter view see
GTX Model Developer Manual: Adding/Editing Parameters.
The rules view
contains a listing of all rules currently loaded into GTX. Selecting a
rule from the list displays its detailed information (name, inputs, output,
description, reference, body - the relation between inputs and output)
in the detail window. Unless you are editing the rule, you may ignore the
"Avail outputs" box and the "Available" box in the "Inputs" section.
Their function is explained in the
Developer
manual: Rules section.
The rule chain view
supports viewing, editing and creating rule chains. Rule chains are inference
sequences - subsets of the list of all rules that specify how to calculate
values for output parameters from input parameters. The rule
chain view allows interactive editing by adding and removing rules from
the chain. A description of this process follows in the next section.
The values view
displays computed parameter values for the current rule chain and specifications
for the current study. In the detail window, users can select which parameters
to 'watch' (in the sense of remembering their values on given inputs) while
the study is executed, and specify plotting options. For more information
see Section V
Executing a study
The graph view
displays in tree form the rule graph, which may be viewed from the point
of view of rules or of parameters or both at once, and either "forward"
(so that progressing down the tree goes from inputs to outputs) or (more
usually) "backward", going from outputs to the rules that compute them
or the values that are inputs to those rules. See Section VIII Using
the Graph View.
III. Editing a Rule Chain
Rule chains are sequences of rules used to compute values for
parameters. A rule chain is completely described by the set of rules included
in it. Parameters which are inputs to a rule in the rule chain and are
not computed by a rule in the chain are primary inputs. Parameters
computed by a rule in the chain are the chain's outputs .
The rule chain view allows viewing and editing the rules
in the current rule chain, as well as creating a new one. Either click
on the "Chain" button at the bottom of the list window or select
Rule
Chain from the View menu.
Editing a rule chain (or creating one from scratch)
Rule chains are created from the "top down". First you decide
what you want to compute, then you select a rule that computes it. If the
current rule chain is empty, then in the rule-chain view, all available
parameters will be listed in the column in the middle of the screen (under
"Uncomputed input"). If the rule chain is not empty, then by selecting
one of the rules, you will see in the middle column a list of all inputs
to the rule that are not currently computed by the chain.
If you select one of these parameters, you will see in the right-hand
column (under "Rules computing selected param") a list of all available
rules that compute that parameter. By selecting one of these and choosing
"Add" (or by double-clicking the rule), the rule will be added to the chain
in topological order.
The rule chain can be extended in a more general way. To compute
some parameter which is not an input to the current rule chain,
choose the "Show All" button at the bottom of the middle column. This will
show all parameters which are not computed by the current rule chain; you
can then select one and add a rule computing it.
To remove a rule from the chain, double-click on the rule in the
list window (left-most list).
If you select a rule in the list window, and then change to the
rules
view (via the "Rules" button), the highlighted rule will remain selected.
The detail window now provides all available information on that rule.
Example step 2:
-
Go to the "rule chain view" (click on the "Chain" button at the bottom
of the list window) and select the rule "BACPAC::dp_lgate".
-
The "rule view" (click on the "Rules" button at the bottom of the list
window) shows all information on this rule.
-
Return to the "rule chain view" and double-click the rule "BACPAC::dp_lgate"
(this removes this rule from the chain). The parameter "dp_lgate" is now
an uncomputed input to the chain and therefore shows up in the middle column.
-
Select the parameter "dp_lgate" in the middle column. The rule that computes
this parameter ("BACPAC::dp_lgate") now appears in the right column as
the only rule that computes this parameter.
-
Now load the files "Fisher_250.prm" and "SUSPENS.prm" (from the "File"
menu, select "Load Supplied", then "Parameter File"; double-click
on the file "Fisher_250.prm". Repeat for "SUSPENS.prm". This
is necessary only to prevent warnings about implicitly-created parameters.
-
Now load the files "Fisher.rul" and "SUSPENS.rul" (as above, except using
File->Load
Supplied->Rule File).
-
Reselect the parameter "dp_lgate" in the middle column. Now four rules
appear in the right column. They all compute the selected parameter.
(See screenshot.) Double-click
"FISHER::dp_lgate" in the right column to select this rule for the chain.
The middle column no longer contains dp_lgate, which is now computed by
a rule in the chain.
(Relatively) new feature: You can also remove a rule from
the rule chain by right-clicking on its name (in any view in which it appears)
and choosing "Remove from chain". You can add a rule to the chain
by right-clicking on its name and choosing "Add to chain".
The above example shows how easy it is to interchange rules from different
modules in GTX. This may also be done in the graph
view.
(Go to next step)
IV. Editing Values
To see the input and output parameters of the chain, click on
the "Vals" button at the lower left, or choose "Values in Chain"
under the "View" menu.
In the values view, the list window displays the current value
of each parameter associated with the current rule chain. The top window
contains the primary inputs to the rule chain (parameters which are inputs
to a rule in the chain, and not output of any rule in the chain). The bottom
window contains the outputs (parameters that are output to a rule in the
chain). Most often you will be editing values of parameters that are inputs
to the current rule chain. Some inputs may already have values, either
because they have default values in their parameter definitions or because
they have previously been edited; these will show up in the "Values" column
in the box at the top left (the one headed by "Input Name |
Value | Units").
To change a value or values, select the parameter whose values
you wish to edit. The value(s), if any, will appear in the top portion
of the right half of the screen. If there are multiple values, they
will be separated by commas.
Enter the new values in the top right (to the left of the "Commit"
button).
-
If you wish to enter multiple values (useful for "sweeping"),
separate them by commas.
-
For numeric parameters only (i.e. doubles and ints), you may also
enter ranges of values in the format lower ; upper
; step, where lower is the (inclusive) lower bound, upper
is the (exclusive) upper bound, and step is the step size (must
be positive). You can use multiple ranges, or mix and match ranges
with single values, by separating them with commas.
When you are finished, choose the "Commit" button to enter the values (or
you may simply hit the "Enter" key instead).
Although inputs to the current chain are the most useful values
to edit, you may edit the values of any other parameter by going to the
"Parameters" view (click the "Pars" button at the lower left or choose
"Parameters" from the "View" menu). You may choose any parameter
and follow the procedure above to edit its value(s).
(Relatively) new feature: You can also view/edit the value
of a parameter from any view, by right-clicking on its name and choosing
"Edit Value". This applies in most locations where the parameter
name appears, but not in the body of a rule nor in the "Avail Outputs"/"Available
Inputs" of a rule; also, a right-click on a rule name that happens to be
the same as the parameter name will bring up options appropriate to the
rule, not the parameter.
You can always restore the default values loaded with the parameter
file by selecting "Restore Defaults Permissively" or "Restore Defaults
Destructively"
from the "Edit" menu. The latter option restores all default values,
the former one only the default values of parameters in the current study
Example step 3:
-
Go to the "values view" (click on the "Vals" button at the bottom of the
list window) and select the input parameter "k_Rent_chip".
-
Double-click the value box (to the left of the "Commit" button) and enter
(type) the new range of values "0.7, 0.3; 0.8; 0.06, 0.5, 0.8". Clicking
the "Commit" button (or just hitting "Enter") will enter the values and
automatically sort them. (See screenshot.)
(Go to next step)
V. Executing a Study
A study in GTX is the application of values to the primary
inputs of the current rule chain to compute values for its outputs. All
information about the current study is available from the "Values" view
(click the "Vals" button at the lower left, or choose "Values in
Chain" from the "View" menu).
In order to evaluate the rule chain, all primary inputs must be
assigned values. The values of output parameters will be updated by evaluating
the rule chain.
V.a. Sweeping
Sweeping is evaluating a rule chain for multiple values of the same
input parameter(s). Sweeping can be done by simply giving multiple values
to some input parameters and evaluating the rule chain (see further). All
outputs that directly or indirectly depend on input parameters that have
multiple values will also have multiple values (one for every input parameter
combination) after the evaluation of the chain.
V.b.Evaluating a chain
Make sure that all inputs to the current chain have values (look in
the box at the top of the left portion of the screen, the one headed by
"Input Name | Value | Units ", and follow the procedure
above
to edit the values). If you wish to sweep over multiple values of
one or more of these inputs, simply enter multiple values for them as explained
above.
To see the output values given these inputs, choose the "Apply Rule
Chain" button in the lower portion of the right half of the screen.
All outputs of the chain will now be given their values, and they will
appear in the lower box on the left-hand side of the screen (the one headed
by "Output Name | Value | Units"). If there are many values for a
given output parameter you may not be able to see them all; highlight the
parameter and look in the text box to the left of the "Commit" button.
Example step 4:
-
Click the button "Apply Rule Chain" to evaluate the rule chain (since we
added multiple values for the parameter "k_Rent_chip", the GTX engine will
automatically perform a sweep over all input value combinations).
-
Select the output parameter "C_int_global" to see that it indeed contains
multiple values due to the sweeping.
(Special note to Windows users: If, upon selecting the "Apply
Rule Chain" button, you see an error message with the following text:
Exception while applying rule
BACPAC::external_optimization
Error output from external executable
the most likely cause is that you do not have Perl installed.
Among the supplied studies, only BACPAC requires Perl.)
(Go to next step)
V.c.Tracing a particular output
If you wish to view what happens to one or more particular outputs
as the inputs vary over their given values, you must let the program know
before running the calculation so that it can allocate memory to record
that information. Find the output(s) you wish to trace in the "Available:"
box on the right side of the lower-right pane. Double-click the output(s),
or highlight it and choose "Add".
Now choose the "Apply Rule Chain" button. When the calculation
completes, select the output you wish to view (i.e. highlight it either
in the "Outputs to trace" box or in the outputs list in the left pane)
and choose the "View Sweep Trace" button. This will bring up a box
showing the trace of the output with respect to the varying inputs.
Example step 5:
-
Select the parameter "f_cycle_stat" as an output to trace (double-click
on the parameter in the "Available Output" box in the detail window).
-
Evaluate the chain (click on "Apply Rule Chain").
-
Select "f_cycle_stat" in the "Output to trace" box and click "View Sweep
Trace". This will give you a window
with the minimum and maximum values obtained for "f_cycle_stat" and the
values of the input parameters (here "k_Rent_chip") that lead to them.
Also the average value and standard deviation is presented. At the end,
all input value combinations and the corresponding output value are listed.
(Go to next step)
V.d.Plotting a particular output
Add the output you wish to plot to "Output to trace" as described
above and choose the "Apply Rule Chain" button. Now choose the "Plot
Sweep Trace" button. This produces a plot of the outputs with respect
to the inputs having multiple values.
-
To obtain a plot of a sweep trace, exactly one or two of the inputs must
be allowed to vary over their multiple values. (If no inputs have
multiple values then there is nothing to plot; if more than two have multiple
values then the plot must be restricted so that it is not high-dimensional
to view.)
-
Therefore, if you have two or more inputs with multiple values, then when
you choose the "Plot Sweep Trace" button, you will see a dialog box entitled
"Choose sweep to plot". The inputs having multiple values will appear in
the list "PIs that vary".
-
If there are exactly two PIs that vary and you wish to plot against both
of them, simply choose the "OK" button. If you want a plot with only a
single independent variable, double-click on the other varying PI. Its
name will appear in the list in the middle, and its values will appear
in the list on the right. Select one of these values by highlighting it.
-
Similarly, if you have more than two PIs that vary, you will have to fix
values for all but (exactly) one or two of them. You fix a value for a
PI in the manner described in the previous paragraph. When you have chosen
values for all the PIs whose values you wish to fix, choose the OK button,
and the plot will be generated.
The plot appears in a window entitled "GTX Sweep Trace Plot". If the plot
has two independent variables (surface plot), you may view it from different
perspectives by choosing "Plot2", "Plot3", "Plot4" or "Plot5" under the
"File" menu. If it has only one independent variable (line plot), then
there is only one perspective from which it may be viewed. However you
may still wish to choose "Plot1" under the "File" menu to repaint the plot.
When the plot window is hidden by another window and then restored
to view, it may appear blank. In this case, choose one of the options "Plot1",
"Plot2", "Plot3", "Plot4" or "Plot5" under the "File" menu.
Example step 6:
-
Click the button "Plot Sweep Trace" to plot "f_cycle_stat" versus "k_Rent_chip".
(choose "Plot 1 in the "File" menu to refresh the window).
(View resulting plot).
-
Change the value of the input parameter "num_stage_lgate" to "12;18;2"
(range from 12 to 18 in steps of 2) (select "num_stage_lgate" in the input
part of the list window, change the value in the "value box" and click
on "Commit").
-
Again select the parameter "f_cycle_stat" as an output to trace (double-click
on the parameter in the "Available Output" box in the detail window) and
re-evaluate the chain (click on "Apply Rule Chain"). Wait until the calculation
is done and the new values appear in the "outputs box" of the list window.
-
Select "f_cycle_stat" in the "Output to trace" box and click "Plot Sweep
Trace". This will give you the window
where you can choose the parameters to plot against. Simply hit "OK" for
a 3D plot against both parameters,
select one for a 2D plot.
-
Choosing "File", "Plot 2" or other plots allows you to view
the plot from different angles.
(Go to next step)
VI. Constraints
A constraint is a special kind of rule. Its output parameter
must always be the built-in boolean parameter CONSTRAINT, and its body
must be a bool expression. It is used in a special way: whenever
its output evaluates to false, the computation with the current
set of input values is terminated and its outputs are not added to the
values of the output parameters.
VI.a. Adding constraints
To add a constraint rule to the available rules, create a new
rule, making sure that the output is CONSTRAINT (for convenience, CONSTRAINT
is the first output parameter listed):
-
To create a new rule, choose "New" under the "File" menu,
then "Rule". A dialog box will appear with the same fields as in
the rule-view described above.
-
You must give the rule a name in the "Rule Name" box (it will not parse
without it); this name should contain no whitespace or special characters
(underscore is fine).
-
You must select the output parameter to be "CONSTRAINT". The available
loaded parameters are listed in "Avail outputs"; double-click "CONSTRAINT"
and it will appear in the "Output" box.
-
You must specify the body of the rule. The syntax for this is described
in the grammar document. For
constraints, simply put the condition which the input parameter(s) should
obey.
-
Any parameters referenced in the body of the rule must be selected as inputs
in the "Inputs" section on the right side of the dialog box. All
available parameters (except for the selected output and all currently-selected
inputs) appear in the "Avail" box at the top. To add one to the "Selected"
box, double-click it, or highlight it and choose "Add". To remove
one from the "Selected" box, double-click it, or highlight it and choose
"Remove".
-
In addition to the above mandatory fields, you may also give a description
of the rule in the "Description" box and/or a literature reference in the
"Reference" box.
Example step 7:
-
Choose "New" under the "File" menu, then "Rule" and
give your rule a name.
-
Choose "CONSTRAINT" as its output (double-click on it in the "Avail outputs"
box) and "k_Rent_global" as the only input (double-click on it in the "Available
inputs" box).
-
Type "k_Rent_global < 0.6" in the body of the rule and hit "OK".
To add a constraint to the chain, choose the "Show All" button at
the bottom of the middle column in the rule-chain view (obtained by clicking
on "Chain" or choosing "Rule Chain" under the "View" menu) and highlight
"CONSTRAINT" at the top of the middle column. All constraint rules
(except any already present in your rule chain) will appear in the right-hand
column; you may select one and double-click it to add it to the chain.
(Go to next step)
|
|
|
CONSTRAINT is a special exception to the rule that only one rule in
a given rule chain may compute a given output; you may have as many constraint
rules as you like in the chain (for this reason CONSTRAINT will always
be available when you choose the "Show All" button; an ordinary parameter
would not show up if the rule chain already computed it). |
VI.b. Minimizing or maximizing a particular
output subject to constraints
The output trace described above in "Tracing
a particular output" will take into account only combinations of input
values for which all constraints evaluate to true. At the
top of the box created when you choose the "View Sweep Trace" button are
the minimum and maximum values of the selected output (subject to all constraints)
and the combination of input values that resulted in the minimum and maximum
values.
Example step 8:
-
Add your rule with the constraint to the chain (choose "Chain" for the
chain view, click the "Show All" button, select "CONSTRAINT" in the middle
window and double-click your rule in the right window).
-
Go back to the values view (click the "Vals" button), select the parameter
"f_cycle_stat" as an output to trace (double-click on the parameter in
the "Available Output" box in the detail window) and re-evaluate the chain
(click on "Apply Rule Chain"). Wait until the calculation is done and the
new values appear in the "outputs box" of the list window.
-
Select "f_cycle_stat" in the "Output to trace" box and click "View Sweep
Trace". You will see that not all the values for the input parameter "k_Rent_chip"
are listed (those larger than 0.66 are not). The missing values resulted
in the constraint not being met and were discarded.
(Go to next step)
VII. Saving Your Results
There are several ways of keeping the results of your study for
further use:
VII.a. Saving parameters, rules, rule chain
and values
From the File menu, select "Save All" or "Save Delta"
then Parameters, Rules, Rule Chain or Values.
There are three options for saving:
-
Save All saves all parameters in GTX into a single file (same
for rules, rule chain and values)
-
Save Delta only applies to parameters and rules and saves
only those parameters or rules that are new or have changed since they
were loaded
-
Save as .gtx file performs a "save all" on parameters, rules,
rule chain and values and puts a link to all those files in a ".gtx" file.
VII.b. Saving sweep results
After sweeping you can save the sweep trace
to file instead of showing it in a dialog box by clicking on the "Trace
To File" button in the values view. You will be prompted for a file name
(type the name and hit "OK") and your file will contain exactly the same
information as in the "View sweep trace" dialog box. You can also click
on the button "Raw Output to File" (you will again be prompted for a file
name). This file will only contain a list of all output values (in the
same order as they are in the sweep trace) without any other information.
You can also save your plots to file and print them (from the
GTX Sweep Trace Plot, choose "File", "Print"; you might have
to set the printer settings first).
Example step 9:
-
Output your trace to file (click the "Trace To File" button, choose a file
name and hit "OK") and have a look at the file that is created.
-
Save a raw output to file (click the "Raw Output to File" button, choose
a file name and hit "OK") and have a look at the file that is created.
(Go to next step)
VIII. Using the graph view
The graph view is a powerful new feature for viewing relationships between
rules, between parameters, or among rules and parameters.
You have several options for viewing the graph. These are controlled
by the radio buttons "Params" and "Rules" and the checkboxes "bipartite",
"forward" and "calculability".
-
"Params"/"Rules" radio button controls whether the graph is presented with
parameters or rules considered as primary. The default is "Params".
-
"bipartite" checkbox determines whether both rules and parameters are displayed
in the same graph. If "bipartite" is not checked, then the
"Params"/"Rules" radio button controls whether rules or parameters are
displayed. By default, "bipartite" is checked.
-
"forward" checkbox determines whether, by going downward and to the right
in the tree, you are going from inputs to outputs, or from outputs to inputs.
If "forward" is checked, you are going from inputs to outputs. By
default, "forward" is not checked, because it is common to know
an output parameter and want to know which rules calculate it or which
other parameters are used to calculate it.
-
"calculability" checkbox determines whether calculability information is
displayed in the graph. A "calculable" parameter is one that either
has a value or can be calculated by GTX with the information it currently
has, using the current rule chain. A "calculable" rule is one whose
output parameter would be calculable, assuming the rule were in the rule
chain. When "calculability" is checked, calculable rules and parameters
display with green dots on the left; uncalculable rules and parameters,
with red circles. By default, "calculability" is not checked.
Note that rules are displayed in blue in the
graph view; parameters, in black. Clicking on a rule or parameter
will show the appropriate display in the right-hand portion of the screen,
as though you were in the "Rules" or "Pars" view respectively.
Example step 10:
-
Go to the "Graph" view by clicking the "Graph" button at lower left, or
by View->Graph of Rules and Params.
-
Scroll down until you find the parameter "dp_lgate". Click
on the plus sign to its left, expanding the node. The four rules
you see in blue in the expansion are the rules available to compute dp_lgate.
The rule FISHER::dp_lgate is in bold
characters; this indicates that it is the rule in the current chain used
to compute dp_lgate.
-
Expand the nodes BACPAC::dp_lgate and FISHER::dp_lgate
to see the parameters input to them. If you expand also the node
dA_chip_logic
under the rule FISHER::dp_lgate, you
will see something like the screenshot;
note that dA_chip_logic is computed by BACPAC::dA_chip_logic,
which (being displayed in bold characters), is in the current chain.
-
You can edit the rule chain from here: Let's say you decide you don's
want dp_lgate to be computed by the FISHER rule after all. Right-click
on FISHER::dp_lgate and choose "Remove
from chain". Note that FISHER::dp_lgate
is no longer in bold.
-
Click the "calculabilty" checkbox. Note that there is now a red circle
to the left of "dp_lgate". That means that dp_lgate is not calculable;
GTX does not have enough information to determine its value. That's
because you removed the rule that calculated it.
-
Right-click on SUSPENS::INTERMEDIATE_dp_lgate,
and choose "Add to chain". The red circle by dp_lgate remains, because
the rule SUSPENS::INTERMEDIATE_dp_lgate is
itself uncalculable (has a red circle). Expand the node SUSPENS::INTERMEDIATE_dp_lgate
to
find out why. Note that one of its inputs, dl_int_required_pu_dp_udp,
is uncalculable. Expand that node, and note that it is computed
by the rule SUSPENS::dl_int_required_pu_dp_udp,
which is calculable (has a green dot), but is not in the chain (is not
bold). Right-click on SUSPENS::dl_int_required_pu_dp_udp
and choose "Add to chain".
-
Now the dots turn green, going all the way back to the root node dp_lgate,
indicating that the parameter is now calculable. You can verify this
by going back to the "Vals" view and clicking on "Apply Rule Chain".