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

class for clock regions on FPGA More...

#include <DeviceInfo.h>

Public Member Functions

 ClockRegion (DeviceSite *curSite)
 Construct a new Clock Region object. More...
 
 ~ClockRegion ()
 
void addSite (DeviceSite *tmpSite)
 add a site in the clock region and update the boundary of the clock region More...
 
void setLeft (float x)
 
void setRight (float x)
 
void setTop (float y)
 
void setBottom (float y)
 
float getLeft ()
 Get the Left boundary of the clock region. More...
 
float getRight ()
 Get the Right boundary of the clock region. More...
 
float getTop ()
 Get the Top boundary of the clock region. More...
 
float getBottom ()
 Get the Bottom boundary of the clock region. More...
 
void mapSiteToClockColumns ()
 for the clock column constraints, we need to map site to columns. More...
 
void resetClockUtilizationInfo ()
 reset the clock utilization for each column in the clock region More...
 
void addClockAndCell (int clockNetId, int cellId, float x, float y)
 add a cell into the clock region More...
 
int getMaxUtilizationOfClockColumns ()
 Get the Max Utilization Of Clock Columns. More...
 
ClockColumngetMaxUtilizationClockColumnsPtr ()
 
std::vector< std::vector< ClockColumn * > > & getClockColumns ()
 

Private Attributes

std::vector< DeviceSite * > sites
 
std::set< DeviceTile * > tiles
 
std::vector< std::vector< ClockColumn * > > clockColumns
 
int columnNumY = 2
 
int gridX
 
int gridY
 
float leftX
 
float rightX
 
float topY
 
float bottomY
 
int leftSiteX
 
int bottomSiteY
 
int rightSiteX
 
int topSiteY
 
int leftTileIdX = 1000000
 
int bottomTileIdY = 1000000
 
int rightTileIdX = -1
 
int topTileIdY = -1
 
float colHeight
 
float colWidth
 

Detailed Description

class for clock regions on FPGA

Clock region is a concept in the FPGA clocking to constrain the number of clocks in a specific region

Definition at line 651 of file DeviceInfo.h.

Constructor & Destructor Documentation

◆ ClockRegion()

DeviceInfo::ClockRegion::ClockRegion ( DeviceSite curSite)
inline

Construct a new Clock Region object.

Parameters
curSitea site in the clock region for some variables' initialization

Definition at line 659 of file DeviceInfo.h.

Here is the call graph for this function:

◆ ~ClockRegion()

DeviceInfo::ClockRegion::~ClockRegion ( )
inline

Definition at line 675 of file DeviceInfo.h.

Member Function Documentation

◆ addClockAndCell()

void DeviceInfo::ClockRegion::addClockAndCell ( int  clockNetId,
int  cellId,
float  x,
float  y 
)
inline

add a cell into the clock region

Parameters
clockNetIdthe driver clock net (id) of the cell
cellId
xcell location X
ycell location Y

Definition at line 802 of file DeviceInfo.h.

◆ addSite()

void DeviceInfo::ClockRegion::addSite ( DeviceSite tmpSite)
inline

add a site in the clock region and update the boundary of the clock region

Parameters
tmpSite

Definition at line 694 of file DeviceInfo.h.

Here is the call graph for this function:

◆ getBottom()

float DeviceInfo::ClockRegion::getBottom ( )
inline

Get the Bottom boundary of the clock region.

Returns
float

Definition at line 768 of file DeviceInfo.h.

◆ getClockColumns()

std::vector<std::vector<ClockColumn *> >& DeviceInfo::ClockRegion::getClockColumns ( )
inline

Definition at line 877 of file DeviceInfo.h.

◆ getLeft()

float DeviceInfo::ClockRegion::getLeft ( )
inline

Get the Left boundary of the clock region.

Returns
float

Definition at line 738 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

Here is the caller graph for this function:

◆ getMaxUtilizationClockColumnsPtr()

ClockColumn* DeviceInfo::ClockRegion::getMaxUtilizationClockColumnsPtr ( )
inline

Definition at line 856 of file DeviceInfo.h.

Here is the call graph for this function:

◆ getMaxUtilizationOfClockColumns()

int DeviceInfo::ClockRegion::getMaxUtilizationOfClockColumns ( )
inline

Get the Max Utilization Of Clock Columns.

Returns
int

Definition at line 837 of file DeviceInfo.h.

◆ getRight()

float DeviceInfo::ClockRegion::getRight ( )
inline

