vyges physical gpl — CLI reference
Generated from vyges physical gpl --help — this page is the tool’s own output, verbatim.
vyges physical gpl — global placement: the placer's view of the design (instances, nets, pins,
regions), the initial placement, then the Nesterov electrostatic placement
USAGE:
vyges physical gpl global_placement <job.json> [-o FILE]
vyges physical gpl --describe
vyges physical gpl --help
vyges physical gpl --version
JOB FIELDS:
steps required — the commands in order, each {"cmd": ..., "args": [...]}:
read_db, set_debug_level, set_thread_count, then global_placement [options]
write_def write the placed design, as DEF, to this path
MODELLED:
the placer's construction (GPL-0001..0021, 0035..0037), the initial placement (every
bound-to-bound round and its [InitialPlace] line), and the Nesterov placement: the fillers,
the pre-placement perturbation, the bin grid (GPL-0023..0030), the DCT density field, the
weighted-average wirelength gradient, the accelerated descent with back-tracking, every
progress row, convergence (GPL-1001..1009) and the final area and HPWL (GPL-1014, 1018) —
all in the reference's own operation order; region groups each their own Nesterov region
(GPL-1016); placement clusters; -incremental; -place_ios; -routability_driven (RUDY or
-routability_use_grt); -timing_driven (the resizer's repair at each overflow, net
reweighting) and -virtual_cts. Refused: -enable_routing_congestion.
OPTIONS:
-o FILE write the JSON report to FILE instead of stdout
--json accepted; the report is JSON either way
--describe print a machine-readable JSON description of the command
--bug-report file a bug (central: vyges/community)
--feature-request request a feature (central)
--sponsor sponsor Vyges (github.com/sponsors/vyges-ip)
--star star this tool on GitHub
THREADS:
Runs on one thread; there is no thread option. A job's set_thread_count is read as the
reference reads it, but only decides the thread count the run reports.
EXIT STATUS:
0 placed -skip_nesterov_place: the design initially placed
2 vacuous the job has no global_placement step. NOT a pass.
2 error usage, unreadable input, or an error the command raises (its line is reported)
3 refused an input this engine does not model — or a Nesterov placement to run
Contract
Generated from vyges physical gpl --describe.
gpl
global placement: the placer’s construction, the bound-to-bound initial placement and the Nesterov (electrostatic density) placement
Maturity: structured
global_placement {job}
| Input | Type | Required | Description |
|---|---|---|---|
job | [‘string’, ‘object’] | yes | the JSON job {steps: [{cmd, args}], write_def}: a path to the file, or the job object itself (the server writes it to a content-addressed file) |
out | string | no | write the JSON report to FILE instead of stdout |
Consumes: job
Assertion: design-placed — passes when status is one of placed
Threads
Runs on one thread; there is no thread option. A job’s set_thread_count step is accepted as the reference accepts it, but only decides the thread count the run reports, not the placement. Several runs can go side by side, one core each.
Provenance limitations
- input_hash covers the argument vector, not the content of the job file or of the design files it names.
- status is one of placed, vacuous, refused or error. placed means the command ran to the end: the initial placement (and, unless -skip_nesterov_place, the Nesterov placement to the target overflow) written to the database. The declared assertion passes on placed only. Exit status is 0 for placed, 2 for vacuous and for error, 3 for refused.
- Modelled: the placer’s construction, the initial placement and the Nesterov placement (fillers, the pre-placement perturbation, the bin grid, the DCT density field, the weighted-average wirelength gradient, the accelerated descent with back-tracking, the divergence revert) over the top level and every region group, incremental placement, placement clusters, routability-driven placement (RUDY or the global router: cell inflation, filler removal, net reweighting, the revert to the best pass), timing-driven placement (the resizer’s repair at each reweight overflow, the worst-slack net reweighting, -virtual_cts) and concurrent IO placement (-place_ios), each bit-exact against the reference: every progress row and every iteration’s state. Refused rather than guessed: -enable_routing_congestion.