vyges physical mpl — CLI reference
Generated from vyges physical mpl --help — this page is the tool’s own output, verbatim.
vyges physical mpl — hierarchical macro placement
USAGE:
vyges physical mpl place-macro <design.odb> --macro NAME=X,Y[,ORIENT] [--macro ...]
[--dbu] [--out-odb FILE]
vyges physical mpl --describe
vyges physical mpl --help
NOT WIRED:
`run` -- the automatic hierarchical placement -- is NOT reachable from this command line and
exits 2 if you ask for it. The pipeline IS implemented and correlated against OpenROAD; it is
driven by the `cluster-dump` binary, which every correlation gate uses. What is missing is the
entry point, not the algorithm. It is listed here rather than in USAGE because a usage line is
a promise.
PLACE-MACRO:
LibreLane `Classic` step 16, `Odb.ManualMacroPlacement` -- the manual placement a real harden
flow uses. X,Y are the macro ORIGIN in MICRONS (as the MACROS config states them); pass --dbu
to give database units instead. ORIENT is R0/R90/R180/R270/MX/MY/MXR90/MYR90, default R0.
Each macro is left FIXED, which is the status LibreLane's step produces.
STATUS:
0 applied macros placed and committed
1 refused the design cannot be processed as asked (see LIMITS)
2 usage bad arguments, or the design could not be read or written
3 vacuous nothing to do -- no unfixed macros
LIMITS:
This engine does not implement TritonPart (OpenROAD's `par`). A FLAT cluster -- one with no
module children -- whose leaf standard cells exceed the level threshold is REFUSED rather
than approximated. Upstream's own mpl suite never reaches that path; a large flat block does.
Contract
Generated from vyges physical mpl --describe.
mpl
hierarchical macro placement over the design database
Maturity: structured
place-macro {design}
| Input | Type | Required | Description |
|---|---|---|---|
dbu | boolean | no | read –macro coordinates as database units, not microns |
design | string | yes | path to the design database (.odb) |
macro | string | yes | NAME=X,Y[,ORIENT] — repeatable; X,Y is the macro ORIGIN in microns unless –dbu |
out_odb | string | no | write the database here instead of in place |
Consumes: odb
Artifacts: odb (out_odb)
Assertion: macros-placed — passes when status equals applied
Provenance limitations
- input_hash covers the argument vector, not the content of the .odb it names.
- THE
runCOMMAND IS NOT WIRED. This binary exposesplace-macroonly – LibreLaneClassicstep 16,Odb.ManualMacroPlacement, the manual placement a real harden flow uses. The automatic hierarchical pipeline IS implemented and correlated, but it is driven by thecluster-dumpbinary, which is what every correlation gate uses.place-macroplaces the macros it is told to place and asserts nothing about where they should go. - TritonPart (OpenROAD’s
par) is NOT implemented. A FLAT cluster – one with no module children – whose leaf standard cells exceed the level threshold is REFUSED rather than approximated. Upstream’s own mpl suite never reaches that path; a large flat block does, so a refusal here is a real design shape and not a corner case. - Correlation is measured against upstream’s own 36-design regression suite at the pin above, per stage rather than on the final output: physical hierarchy and design report 34 of 34 byte-exact each; coarse shaping, boundary push and orientation byte-exact on every case that emits a trace; golden DEFs – macro positions, temporary standard cells, halo blockages and clustering groups – 34 of 34 exact. Those gates drive
cluster-dump, notplace-macro. - Every score is true of ONE upstream commit, named in
openroad_pin. The reference moves: a score quoted without its pin says nothing. consumesis the genericodbon purpose. mpl supports running BEFORE or AFTER pin placement and the two give DIFFERENT placements, so a fixed predecessor list would be the wrong shape of claim rather than merely the wrong list.