Running the flow
Each card shows a command to explain. A missed card returns later in the round and starts the schedule over. A card answered correctly moves up the schedule and next appears after 1, 3, 7, then 21 days. Keys 1 to 4 choose an option, h shows a hint, and Enter moves on. A hint keeps the card where it is on the schedule. An ordering card is answered by clicking its items in order, and one wrong click ends it. Time values are in nanoseconds. Progress is stored in this browser.
All 6 cards in this section, with answers
-
export OPENROAD_HIERARCHICAL = 1Runs the physical stages hierarchically rather than on a flat design.
Hint: Compare it with SYNTH_HIERARCHICAL, which concerns one stage only.
The database keeps the module hierarchy through placement, routing, and the rest, instead of a flat netlist. The documentation says it will become the default and the option will then be retired. Hardening blocks separately is
BLOCKS. OpenROAD-flow-scripts reference -
export SKIP_REPORT_METRICS = 1Stops the per-stage metric reporting, to make a build faster.
Hint: Ask what is lost, and what is gained, on a long run.
After each stage the flow reports area, timing, and more into JSON (JavaScript Object Notation) metrics files. That costs a timing run each time. Skipping it speeds up exploration and gives up the record of how the run progressed. OpenROAD-flow-scripts reference
-
export LEC_CHECK = 1Checks the netlist is logically unchanged by the tool's edits.
Hint: Ask which two versions of the netlist there are to compare.
The two versions compared are the netlist before and after the tool's changes. Resizing, buffering, and clock tree synthesis rewrite it, and a formal equivalence check proves the rewrite changed no function. The documentation says a failure is an OpenROAD bug worth reporting.
REMOVE_CELLS_FOR_LECdrops cells the checker cannot handle. OpenROAD-flow-scripts reference -
export GPL_RANDOM_SEED = 42Fixes the placer's random seed, so a run can be repeated or varied.
Hint: Ask what changes between two runs that are otherwise identical.
Setting the seed to different values gives different placements of the same design, which is how the effect of placement noise on a result is measured. The documentation calls this a perturbation study. OpenROAD-flow-scripts reference
-
export ASAP7_USE_VT = RVT LVTAllows the flow to use both the regular and low threshold-voltage cells.
Hint: The letters name transistor flavours, and each one trades the same two things.
A lower threshold voltage makes a cell faster and leakier. Offering several flavours lets optimization spend leakage only where speed is needed. It applies to the ASAP7 platform, whose library ships regular, low, and super-low flavours. OpenROAD-flow-scripts reference
-
export CORNERS = slow fastAnalyses timing at both named corners, not just one.
Hint: Ask how the flow then knows which library belongs to which name.
Libraries are loaded per corner: for each name the flow reads the matching per-corner library variable, such as
SLOW_LIB_FILES. Several corners at once is how a design is signed off, since setup is usually worst slow and hold worst fast. OpenROAD-flow-scripts reference