Static parameters
Awb model can support static, build-time, parameters that are specified in a module’s .awb file as follows:
%param [--global] <PARAMETER-NAME> <NUMERIC-PARAMETER-VALUE> "<PARAMETER-DESCRIPTION>" or %param [--global] <PARAMETER-NAME> "<STRING-PARAMETER-VALUE>" "<PARAMETER-DESCRIPTION>"
For example, in the module with awb-type foo, one would define a trace parameter as follows:
. . %provides foo %param ENABLE_TRACE 0 "Enable an output debug trace" %param TRACE_FILE "trace.out" "Trace file name" . .
The example parameter can be used by including a file that is synthesized as part of the configuration process in a directory tree awb/provides/. The details are language specific:
The parameter is made available with the following #include directive:
#include "awb/provides/foo.h"
Then you will get a line that looks like:
#define ENABLE_TRACE 0 #define TRACE_FILE "trace.out"
The parameter is made available with the following `include directive:
`include awb/provides/foo.bsh
Then you will get a some lines that look like:
`define ENABLE_TRACE 0 `define ENABLE_TRACE_Z 0 `define TRACE_FILE "trace.out"
(I don’t know what the _Z convention is for).
Note: there are lots of `ifdef guards in foo.bsh so that you don’t try to recursively import the module being defined, so
you can even use the `include of foo.bsh in Foo.bsv.
Parameters are specified in a model’s .apm file and can be set using the apm-edit program. Example needed…
The —global switch to the %param directive cause the parameter to be visible in the parent model when the module is part of a submodel in that model.