AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
DeviceInfo::DeviceSite Class Reference

Site class for site on device. More...

#include <DeviceInfo.h>

Inheritance diagram for DeviceInfo::DeviceSite:
Collaboration diagram for DeviceInfo::DeviceSite:

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)
 
DeviceTilegetTile ()
 
void setParentSite (DeviceElement *parentSitePtr)
 Set the Parent Site object. More...
 
DeviceSitegetParentSite ()
 
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 ()
 
DeviceSitePinInfosgetSitePinInfos ()
 
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)
 
ClockRegiongetClockRegion ()
 
void setClockHalfColumn (ClockColumn *_clockHalfColumn)
 
ClockColumngetClockHalfColumn ()
 
- 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 ()
 
DeviceElementgetParentPtr ()
 
DeviceElementType getElementType ()
 
int getElementIdInParent ()
 

Private Attributes

std::string siteType
 
ClockRegionclockRegion = nullptr
 
ClockColumnclockHalfColumn = nullptr
 
std::vector< DeviceBEL * > childrenBELs
 
DeviceSiteparentSite
 
std::vector< DeviceSite * > childrenSites
 
DeviceTileparentTile = nullptr
 
DeviceSitePinInfossitePins = 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...
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ DeviceSite()

DeviceInfo::DeviceSite::DeviceSite ( std::string &  name,
std::string &  siteType,
DeviceElement parentPtr,
float  locX,
float  locY,
int  clockRegionX,
int  clockRegionY,
int  id 
)
inline

Construct a new Device Site object.

Parameters
namethe name of the site
siteTypea string for the type of the site
parentPtrthe tile that contains this site
locX
locY
clockRegionX
clockRegionY
id

Definition at line 177 of file DeviceInfo.h.

Here is the call graph for this function:

◆ ~DeviceSite()

DeviceInfo::DeviceSite::~DeviceSite ( )
inline

Definition at line 207 of file DeviceInfo.h.

Member Function Documentation

◆ addChildBEL()

void DeviceInfo::DeviceSite::addChildBEL ( DeviceBEL child)
inline

Definition at line 278 of file DeviceInfo.h.

Referenced by DeviceInfo::addBEL().

Here is the caller graph for this function:

◆ addChildSite()

void DeviceInfo::DeviceSite::addChildSite ( DeviceElement parentSitePtr)

Set the Parent Site object.

it seems that some sites on FPGA might contain children site?

Parameters
parentSitePtr

Definition at line 455 of file DeviceInfo.cc.

◆ getChildrenBELs()

std::vector<DeviceBEL *>& DeviceInfo::DeviceSite::getChildrenBELs ( )
inline

Definition at line 283 of file DeviceInfo.h.

◆ getChildrenSites()

std::vector<DeviceSite *>& DeviceInfo::DeviceSite::getChildrenSites ( )
inline

Definition at line 262 of file DeviceInfo.h.

Referenced by DeviceInfo::addBEL().

Here is the caller graph for this function:

◆ getClockHalfColumn()

ClockColumn* DeviceInfo::DeviceSite::getClockHalfColumn ( )
inline

◆ getClockRegion()

ClockRegion* DeviceInfo::DeviceSite::getClockRegion ( )
inline

Definition at line 367 of file DeviceInfo.h.

◆ getClockRegionX()

int DeviceInfo::DeviceSite::getClockRegionX ( )
inline

Definition at line 352 of file DeviceInfo.h.

Referenced by PlacementInfo::PlacementBinInfo::addSiteIntoBin(), and DeviceInfo::ClockRegion::ClockRegion().

Here is the caller graph for this function:

◆ getClockRegionY()

int DeviceInfo::DeviceSite::getClockRegionY ( )
inline

Definition at line 357 of file DeviceInfo.h.

Referenced by DeviceInfo::ClockRegion::ClockRegion().

Here is the caller graph for this function:

◆ getParentSite()

DeviceSite* DeviceInfo::DeviceSite::getParentSite ( )
inline

Definition at line 249 of file DeviceInfo.h.

◆ getSitePinInfos()

DeviceSitePinInfos* DeviceInfo::DeviceSite::getSitePinInfos ( )
inline

Definition at line 297 of file DeviceInfo.h.

◆ getSiteType()

std::string& DeviceInfo::DeviceSite::getSiteType ( )
inline

Definition at line 273 of file DeviceInfo.h.

Referenced by DeviceInfo::addSite(), and ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::isPUTypeCompatibleWithSiteType().

Here is the caller graph for this function:

◆ getSiteX()

int DeviceInfo::DeviceSite::getSiteX ( )
inline

Definition at line 346 of file DeviceInfo.h.

◆ getSiteY()

int DeviceInfo::DeviceSite::getSiteY ( )
inline

Definition at line 340 of file DeviceInfo.h.

◆ getTile()

DeviceTile* DeviceInfo::DeviceSite::getTile ( )
inline

Definition at line 235 of file DeviceInfo.h.

Referenced by DeviceInfo::ClockRegion::addSite(), and DeviceInfo::ClockRegion::ClockRegion().

Here is the caller graph for this function:

◆ isMapped()

bool DeviceInfo::DeviceSite::isMapped ( )
inline

check whether this site is mapped to an design element (might be movable elements)

Returns
true
false

Definition at line 327 of file DeviceInfo.h.

◆ isOccupied()

bool DeviceInfo::DeviceSite::isOccupied ( )
inline

