A flow runs the same stages in the same order on every invocation. Hand-driven runs with tweaked options cannot be compared.
Stage | What it does |
|---|---|
Read | Load RTL, the cell library and constraints under recorded revisions. |
Elaborate and optimise | Build the generic netlist and simplify it independent of cells. |
Map and time | Bind to library cells and optimise against timing constraints. |
Report | Write the log and the QoR record: area, slack and power. |
Widths, effort levels and target corners are parameters of one script, not five scripts. Tool, library, constraint and script revisions are pins recorded with every run.
Pin | Example value | Why it matters |
|---|---|---|
Tool revision | Recorded version string | A new release may remap identical RTL differently. |
Cell library |
| Areas are library units, so a library swap moves every number. |
Constraints | Recorded constraint revision | A changed clock target moves slack without touching RTL. |
Flow script | Recorded script revision | A stage reorder is a flow change, not an RTL change. |
The sketch below is illustrative only. It shows the shape of one parameterised invocation, not runnable tool syntax.
illustrative sketch, not a runnable script
run_flow --tool <recorded-version> --lib course.lib@<rev> --top top --width 8
--log run_w8.log --qor qor_w8.json
one script, width as a parameter, every revision on the command lineNo. Areas are library units, so a library change moves every number. Repin one library and rerun before comparing.
A single maintained flow with comparable logs. Per-width scripts drift apart and their numbers stop being comparable.