public abstract class BlockPlacer2<ModuleT,ModuleInstT extends AbstractModuleInst<ModuleT,?,?>,PlacementT,PathT extends AbstractPath<?,ModuleInstT>> extends AbstractBlockPlacer<ModuleInstT,PlacementT>
BlockPlacer
. This placer
tends to do better but with longer runtime.Modifier and Type | Field and Description |
---|---|
static int |
DEBUG_LEVEL |
static boolean |
DEFAULT_DENSE
Default value for constructor parameter denseDesign
|
static float |
DEFAULT_EFFORT
Default value for constructor parameter effort
|
static boolean |
DEFAULT_FOCUS_ON_WORST
Default value for constructor parameter focusOnWorstModules
|
double |
finalBestCost |
double |
finalSystemCost |
double |
placerRuntime |
double |
rangeLimit |
boolean |
save_partial_dcp |
boolean |
verbose |
Constructor and Description |
---|
BlockPlacer2(Design design,
boolean ignoreMostUsedNets,
Path graphData,
boolean denseDesign,
float effort,
boolean focusOnWorstModules,
TileRectangle placementArea) |
BlockPlacer2(Design design,
boolean ignoreMostUsedNets,
Path graphData,
boolean denseDesign,
float effort,
boolean focusOnWorstModules,
TileRectangle placementArea,
Map<ModuleInstT,Site> lockedPlacements) |
Modifier and Type | Method and Description |
---|---|
double |
calculateStartTemp(int maxInnerIteration) |
abstract Collection<PathT> |
getConnectedPaths(ModuleInstT module) |
int |
getMaxRangeLimit() |
Collection<PathT> |
getPaths() |
Site |
getPrimitiveSiteFromTile(Tile tile,
SiteTypeEnum type) |
int |
incUndoCount() |
void |
initializePlacer(boolean debugFlow)
Performs all of the initialization steps to prepare for placement
|
double |
placeDesign(boolean debugFlow) |
void |
setSeed(long seed)
Sets the random seed to be used in this placer
|
setTempAnchorSite
public static final boolean DEFAULT_DENSE
public static final float DEFAULT_EFFORT
public static final boolean DEFAULT_FOCUS_ON_WORST
public double finalSystemCost
public double finalBestCost
public double placerRuntime
public double rangeLimit
public boolean verbose
public static int DEBUG_LEVEL
public boolean save_partial_dcp
public BlockPlacer2(Design design, boolean ignoreMostUsedNets, Path graphData, boolean denseDesign, float effort, boolean focusOnWorstModules, TileRectangle placementArea)
design
- the designignoreMostUsedNets
- ignore nets that are used almost everywhere. they are likely clocks, which use special
routing ressources. making them small does not gain QoR, but costs placer runtimegraphData
- output file for key placer stats to later graph themdenseDesign
- if set to true, tune algorithm towards having many overlaps. For sparse designs,
setting this will make the placer slowereffort
- Placer effort. Higher values will achieve better QoR. Linearly increases runtime.focusOnWorstModules
- Spend more time on modules with worst placementplacementArea
- Only place in specific areapublic BlockPlacer2(Design design, boolean ignoreMostUsedNets, Path graphData, boolean denseDesign, float effort, boolean focusOnWorstModules, TileRectangle placementArea, Map<ModuleInstT,Site> lockedPlacements)
public void setSeed(long seed)
seed
- public void initializePlacer(boolean debugFlow)
public double calculateStartTemp(int maxInnerIteration)
public double placeDesign(boolean debugFlow)
public Collection<PathT> getPaths()
public int getMaxRangeLimit()
public Site getPrimitiveSiteFromTile(Tile tile, SiteTypeEnum type)
public abstract Collection<PathT> getConnectedPaths(ModuleInstT module)
public int incUndoCount()