check whether this site is occupied by fixed element

Returns
true
false

Definition at line 312 of file DeviceInfo.h.

◆ resetMapped()

void DeviceInfo::DeviceSite::resetMapped ( )
inline

Definition at line 335 of file DeviceInfo.h.

◆ setClockHalfColumn()

void DeviceInfo::DeviceSite::setClockHalfColumn ( ClockColumn _clockHalfColumn)
inline

Definition at line 372 of file DeviceInfo.h.

◆ setClockRegion()

void DeviceInfo::DeviceSite::setClockRegion ( ClockRegion _clockRegion)
inline

Definition at line 362 of file DeviceInfo.h.

Referenced by DeviceInfo::ClockRegion::addSite(), and DeviceInfo::ClockRegion::ClockRegion().

Here is the caller graph for this function:

◆ setMapped()

void DeviceInfo::DeviceSite::setMapped ( )
inline

Definition at line 331 of file DeviceInfo.h.

Referenced by PlacementInfo::loadPlacementUnitInformation().

Here is the caller graph for this function:

◆ setOccupied()

void DeviceInfo::DeviceSite::setOccupied ( )
inline

Definition at line 316 of file DeviceInfo.h.

Referenced by InitialPacker::loadFixedPlacementUnits(), and PlacementInfo::PlacementUnpackedCell::setLockedAt().

Here is the caller graph for this function:

◆ setParentSite()

void DeviceInfo::DeviceSite::setParentSite ( DeviceElement parentSitePtr)

Set the Parent Site object.

it seems that some sites on FPGA might contain children site?

Parameters
parentSitePtr

Definition at line 451 of file DeviceInfo.cc.

◆ setSiteLocation()

void DeviceInfo::DeviceSite::setSiteLocation ( float  x,
float  y 
)
inline

Definition at line 267 of file DeviceInfo.h.

◆ setSitePinInfos()

void DeviceInfo::DeviceSite::setSitePinInfos ( DeviceSitePinInfos _sitePins)
inline

Definition at line 301 of file DeviceInfo.h.

◆ setTile()

void DeviceInfo::DeviceSite::setTile ( DeviceElement parentTilePtr)

Definition at line 444 of file DeviceInfo.cc.

Referenced by DeviceSite().

Here is the caller graph for this function:

◆ X()

◆ Y()

Member Data Documentation

◆ childrenBELs

std::vector<DeviceBEL *> DeviceInfo::DeviceSite::childrenBELs
private

Definition at line 386 of file DeviceInfo.h.

Referenced by addChildBEL(), and getChildrenBELs().

◆ childrenSites

std::vector<DeviceSite *> DeviceInfo::DeviceSite::childrenSites
private

Definition at line 388 of file DeviceInfo.h.

Referenced by getChildrenSites().

◆ clockHalfColumn

ClockColumn* DeviceInfo::DeviceSite::clockHalfColumn = nullptr
private

Definition at line 385 of file DeviceInfo.h.

Referenced by getClockHalfColumn(), and setClockHalfColumn().

◆ clockRegion

ClockRegion* DeviceInfo::DeviceSite::clockRegion = nullptr
private

Definition at line 384 of file DeviceInfo.h.

Referenced by getClockRegion(), and setClockRegion().

◆ clockRegionX

int DeviceInfo::DeviceSite::clockRegionX = -1
private

Definition at line 393 of file DeviceInfo.h.

Referenced by getClockRegionX().

◆ clockRegionY

int DeviceInfo::DeviceSite::clockRegionY = -1
private

Definition at line 394 of file DeviceInfo.h.

Referenced by getClockRegionY().

◆ locX

float DeviceInfo::DeviceSite::locX
private

Definition at line 391 of file DeviceInfo.h.

Referenced by setSiteLocation(), and X().

◆ locY

float DeviceInfo::DeviceSite::locY
private

Definition at line 392 of file DeviceInfo.h.

Referenced by setSiteLocation(), and Y().

◆ mapped

bool DeviceInfo::DeviceSite::mapped = false
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().

◆ occupied

bool DeviceInfo::DeviceSite::occupied = false
private

a flag that this site is occupied by fixed element

Definition at line 402 of file DeviceInfo.h.

Referenced by isOccupied(), and setOccupied().

◆ parentSite

DeviceSite* DeviceInfo::DeviceSite::parentSite
private

Definition at line 387 of file DeviceInfo.h.

Referenced by getParentSite().

◆ parentTile

DeviceTile* DeviceInfo::DeviceSite::parentTile = nullptr
private

Definition at line 389 of file DeviceInfo.h.

Referenced by getTile().

◆ sitePins

DeviceSitePinInfos* DeviceInfo::DeviceSite::sitePins = nullptr
private

Definition at line 390 of file DeviceInfo.h.

Referenced by getSitePinInfos(), setSitePinInfos(), and ~DeviceSite().

◆ siteType

std::string DeviceInfo::DeviceSite::siteType
private

Definition at line 383 of file DeviceInfo.h.

Referenced by getSiteType().

◆ siteX

int DeviceInfo::DeviceSite::siteX
private

Definition at line 396 of file DeviceInfo.h.

Referenced by DeviceSite(), and getSiteX().

◆ siteY

int DeviceInfo::DeviceSite::siteY
private

Definition at line 395 of file DeviceInfo.h.

Referenced by DeviceSite(), and getSiteY().


The documentation for this class was generated from the following files: