AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Site class for site on device. More...
#include <DeviceInfo.h>
Classes | |
class | DeviceSitePinInfos |
a class record the pin on the site boundary More... | |
Public Member Functions | |
DeviceSite (std::string &name, std::string &siteType, DeviceElement *parentPtr, float locX, float locY, int clockRegionX, int clockRegionY, int id) | |
Construct a new Device Site object. More... | |
~DeviceSite () | |
void | setTile (DeviceElement *parentTilePtr) |
DeviceTile * | getTile () |
void | setParentSite (DeviceElement *parentSitePtr) |
Set the Parent Site object. More... | |
DeviceSite * | getParentSite () |
void | addChildSite (DeviceElement *parentSitePtr) |
Set the Parent Site object. More... | |
std::vector< DeviceSite * > & | getChildrenSites () |
void | setSiteLocation (float x, float y) |
std::string & | getSiteType () |
void | addChildBEL (DeviceBEL *child) |
std::vector< DeviceBEL * > & | getChildrenBELs () |
float | X () |
float | Y () |
DeviceSitePinInfos * | getSitePinInfos () |
void | setSitePinInfos (DeviceSitePinInfos *_sitePins) |
bool | isOccupied () |
check whether this site is occupied by fixed element More... | |
void | setOccupied () |
bool | isMapped () |
check whether this site is mapped to an design element (might be movable elements) More... | |
void | setMapped () |
void | resetMapped () |
int | getSiteY () |
int | getSiteX () |
int | getClockRegionX () |
int | getClockRegionY () |
void | setClockRegion (ClockRegion *_clockRegion) |
ClockRegion * | getClockRegion () |
void | setClockHalfColumn (ClockColumn *_clockHalfColumn) |
ClockColumn * | getClockHalfColumn () |
Public Member Functions inherited from DeviceInfo::DeviceElement | |
DeviceElement (std::string &name, DeviceElement *parentPtr, DeviceElementType type, int id) | |
DeviceElement (std::string &name, DeviceElementType type, int id) | |
virtual | ~DeviceElement () |
std::string & | getName () |
DeviceElement * | getParentPtr () |
DeviceElementType | getElementType () |
int | getElementIdInParent () |
Private Attributes | |
std::string | siteType |
ClockRegion * | clockRegion = nullptr |
ClockColumn * | clockHalfColumn = nullptr |
std::vector< DeviceBEL * > | childrenBELs |
DeviceSite * | parentSite |
std::vector< DeviceSite * > | childrenSites |
DeviceTile * | parentTile = nullptr |
DeviceSitePinInfos * | sitePins = nullptr |
float | locX |
float | locY |
int | clockRegionX = -1 |
int | clockRegionY = -1 |
int | siteY |
int | siteX |
bool | occupied = false |
a flag that this site is occupied by fixed element More... | |
bool | mapped = false |
a flag that this site is mapped to an design element (might be movable elements) More... | |
Site class for site on device.
A site contains a combination of BEL. This class record the name/type/location/clockRegion of the site
Definition at line 162 of file DeviceInfo.h.
|
inline |
Construct a new Device Site object.
name | the name of the site |
siteType | a string for the type of the site |
parentPtr | the tile that contains this site |
locX | |
locY | |
clockRegionX | |
clockRegionY | |
id |
Definition at line 177 of file DeviceInfo.h.
|
inline |
Definition at line 207 of file DeviceInfo.h.
|
inline |
Definition at line 278 of file DeviceInfo.h.
Referenced by DeviceInfo::addBEL().
void DeviceInfo::DeviceSite::addChildSite | ( | DeviceElement * | parentSitePtr | ) |
Set the Parent Site object.
it seems that some sites on FPGA might contain children site?
parentSitePtr |
Definition at line 455 of file DeviceInfo.cc.
|
inline |
Definition at line 283 of file DeviceInfo.h.
|
inline |
Definition at line 262 of file DeviceInfo.h.
Referenced by DeviceInfo::addBEL().
|
inline |
Definition at line 377 of file DeviceInfo.h.
Referenced by PlacementInfo::addPUIntoClockColumn(), PlacementInfo::checkClockColumnLegalization(), PlacementInfo::getClockColumnUtilizationIncrease(), and PlacementInfo::printOutClockColumnLegalization().
|
inline |
Definition at line 367 of file DeviceInfo.h.
|
inline |
Definition at line 352 of file DeviceInfo.h.
Referenced by PlacementInfo::PlacementBinInfo::addSiteIntoBin(), and DeviceInfo::ClockRegion::ClockRegion().
|
inline |
Definition at line 357 of file DeviceInfo.h.
Referenced by DeviceInfo::ClockRegion::ClockRegion().
|
inline |
Definition at line 249 of file DeviceInfo.h.
|
inline |
Definition at line 297 of file DeviceInfo.h.
|
inline |
Definition at line 273 of file DeviceInfo.h.
Referenced by DeviceInfo::addSite(), and ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::isPUTypeCompatibleWithSiteType().
|
inline |
Definition at line 346 of file DeviceInfo.h.
|
inline |
Definition at line 340 of file DeviceInfo.h.
|
inline |
Definition at line 235 of file DeviceInfo.h.
Referenced by DeviceInfo::ClockRegion::addSite(), and DeviceInfo::ClockRegion::ClockRegion().
|
inline |
check whether this site is mapped to an design element (might be movable elements)
Definition at line 327 of file DeviceInfo.h.
|
inline |
check whether this site is occupied by fixed element
Definition at line 312 of file DeviceInfo.h.
|
inline |
Definition at line 335 of file DeviceInfo.h.
|
inline |
Definition at line 372 of file DeviceInfo.h.
|
inline |
Definition at line 362 of file DeviceInfo.h.
Referenced by DeviceInfo::ClockRegion::addSite(), and DeviceInfo::ClockRegion::ClockRegion().
|
inline |
Definition at line 331 of file DeviceInfo.h.
Referenced by PlacementInfo::loadPlacementUnitInformation().
|
inline |
Definition at line 316 of file DeviceInfo.h.
Referenced by InitialPacker::loadFixedPlacementUnits(), and PlacementInfo::PlacementUnpackedCell::setLockedAt().
void DeviceInfo::DeviceSite::setParentSite | ( | DeviceElement * | parentSitePtr | ) |
Set the Parent Site object.
it seems that some sites on FPGA might contain children site?
parentSitePtr |
Definition at line 451 of file DeviceInfo.cc.
|
inline |
Definition at line 267 of file DeviceInfo.h.
|
inline |
Definition at line 301 of file DeviceInfo.h.
void DeviceInfo::DeviceSite::setTile | ( | DeviceElement * | parentTilePtr | ) |
Definition at line 444 of file DeviceInfo.cc.
Referenced by DeviceSite().
|
inline |
Definition at line 288 of file DeviceInfo.h.
Referenced by DeviceInfo::ClockColumn::addSite(), DeviceInfo::ClockRegion::addSite(), PlacementInfo::PlacementBinInfo::addSiteIntoBin(), PlacementInfo::PlacementSiteBinInfo::addSiteIntoBin(), DeviceInfo::ClockRegion::ClockRegion(), CLBLegalizer::getDisplacement(), MacroLegalizer::getDisplacement(), PlacementInfo::getDisplacement(), CLBLegalizer::getHPWLChange(), MacroLegalizer::getHPWLChange(), ParallelCLBPacker::PackingCLBSite::getHPWLChangeForPU(), InitialPacker::loadFixedPlacementUnits(), operator<<(), ParallelCLBPacker::ripUpAndLegalizae(), PlacementInfo::PlacementUnpackedCell::setLockedAt(), siteSortCmp(), and ParallelCLBPacker::timingDrivenDetailedPlacement_swap().
|
inline |
Definition at line 292 of file DeviceInfo.h.
Referenced by DeviceInfo::ClockColumn::addSite(), DeviceInfo::ClockRegion::addSite(), PlacementInfo::PlacementBinInfo::addSiteIntoBin(), PlacementInfo::PlacementSiteBinInfo::addSiteIntoBin(), DeviceInfo::ClockRegion::ClockRegion(), CLBLegalizer::getDisplacement(), MacroLegalizer::getDisplacement(), PlacementInfo::getDisplacement(), CLBLegalizer::getHPWLChange(), MacroLegalizer::getHPWLChange(), ParallelCLBPacker::PackingCLBSite::getHPWLChangeForPU(), InitialPacker::loadFixedPlacementUnits(), operator<<(), ParallelCLBPacker::ripUpAndLegalizae(), PlacementInfo::PlacementUnpackedCell::setLockedAt(), siteSortCmp(), and ParallelCLBPacker::timingDrivenDetailedPlacement_swap().
|
private |
Definition at line 386 of file DeviceInfo.h.
Referenced by addChildBEL(), and getChildrenBELs().
|
private |
Definition at line 388 of file DeviceInfo.h.
Referenced by getChildrenSites().
|
private |
Definition at line 385 of file DeviceInfo.h.
Referenced by getClockHalfColumn(), and setClockHalfColumn().
|
private |
Definition at line 384 of file DeviceInfo.h.
Referenced by getClockRegion(), and setClockRegion().
|
private |
Definition at line 393 of file DeviceInfo.h.
Referenced by getClockRegionX().
|
private |
Definition at line 394 of file DeviceInfo.h.
Referenced by getClockRegionY().
|
private |
Definition at line 391 of file DeviceInfo.h.
Referenced by setSiteLocation(), and X().
|
private |
Definition at line 392 of file DeviceInfo.h.
Referenced by setSiteLocation(), and Y().
|
private |
a flag that this site is mapped to an design element (might be movable elements)
Definition at line 408 of file DeviceInfo.h.
Referenced by isMapped(), resetMapped(), and setMapped().
|
private |
a flag that this site is occupied by fixed element
Definition at line 402 of file DeviceInfo.h.
Referenced by isOccupied(), and setOccupied().
|
private |
Definition at line 387 of file DeviceInfo.h.
Referenced by getParentSite().
|
private |
Definition at line 389 of file DeviceInfo.h.
Referenced by getTile().
|
private |
Definition at line 390 of file DeviceInfo.h.
Referenced by getSitePinInfos(), setSitePinInfos(), and ~DeviceSite().
|
private |
Definition at line 383 of file DeviceInfo.h.
Referenced by getSiteType().
|
private |
Definition at line 396 of file DeviceInfo.h.
Referenced by DeviceSite(), and getSiteX().
|
private |
Definition at line 395 of file DeviceInfo.h.
Referenced by DeviceSite(), and getSiteY().