5.3. Flow Control
Physical design is necessarily an iterative process, and designers will often require fine control of the flow within any given action. This allows for rapid testing of new changes in the Hammer IR to improve the quality of results (QoR) after certain steps.
Given the flow defined by tool steps and hooks (described in the next section), users can select ranges of these to run. The tool script will then be generated with commands corresponding to only the steps that are to be run.
5.3.1. Command-line Interface
Flow control is specified with the following optional Hammer command-line flags, which must always target a valid step/hook:
--start_before_step <target>: this starts the tool from (inclusive) the target step. Alternate flag:--from_step--start_after_step <target>: this starts the tool from (exclusive) the target step. Alternate flag:--after_step--stop_after_step: this stops the tool at (inclusive) the target step. Alternate flag:--to_step--stop_before_step: this stops the tool at (exclusive) the target step. Alternate flag:--until_step--only_step: this only runs the target step
As hammer-vlsi is parsing through the steps for a given tool, it will print debugging information indicating which steps are skipped and which are run.
Certain combinations are not allowed:
--only_stepis not compatible with any of the other flags--start_before_stepandstart_after_stepmay not be specified together--stop_after_stepand--stop_before_stepmay not be specified together--start_before_stepand--stop_before_stepmay not be the same step--start_after_stepand--stop_after_stepmay not be the same step--start_after_stepand--stop_before_stepmay not be the same or adjacent steps
Logically, a target of stop_{before|after}_step before start_{before|after}_step will also not run anything (though it is not explicitly checked).