Get the Right boundary of the clock region.

Returns
float

Definition at line 748 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

Here is the caller graph for this function:

◆ getTop()

float DeviceInfo::ClockRegion::getTop ( )
inline

Get the Top boundary of the clock region.

Returns
float

Definition at line 758 of file DeviceInfo.h.

◆ mapSiteToClockColumns()

void DeviceInfo::ClockRegion::mapSiteToClockColumns ( )

for the clock column constraints, we need to map site to columns.

Definition at line 264 of file DeviceInfo.cc.

Here is the call graph for this function:

◆ resetClockUtilizationInfo()

void DeviceInfo::ClockRegion::resetClockUtilizationInfo ( )
inline

reset the clock utilization for each column in the clock region

Definition at line 783 of file DeviceInfo.h.

◆ setBottom()

void DeviceInfo::ClockRegion::setBottom ( float  y)
inline

Definition at line 728 of file DeviceInfo.h.

◆ setLeft()

void DeviceInfo::ClockRegion::setLeft ( float  x)
inline

Definition at line 713 of file DeviceInfo.h.

◆ setRight()

void DeviceInfo::ClockRegion::setRight ( float  x)
inline

Definition at line 718 of file DeviceInfo.h.

◆ setTop()

void DeviceInfo::ClockRegion::setTop ( float  y)
inline

Definition at line 723 of file DeviceInfo.h.

Member Data Documentation

◆ bottomSiteY

int DeviceInfo::ClockRegion::bottomSiteY
private

Definition at line 889 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ bottomTileIdY

int DeviceInfo::ClockRegion::bottomTileIdY = 1000000
private

Definition at line 890 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ bottomY

float DeviceInfo::ClockRegion::bottomY
private

◆ clockColumns

std::vector<std::vector<ClockColumn *> > DeviceInfo::ClockRegion::clockColumns
private

◆ colHeight

float DeviceInfo::ClockRegion::colHeight
private

Definition at line 891 of file DeviceInfo.h.

Referenced by addClockAndCell(), and mapSiteToClockColumns().

◆ columnNumY

int DeviceInfo::ClockRegion::columnNumY = 2
private

Definition at line 886 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ colWidth

float DeviceInfo::ClockRegion::colWidth
private

Definition at line 892 of file DeviceInfo.h.

Referenced by addClockAndCell(), and mapSiteToClockColumns().

◆ gridX

int DeviceInfo::ClockRegion::gridX
private

Definition at line 887 of file DeviceInfo.h.

Referenced by ClockRegion().

◆ gridY

int DeviceInfo::ClockRegion::gridY
private

Definition at line 887 of file DeviceInfo.h.

Referenced by ClockRegion().

◆ leftSiteX

int DeviceInfo::ClockRegion::leftSiteX
private

Definition at line 889 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ leftTileIdX

int DeviceInfo::ClockRegion::leftTileIdX = 1000000
private

Definition at line 890 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ leftX

float DeviceInfo::ClockRegion::leftX
private

◆ rightSiteX

int DeviceInfo::ClockRegion::rightSiteX
private

Definition at line 889 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ rightTileIdX

int DeviceInfo::ClockRegion::rightTileIdX = -1
private

Definition at line 890 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ rightX

float DeviceInfo::ClockRegion::rightX
private

Definition at line 888 of file DeviceInfo.h.

Referenced by addSite(), ClockRegion(), getRight(), mapSiteToClockColumns(), and setRight().

◆ sites

std::vector<DeviceSite *> DeviceInfo::ClockRegion::sites
private

Definition at line 883 of file DeviceInfo.h.

Referenced by addSite(), ClockRegion(), mapSiteToClockColumns(), and ~ClockRegion().

◆ tiles

std::set<DeviceTile *> DeviceInfo::ClockRegion::tiles
private

Definition at line 884 of file DeviceInfo.h.

Referenced by addSite(), and ClockRegion().

◆ topSiteY

int DeviceInfo::ClockRegion::topSiteY
private

Definition at line 889 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ topTileIdY

int DeviceInfo::ClockRegion::topTileIdY = -1
private

Definition at line 890 of file DeviceInfo.h.

Referenced by mapSiteToClockColumns().

◆ topY

float DeviceInfo::ClockRegion::topY
private

Definition at line 888 of file DeviceInfo.h.

Referenced by addSite(), ClockRegion(), getTop(), mapSiteToClockColumns(), and setTop().


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