Build Flows with vovbuild
- Get the flow definition from the Flow Library.
- Create the flow definition yourself.
In the following example, you create the flow yourself. The default name for the flow definition file is Flow.tcl. If you use another name, use the option -f in vovbuild to select the desired flow description.
% vovbuild
% vovbuild -f Flow.tcl
% vovbuild -f MyBigFlow.tcl
With vovbuild you can build large flows with thousands of jobs in a few seconds and then you can execute them efficiently using FlowTracer retracing capabilities.
The Flow Definition File is a Tcl script that describes the structure of the flow by using a Flow Description Language (FDL) consisting of some extension to Tcl.
E BASE
N "Copy"
T vw cp aa bb
I aa
O bb
The first line calls the procedure E which sets the environment to "BASE". This means that any job to be declared from now on will be executed in the "BASE" environment.
The second line call procedure N to assign a name to the subsequent job. In this case the name is "Copy". If the name is not specified, or if the name is the empty string "", then the system will use the tool name (in this case "cp") as the job name.
The next line calls procedure T to add a tool invocation with
command line "vw cp aa bb"
. This job is to be run in the current
working directory, using the environment "BASE".
The next two lines call the procedures I" and O to declare the expected inputs and outputs for the job.
% vovbuild
.
vovbuild does not execute the commands. Instead, it builds or updates the design trace by adding all jobs defined in the Tcl script.
After the trace is built, you can request a parallel execution with the command vsr.
All extra arguments to vovbuild are passed to the Tcl script and
are available as the global array argv
.
Tracing the Execution of vovbuild
% vovbuild -T
In this way, if Flow.tcl changes, FlowTracer knows that you must rerun vovbuild.
vovbuild -T
,
all indistinguishable from one another in many of the FlowTracer messages. The
option -l allows you to add arbitrary descriptive test to the
command line; its use purely a matter of style and clarity and is recommended to
avoid confusion.
Example:% vovbuild -T -l "Label to distinguish this job from other jobs"