Configure vovmake
The behavior of vovmake can be configured with a file called vovmake.config.tcl, which is also useful to augment the information already contained in the Makefile, for example by adding new dependencies or resource constraints.
The name of the configuration file is vovmake.config.tcl but this value may be overridden with the environment variable VOVMAKE_CONFIG, which can be used to specify a full path.
- ./ (working directory of vovmake)
- ../ (parent directory of vovmake)
- PROJECT.swd/ (project directory)
- $VOVDIR/local
- vovmakeTarget
- vovmakeAddInputForTarget
- vovmakeAddOutputForTarget
- vovmakeSetWrapperForTool
- vovmakeConfig
In the following, fragments of Makefiles are shown in this
font
while fragments of vovmake.config.tcl will be
shown in this different font
.
Procedure vovmakeTarget
The procedure vovmakeTarget defines additional information for a specific target. For example, it can define which licenses are required to update the target. The target name has to be the same as the one specified in the Makefile, or a glob expression.
chip.plan: chip.netlist
runPlanner chip
# The floorplanner requires a special license and 5GB of RAM.
vovmakeTarget chip.plan -res "License:floorplanner RAM/5000"
# Also specify a job name and an expected duration.
vovmakeTarget *.plan -name "Planner" -xdur 3h
Some targets can be skipped, because they do not map into actionable scripts:
all: place route
# There is no need to add the 'all' target to the flow.
vovmakeTarget all -skip
%.o:%.c
vovmakeTarget *.o -name Compile -res "RAM/20"
Procedures vovmakeAddInputForTarget and vovmakeAddOutputForTarget
The procedures vovmakeAddInputForTarget and vovmakeAddOutputForTarget can be used to declare more I/O dependencies for a target.
chip.plan: chip.netlist
runPlanner chip
# The floorplanner generates also a report file
vovmakeAddOutputForTarget chip.plan chip.rpt chip.log
# Also floorplanner uses a 'planner.constraints' file as input.
vovmakeAddInputForTarget chip.plan planner.constraints
Procedure vovmakeSetWrapperForTool
This procedure takes two arguments, a tool and a wrapper. By default, vovmake uses the default wrapper for all jobs that have simple (one-line) makefile rules and the wrapper "vov" for all jobs that have complex rules.
# Simple example of invocation.
vovmakeSetWrapperForTool cp vw
Procedure vovmakeConfig
# Example of each meaningful invocation of vovmakeConfig
vovmakeConfig strictTracing 1
vovmakeConfig doRun 0
vovmakeConfig setname "abc"
vovmakeConfig wrapper,default "vw"
vovmakeConfig res,default "RAM/200"
vovmakeConfig env,default "SNAPSHOT"
vovmakeConfig wrapper,tool,cp "vrt"; # This can also be called vovmakeSetWrapperForTool