Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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}
InputTypeRequiredDescription
job[‘string’, ‘object’]yesthe 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)
outstringnowrite 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.