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

#include <place/anneal.hpp>

Public Attributes

std::uint64_t seed = 1
int runs = 8
int threads = 8
double effort = 1.0
 moves per run = effort × 4000 × movable parts (at least 20 000)
double alpha_cross_mm = 2.0
 one airwire crossing costs as much as this much signal HPWL
double time_limit_s = 0
 wall-time stop (0 = none); hitting it makes the result timing-dependent
bool refine = false
 start cool and with small moves (the start is already a good placement)
double beta_congestion = 0
 Routability: cost of 1 mm of RUDY overflow in mm of signal HPWL (0 = off; resolution 0.1).
const CongestionMap * congestion = nullptr
bool tempering = false
 parallel tempering over runs replicas instead of independent runs
int exchange_interval = 0
 moves per replica between exchange attempts (0 = auto)
double lns_rate = 0
 probability that a step is an LNS window instead of an ordinary move
int lns_window = 6
 parts per LNS window (≤ 12)
int exact_window = 4
 windows up to this size are repaired exactly (branch and bound)
std::vector< int > focus
 parts LNS windows are centred on (empty: any movable part)
std::uint64_t trace_every = 0
 record the live state every this many steps (0 = off; video recording)
bool flip = false
 Side assignment (doc 04 §3 C/E, D48): flip moves for parts with Part::may_flip(), and the via estimate via_mm · Σ w · min(front, back surface-mount pins) per net in the cost (wirelength.hpp side_vias).
double via_mm = 2.0
 one estimated via costs as much as this much signal HPWL
double flip_rate = 0.1
 share of ordinary moves that are flips (only drawn when flipping is on)

Detailed Description

Definition at line 39 of file anneal.hpp.

Member Data Documentation

◆ alpha_cross_mm

double tmk::place::AnnealOptions::alpha_cross_mm = 2.0

one airwire crossing costs as much as this much signal HPWL

Definition at line 44 of file anneal.hpp.

◆ beta_congestion

double tmk::place::AnnealOptions::beta_congestion = 0

Routability: cost of 1 mm of RUDY overflow in mm of signal HPWL (0 = off; resolution 0.1).

congestion is the capacity map (built with default options when null).

Definition at line 49 of file anneal.hpp.

◆ congestion

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

Definition at line 50 of file anneal.hpp.

◆ effort

double tmk::place::AnnealOptions::effort = 1.0

moves per run = effort × 4000 × movable parts (at least 20 000)

Definition at line 43 of file anneal.hpp.

◆ exact_window

int tmk::place::AnnealOptions::exact_window = 4

windows up to this size are repaired exactly (branch and bound)

Definition at line 55 of file anneal.hpp.

◆ exchange_interval

int tmk::place::AnnealOptions::exchange_interval = 0

moves per replica between exchange attempts (0 = auto)

Definition at line 52 of file anneal.hpp.

◆ flip

bool tmk::place::AnnealOptions::flip = false

Side assignment (doc 04 §3 C/E, D48): flip moves for parts with Part::may_flip(), and the via estimate via_mm · Σ w · min(front, back surface-mount pins) per net in the cost (wirelength.hpp side_vias).

Definition at line 60 of file anneal.hpp.

◆ flip_rate

double tmk::place::AnnealOptions::flip_rate = 0.1

share of ordinary moves that are flips (only drawn when flipping is on)

Definition at line 62 of file anneal.hpp.

◆ focus

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

parts LNS windows are centred on (empty: any movable part)

Definition at line 56 of file anneal.hpp.

◆ lns_rate

double tmk::place::AnnealOptions::lns_rate = 0

probability that a step is an LNS window instead of an ordinary move

Definition at line 53 of file anneal.hpp.

◆ lns_window

int tmk::place::AnnealOptions::lns_window = 6

parts per LNS window (≤ 12)

Definition at line 54 of file anneal.hpp.

◆ refine

bool tmk::place::AnnealOptions::refine = false

start cool and with small moves (the start is already a good placement)

Definition at line 46 of file anneal.hpp.

◆ runs

int tmk::place::AnnealOptions::runs = 8

Definition at line 41 of file anneal.hpp.

◆ seed

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

Definition at line 40 of file anneal.hpp.

◆ tempering

bool tmk::place::AnnealOptions::tempering = false

parallel tempering over runs replicas instead of independent runs

Definition at line 51 of file anneal.hpp.

◆ threads

int tmk::place::AnnealOptions::threads = 8

Definition at line 42 of file anneal.hpp.

◆ time_limit_s

double tmk::place::AnnealOptions::time_limit_s = 0

wall-time stop (0 = none); hitting it makes the result timing-dependent

Definition at line 45 of file anneal.hpp.

◆ trace_every

std::uint64_t tmk::place::AnnealOptions::trace_every = 0

record the live state every this many steps (0 = off; video recording)

Definition at line 57 of file anneal.hpp.

◆ via_mm

double tmk::place::AnnealOptions::via_mm = 2.0

one estimated via costs as much as this much signal HPWL

Definition at line 61 of file anneal.hpp.


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