OpenLane icon indicating copy to clipboard operation
OpenLane copied to clipboard

All random operations should take a seed

Open widlarizer opened this issue 3 years ago • 0 comments

Description

As a use case, with small designs, the global placer often crashes. This is meant to be remedied by the PL_RANDOM_INITIAL_PLACEMENT option. However, this produces a random initial placement every time, and can't be locked in. Locking in a randomly found "gold" initial placement would require modifying TCL flows, which goes against the design philosophy of OpenLane. For this reason, OpenLane should accept seeds for all random operations to minimize differences between reruns, if desired. For example, yosys implements this approach, even when arbitrary variable names can influence an outcome of timing, allowing for seeded random scrambling.

Proposal

For purposes of reproducibility, every random operation in OpenLane and tools OpenLane integrates should take a seed as an optional argument

widlarizer avatar Nov 25 '22 14:11 widlarizer