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

Classes

struct  Move
struct  Slot
 Temperature slot: the temperature and the shift-radius adaptation that belongs to it (parallel tempering exchanges slots between replicas, so a replica arriving at a temperature inherits its tuned radius). More...
struct  WindowStats
class  Annealer

Functions

Coord snap (Coord v)
Point snap (Point q)
std::int64_t alpha_units (double alpha_mm)
std::int64_t via_units (double via_mm)
 Cost of one nm of RUDY overflow: β (mm of signal HPWL per mm of overflow) × signal weight; resolution 0.1.
std::int64_t beta_units (double beta)
Point body_centre (const Part &pt, int rot)
AnnealResult anneal_tempering (const Problem &p, const std::vector< std::vector< int > > &pn, const Placement &start, const AnnealOptions &o, std::uint64_t moves)
 Parallel-tempering driver (tempering.cpp).
void finish_result (const Problem &p, const AnnealOptions &o, AnnealResult &res)
 Fills the result fields shared by both drivers from the winning replica.
Box rudy_box (const CongestionMap &m, const Box &b)
 RUDY box: the pin box widened to at least one bin per axis, so aligned pins do not give infinite density.

Variables

constexpr Coord kLattice = 10'000
 committed positions on a 10 µm lattice
constexpr int kMaxMove = 12
 parts in one compound move (LNS windows)
constexpr double kLnsPhase = 0.3
 LNS windows run in the last 30 % of an annealing budget.

Function Documentation

◆ alpha_units()

std::int64_t tmk::place::detail::alpha_units ( double alpha_mm)
inline

Definition at line 27 of file anneal_state.hpp.

◆ anneal_tempering()

AnnealResult tmk::place::detail::anneal_tempering ( const Problem & p,
const std::vector< std::vector< int > > & pn,
const Placement & start,
const AnnealOptions & o,
std::uint64_t moves )

Parallel-tempering driver (tempering.cpp).

◆ beta_units()

std::int64_t tmk::place::detail::beta_units ( double beta)
inline

Definition at line 32 of file anneal_state.hpp.

◆ body_centre()

Point tmk::place::detail::body_centre ( const Part & pt,
int rot )
inline

Definition at line 34 of file anneal_state.hpp.

◆ finish_result()

void tmk::place::detail::finish_result ( const Problem & p,
const AnnealOptions & o,
AnnealResult & res )

Fills the result fields shared by both drivers from the winning replica.

◆ rudy_box()

Box tmk::place::detail::rudy_box ( const CongestionMap & m,
const Box & b )
inline

RUDY box: the pin box widened to at least one bin per axis, so aligned pins do not give infinite density.

Definition at line 66 of file congestion.hpp.

◆ snap() [1/2]

Coord tmk::place::detail::snap ( Coord v)
inline

Definition at line 25 of file anneal_state.hpp.

◆ snap() [2/2]

Point tmk::place::detail::snap ( Point q)
inline

Definition at line 26 of file anneal_state.hpp.

◆ via_units()

std::int64_t tmk::place::detail::via_units ( double via_mm)
inline

Cost of one nm of RUDY overflow: β (mm of signal HPWL per mm of overflow) × signal weight; resolution 0.1.

Cost of one estimated via per unit of net weight: a via on a signal net (weight kSignalWeight) costs via_mm of signal HPWL.

Definition at line 31 of file anneal_state.hpp.

Variable Documentation

◆ kLattice

Coord tmk::place::detail::kLattice = 10'000
inlineconstexpr

committed positions on a 10 µm lattice

Definition at line 21 of file anneal_state.hpp.

◆ kLnsPhase

double tmk::place::detail::kLnsPhase = 0.3
inlineconstexpr

LNS windows run in the last 30 % of an annealing budget.

Definition at line 23 of file anneal_state.hpp.

◆ kMaxMove

int tmk::place::detail::kMaxMove = 12
inlineconstexpr

parts in one compound move (LNS windows)

Definition at line 22 of file anneal_state.hpp.