TraceMaker
C++ API of the engine
Loading...
Searching...
No Matches
tmk::place::PlaceOptions Struct Reference

#include <place/placer.hpp>

Public Attributes

std::string mode = "full"
 full | refine
std::uint64_t seed = 1
int threads = 0
 0 = min(hardware, 16)
int runs = 0
 annealing runs (0 = threads)
double effort = 4.0
 annealing moves per run = effort × 4000 × movable parts
double alpha_cross_mm = 2.0
double time_limit_s = 0
 wall-time stop for the annealer (0 = none)
bool verbose = false
bool tempering = false
 M8 (doc 04 §3 E, G): see AnnealOptions.
double lns_rate = 0
 share of annealing steps that are LNS windows
int lns_window = 6
int lns_polish = 0
 LNS windows run on the annealing result (deterministic polish; 0 = none).
double beta_congestion = 0
 routability weight (0 = off)
const CongestionMap * congestion = nullptr
std::vector< int > focus
 LNS seed parts.
bool flip = false
 Side assignment (doc 04 §3 C/E, D48): see AnnealOptions.
double via_mm = 2.0
double flip_rate = 0.1
std::function< void(const std::string &stage, const Placement &pl, double t)> trace
 Recording (video): receives intermediate placements with a stage name.

Detailed Description

Definition at line 19 of file placer.hpp.

Member Data Documentation

◆ alpha_cross_mm

double tmk::place::PlaceOptions::alpha_cross_mm = 2.0

Definition at line 25 of file placer.hpp.

◆ beta_congestion

double tmk::place::PlaceOptions::beta_congestion = 0

routability weight (0 = off)

Definition at line 33 of file placer.hpp.

◆ congestion

const CongestionMap* tmk::place::PlaceOptions::congestion = nullptr

Definition at line 34 of file placer.hpp.

◆ effort

double tmk::place::PlaceOptions::effort = 4.0

annealing moves per run = effort × 4000 × movable parts

Definition at line 24 of file placer.hpp.

◆ flip

bool tmk::place::PlaceOptions::flip = false

Side assignment (doc 04 §3 C/E, D48): see AnnealOptions.

The problem must be extracted with ExtractOptions::flip for any part to be allowed to flip.

Definition at line 38 of file placer.hpp.

◆ flip_rate

double tmk::place::PlaceOptions::flip_rate = 0.1

Definition at line 40 of file placer.hpp.

◆ focus

std::vector<int> tmk::place::PlaceOptions::focus

LNS seed parts.

Definition at line 35 of file placer.hpp.

◆ lns_polish

int tmk::place::PlaceOptions::lns_polish = 0

LNS windows run on the annealing result (deterministic polish; 0 = none).

Definition at line 32 of file placer.hpp.

◆ lns_rate

double tmk::place::PlaceOptions::lns_rate = 0

share of annealing steps that are LNS windows

Definition at line 30 of file placer.hpp.

◆ lns_window

int tmk::place::PlaceOptions::lns_window = 6

Definition at line 31 of file placer.hpp.

◆ mode

std::string tmk::place::PlaceOptions::mode = "full"

full | refine

Definition at line 20 of file placer.hpp.

◆ runs

int tmk::place::PlaceOptions::runs = 0

annealing runs (0 = threads)

Definition at line 23 of file placer.hpp.

◆ seed

std::uint64_t tmk::place::PlaceOptions::seed = 1

Definition at line 21 of file placer.hpp.

◆ tempering

bool tmk::place::PlaceOptions::tempering = false

M8 (doc 04 §3 E, G): see AnnealOptions.

parallel tempering over the runs instead of independent runs

Definition at line 29 of file placer.hpp.

◆ threads

int tmk::place::PlaceOptions::threads = 0

0 = min(hardware, 16)

Definition at line 22 of file placer.hpp.

◆ time_limit_s

double tmk::place::PlaceOptions::time_limit_s = 0

wall-time stop for the annealer (0 = none)

Definition at line 26 of file placer.hpp.

◆ trace

std::function<void(const std::string& stage, const Placement& pl, double t)> tmk::place::PlaceOptions::trace

Recording (video): receives intermediate placements with a stage name.

Never affects the result. t is when the state existed (trace_now()); annealing snapshots are delivered after the run.

Definition at line 43 of file placer.hpp.

◆ verbose

bool tmk::place::PlaceOptions::verbose = false

Definition at line 27 of file placer.hpp.

◆ via_mm

double tmk::place::PlaceOptions::via_mm = 2.0

Definition at line 39 of file placer.hpp.


The documentation for this struct was generated from the following file: