AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
a movement unit in placement with information of location and resource demand More...
#include <PlacementInfo.h>
Public Member Functions | |
PlacementUnit (std::string name, int id, PlacementUnitType unitType) | |
virtual | ~PlacementUnit () |
void | getAnchorLocation (float &x, float &y) |
float | X () |
float | Y () |
float | lastX () |
float | lastY () |
void | setAnchorLocation (float x, float y) |
Set the Anchor Location for the PlacementUnit. More... | |
void | setSpreadLocation (float x, float y, float forgetRatio) |
Set the Spread Location based on forgetting ratio. More... | |
void | setSpreadLocation_WithLimitDisplacement (float x, float y, float forgetRatio, float limitDisplacement) |
Set the Spread Location based on forgetting ratio. More... | |
void | setAnchorLocationAndForgetTheOriginalOne (float x, float y) |
void | recordSpreadLocatin () |
void | setFixed () |
void | setUnfixed () |
void | setLocked () |
void | setUnlocked () |
bool | isLocked () |
void | setPlaced () |
bool | isFixed () |
bool | isPlaced () |
std::string & | getName () |
PlacementUnitType | getType () |
void | setWeight (int numCell) |
int | getWeight () |
unsigned int | getId () |
void | renewId (int newId) |
void | setNetsSetPtr (std::vector< PlacementNet * > *_nets) |
Set the Nets Set Ptr object which records the nets connecting to the PlacementUnit. More... | |
std::vector< PlacementNet * > * | getNetsSetPtr () |
Get the Nets Set Ptr object which records the nets connecting to the PlacementUnit. More... | |
int | getUnitsBeDrivenByThisPU () |
int | getUnitsDriveThisPU () |
void | addDSP () |
void | addBRAM () |
void | addLUTRAM () |
void | addLUT () |
void | addFF () |
void | addCARRY () |
void | addMUX () |
bool | checkHasDSP () |
bool | checkHasBRAM () |
bool | checkHasLUTRAM () |
bool | checkHasLUT () |
bool | checkHasFF () |
bool | checkHasCARRY () |
bool | checkHasMUX () |
bool | hasRegister () |
bool | hasLogic () |
bool | isMCLB () |
bool | isLCLB () |
int | getDSPNum () |
int | getBRAMNum () |
int | getLUTRAMNum () |
int | getLUTNum () |
int | getCARRYNum () |
int | getMUXNum () |
void | setPacked () |
void | resetPacked () |
bool | isPacked () |
std::set< DesignInfo::DesignNet * > & | getClockNets () |
Protected Attributes | |
std::set< DesignInfo::DesignNet * > | clockNets |
record the clock nets connected to this PlacementUnit More... | |
Private Attributes | |
std::string | name |
int | id |
float | anchorX = -2000 |
float | anchorY = -2000 |
float | lastAnchorX = -2000 |
float | lastAnchorY = -2000 |
float | lastSpreadX = -2000 |
float | lastSpreadY = -2000 |
PlacementUnitType | unitType |
std::vector< PlacementNet * > * | nets |
record the nets connected to this PlacementUnit More... | |
bool | fixed = false |
fixed simply means the PlacementUnit cannot be moved. More... | |
bool | placed = false |
the PlacementUnit is placed to BEL slot. More... | |
bool | locked = false |
if locked, the attributes of the PlacementUnit cannot be changed (more than fixed.) More... | |
int | weight = 1 |
int | DSPcnt = 0 |
int | BRAMcnt = 0 |
int | LUTRAMcnt = 0 |
int | LUTcnt = 0 |
int | FFcnt = 0 |
int | CARRYcnt = 0 |
int | MUXcnt = 0 |
int | numUnitsBeDrivenByThisPU = -1 |
int | numUnitsDriveThisPU = -1 |
bool | packed = false |
a movement unit in placement with information of location and resource demand
Definition at line 1009 of file PlacementInfo.h.
|
inline |
Definition at line 1012 of file PlacementInfo.h.
|
inlinevirtual |
Definition at line 1015 of file PlacementInfo.h.
|
inline |
Definition at line 1276 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1292 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1272 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1288 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1284 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1280 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), InitialPacker::loadOtherCLBMacros(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1296 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
inline |
Definition at line 1304 of file PlacementInfo.h.
Referenced by hasLogic(), and hasRegister().
|
inline |
Definition at line 1320 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCarrySite(), and hasLogic().
|
inline |
Definition at line 1300 of file PlacementInfo.h.
Referenced by hasLogic(), and hasRegister().
|
inline |
Definition at line 1316 of file PlacementInfo.h.
Referenced by hasLogic(), and hasRegister().
|
inline |
Definition at line 1312 of file PlacementInfo.h.
Referenced by hasLogic().
|
inline |
Definition at line 1308 of file PlacementInfo.h.
Referenced by hasLogic(), and hasRegister().
|
inline |
Definition at line 1324 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCommonLUTFFInSite(), and ParallelCLBPacker::PackingCLBSite::greedyMapMuxForCommonLUTFFInSite().
|
inline |
Definition at line 1018 of file PlacementInfo.h.
|
inline |
Definition at line 1349 of file PlacementInfo.h.
Referenced by PlacementInfo::ClusterUnit::addPlacementUnit().
|
inline |
Definition at line 1361 of file PlacementInfo.h.
Referenced by GlobalPlacer::timingDrivenDetailedPlacement_shortestPath_intermediate().
|
inline |
Definition at line 1382 of file PlacementInfo.h.
Referenced by PlacementInfo::addPUIntoClockColumn(), PlacementInfo::checkClockColumnLegalization(), PlacementInfo::getClockColumnUtilizationIncrease(), and PlacementInfo::printOutClockColumnLegalization().
|
inline |
Definition at line 1345 of file PlacementInfo.h.
Referenced by PlacementInfo::ClusterUnit::addPlacementUnit().
|
inline |
Definition at line 1206 of file PlacementInfo.h.
Referenced by PlacementInfo::addPseudoNetsInPlacementInfo(), ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::clusterHash(), CLBLegalizer::getHPWLChange(), MacroLegalizer::getHPWLChange(), WirelengthOptimizer::LUTLUTPairing_TimingDriven(), Packing_PUcompare::operator()(), operator<<(), ClusterPlacer::refineClustersWithPredefinedClusters(), and ParallelCLBPacker::timingDrivenDetailedPlacement_swap().
|
inline |
Definition at line 1357 of file PlacementInfo.h.
|
inline |
Definition at line 1353 of file PlacementInfo.h.
|
inline |
Definition at line 1365 of file PlacementInfo.h.
|
inline |
Definition at line 1186 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::addPU(), ParallelCLBPacker::dumpFinalPacking(), MacroLegalizer::dumpMatching(), and operator<<().
|
inline |
Get the Nets Set Ptr object which records the nets connecting to the PlacementUnit.
Definition at line 1231 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::exceptionPULegalize(), ParallelCLBPacker::PackingCLBSite::getHPWLChangeForPU(), and PlacementInfo::updateLongPaths().
|
inline |
Definition at line 1191 of file PlacementInfo.h.
Referenced by PlacementInfo::enforceLegalizeXYInArea(), PlacementInfo::isLegalLocation(), PlacementInfo::legalizeXYInArea(), and PlacementInfo::PlacementNet::PlacementNet().
|
inline |
Definition at line 1236 of file PlacementInfo.h.
|
inline |
Definition at line 1254 of file PlacementInfo.h.
|
inline |
Definition at line 1201 of file PlacementInfo.h.
Referenced by PlacementInfo::ClusterUnit::addPlacementUnit(), PlacementTimingOptimizer::clusterLongPathInOneClockRegion(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1332 of file PlacementInfo.h.
Referenced by PlacementInfo::updateLongPaths().
|
inline |
Definition at line 1328 of file PlacementInfo.h.
Referenced by PlacementInfo::updateLongPaths().
|
inline |
Definition at line 1177 of file PlacementInfo.h.
Referenced by PlacementInfo::addPseudoNetsInPlacementInfo(), PlacementInfo::loadPlacementUnitInformation(), and operator<<().
|
inline |
Definition at line 1341 of file PlacementInfo.h.
|
inline |
Definition at line 1166 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1337 of file PlacementInfo.h.
|
inline |
Definition at line 1377 of file PlacementInfo.h.
|
inline |
Definition at line 1181 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1034 of file PlacementInfo.h.
|
inline |
Definition at line 1039 of file PlacementInfo.h.
|
inline |
Definition at line 1138 of file PlacementInfo.h.
|
inline |
Definition at line 1211 of file PlacementInfo.h.
|
inline |
Definition at line 1373 of file PlacementInfo.h.
|
inline |
Set the Anchor Location for the PlacementUnit.
meanwhile, if it is not the first iteration in placement, record last anchor location
x | |
y |
Definition at line 1052 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementUnpackedCell::setLockedAt().
|
inline |
Definition at line 1128 of file PlacementInfo.h.
Referenced by PlacementInfo::enforceLegalizeXYInArea(), IncrementalBELPacker::FFPairing(), PlacementInfo::loadPlacementUnitInformation(), IncrementalBELPacker::LUTFFPairing(), ParallelCLBPacker::timingDrivenDetailedPlacement_shortestPath_intermediate(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1144 of file PlacementInfo.h.
Referenced by PlacementInfo::loadPlacementUnitInformation(), PlacementInfo::PlacementUnpackedCell::setLockedAt(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1156 of file PlacementInfo.h.
Referenced by PlacementInfo::loadPlacementUnitInformation(), and PlacementInfo::PlacementUnpackedCell::setLockedAt().
|
inline |
Set the Nets Set Ptr object which records the nets connecting to the PlacementUnit.
_nets |
Definition at line 1221 of file PlacementInfo.h.
|
inline |
Definition at line 1369 of file PlacementInfo.h.
Referenced by IncrementalBELPacker::LUTFFPairing(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1171 of file PlacementInfo.h.
Referenced by PlacementInfo::loadPlacementUnitInformation(), and PlacementInfo::PlacementUnpackedCell::setLockedAt().
|
inline |
Set the Spread Location based on forgetting ratio.
x | |
y | |
forgetRatio | how much should the PlacementUnit forget the original location from later iteration |
Definition at line 1076 of file PlacementInfo.h.
|
inline |
Set the Spread Location based on forgetting ratio.
x | |
y | |
forgetRatio | how much should the PlacementUnit forget the original location from later iteration |
limitDisplacement | limit the displacement |
Definition at line 1102 of file PlacementInfo.h.
|
inline |
Definition at line 1150 of file PlacementInfo.h.
|
inline |
Definition at line 1161 of file PlacementInfo.h.
|
inline |
Definition at line 1196 of file PlacementInfo.h.
Referenced by IncrementalBELPacker::FFPairing(), InitialPacker::findBRAMMacros(), InitialPacker::findCARRYMacros(), InitialPacker::findDSPMacros(), InitialPacker::findLUTRAMMacros(), InitialPacker::findMuxMacros(), InitialPacker::findUnpackedUnits(), InitialPacker::loadOtherCLBMacros(), PlacementInfo::loadPlacementUnitInformation(), IncrementalBELPacker::LUTFFPairing(), InitialPacker::LUTFFPairing(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1024 of file PlacementInfo.h.
Referenced by PlacementInfo::enforceLegalizeXYInArea(), ParallelCLBPacker::exceptionPULegalize(), IncrementalBELPacker::FFLocation::FFLocation(), CLBLegalizer::getDisplacement(), MacroLegalizer::getDisplacement(), MacroLegalizer::getHPWLChange(), ParallelCLBPacker::PackingCLBSite::getHPWLChangeForPU(), operator<<(), ParallelCLBPacker::PULocation::PULocation(), GlobalPlacer::timingDrivenDetailedPlacement_shortestPath_intermediate(), ParallelCLBPacker::timingDrivenDetailedPlacement_shortestPath_intermediate(), GeneralSpreader::updatePlacementUnitsWithSpreadedCellLocations(), and WirelengthOptimizer::updatePseudoNetForUserDefinedClusters().
|
inline |
Definition at line 1029 of file PlacementInfo.h.
Referenced by PlacementInfo::enforceLegalizeXYInArea(), ParallelCLBPacker::exceptionPULegalize(), IncrementalBELPacker::FFLocation::FFLocation(), CLBLegalizer::getDisplacement(), MacroLegalizer::getDisplacement(), MacroLegalizer::getHPWLChange(), ParallelCLBPacker::PackingCLBSite::getHPWLChangeForPU(), operator<<(), and ParallelCLBPacker::PULocation::PULocation().
|
private |
Definition at line 1397 of file PlacementInfo.h.
Referenced by getAnchorLocation(), recordSpreadLocatin(), setAnchorLocation(), setAnchorLocationAndForgetTheOriginalOne(), setSpreadLocation(), setSpreadLocation_WithLimitDisplacement(), and X().
|
private |
Definition at line 1397 of file PlacementInfo.h.
Referenced by getAnchorLocation(), recordSpreadLocatin(), setAnchorLocation(), setAnchorLocationAndForgetTheOriginalOne(), setSpreadLocation(), setSpreadLocation_WithLimitDisplacement(), and Y().
|
private |
Definition at line 1430 of file PlacementInfo.h.
Referenced by addBRAM(), checkHasBRAM(), and getBRAMNum().
|
private |
Definition at line 1434 of file PlacementInfo.h.
Referenced by addCARRY(), checkHasCARRY(), getCARRYNum(), and isLCLB().
|
protected |
record the clock nets connected to this PlacementUnit
Definition at line 1392 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::addCell(), PlacementInfo::PlacementMacro::addVirtualCell(), getClockNets(), and PlacementInfo::PlacementUnpackedCell::PlacementUnpackedCell().
|
private |
Definition at line 1429 of file PlacementInfo.h.
Referenced by addDSP(), checkHasDSP(), and getDSPNum().
|
private |
Definition at line 1433 of file PlacementInfo.h.
Referenced by addFF(), and checkHasFF().
|
private |
fixed simply means the PlacementUnit cannot be moved.
Definition at line 1412 of file PlacementInfo.h.
Referenced by isFixed(), setFixed(), and setUnfixed().
|
private |
Definition at line 1396 of file PlacementInfo.h.
Referenced by PlacementInfo::PlacementMacro::getCell(), and getId().
|
private |
Definition at line 1398 of file PlacementInfo.h.
Referenced by lastX(), setAnchorLocation(), setAnchorLocationAndForgetTheOriginalOne(), setSpreadLocation(), and setSpreadLocation_WithLimitDisplacement().
|
private |
Definition at line 1398 of file PlacementInfo.h.
Referenced by lastY(), setAnchorLocation(), setAnchorLocationAndForgetTheOriginalOne(), setSpreadLocation(), and setSpreadLocation_WithLimitDisplacement().
|
private |
Definition at line 1399 of file PlacementInfo.h.
Referenced by recordSpreadLocatin(), setSpreadLocation(), and setSpreadLocation_WithLimitDisplacement().
|
private |
Definition at line 1399 of file PlacementInfo.h.
Referenced by recordSpreadLocatin(), setSpreadLocation(), and setSpreadLocation_WithLimitDisplacement().
|
private |
if locked, the attributes of the PlacementUnit cannot be changed (more than fixed.)
Definition at line 1426 of file PlacementInfo.h.
Referenced by isLocked(), setAnchorLocation(), setAnchorLocationAndForgetTheOriginalOne(), setFixed(), setLocked(), setPlaced(), setSpreadLocation(), setSpreadLocation_WithLimitDisplacement(), setUnfixed(), and setUnlocked().
|
private |
Definition at line 1432 of file PlacementInfo.h.
Referenced by addLUT(), checkHasLUT(), getLUTNum(), and isLCLB().
|
private |
Definition at line 1431 of file PlacementInfo.h.
Referenced by addLUTRAM(), checkHasLUTRAM(), getLUTRAMNum(), and isMCLB().
|
private |
Definition at line 1435 of file PlacementInfo.h.
Referenced by addMUX(), checkHasMUX(), and getMUXNum().
|
private |
Definition at line 1395 of file PlacementInfo.h.
Referenced by getName().
|
private |
record the nets connected to this PlacementUnit
Definition at line 1406 of file PlacementInfo.h.
Referenced by getNetsSetPtr(), getUnitsBeDrivenByThisPU(), getUnitsDriveThisPU(), and setNetsSetPtr().
|
private |
Definition at line 1436 of file PlacementInfo.h.
Referenced by getUnitsBeDrivenByThisPU().
|
private |
Definition at line 1437 of file PlacementInfo.h.
Referenced by getUnitsDriveThisPU().
|
private |
Definition at line 1439 of file PlacementInfo.h.
Referenced by isPacked(), resetPacked(), and setPacked().
|
private |
the PlacementUnit is placed to BEL slot.
Currently, this attribute is not used.
Definition at line 1420 of file PlacementInfo.h.
Referenced by isPlaced(), and setPlaced().
|
private |
Definition at line 1400 of file PlacementInfo.h.
Referenced by getType().
|
private |
Definition at line 1427 of file PlacementInfo.h.
Referenced by getWeight(), and setWeight().