AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
PlacementTimingInfo Class Reference

PlacementTimingInfo is the container which record the timing information related to placement. More...

#include <PlacementTimingInfo.h>

Collaboration diagram for PlacementTimingInfo:

Classes

class  TimingGraph
 a directed graph for timing analysis More...
 

Public Member Functions

 PlacementTimingInfo (DesignInfo *designInfo, DeviceInfo *deviceInfo, std::map< std::string, std::string > &JSONCfg)
 Construct a new Placement Timing Info object based on the information of design and device. More...
 
 ~PlacementTimingInfo ()
 
void buildSimpleTimingGraph ()
 build a simple timing graph, where the inner delay between pin paris for an element will be identical More...
 
std::vector< TimingGraph< DesignInfo::DesignCell >::TimingNode * > & getSimplePlacementTimingInfo ()
 Get the Simple Timing Info object which regard design cells as timing nodes. More...
 
std::vector< TimingGraph< DesignInfo::DesignCell >::TimingNode * > & getSimplePlacementTimingInfo_PathLenSorted ()
 
TimingGraph< DesignInfo::DesignCell > * getSimplePlacementTimingGraph ()
 Get the Simple Placement Timing Graph object. More...
 
int getLongPathThresholdLevel ()
 
int getMediumPathThresholdLevel ()
 
DeviceInfogetDeviceInfo ()
 
void setDSPInnerDelay ()
 

Private Attributes

DesignInfodesignInfo
 
DeviceInfodeviceInfo
 
std::map< std::string, std::string > & JSONCfg
 
TimingGraph< DesignInfo::DesignCell > * simpleTimingGraph = nullptr
 
bool verbose = false
 
float clockPeriod = 10.0
 
bool DSPCritical = false
 
std::map< DesignInfo::DesignNet *, float > clockNet2Period
 
std::map< int, float > cellId2Period
 

Detailed Description

PlacementTimingInfo is the container which record the timing information related to placement.

Definition at line 48 of file PlacementTimingInfo.h.

Constructor & Destructor Documentation

◆ PlacementTimingInfo()

PlacementTimingInfo::PlacementTimingInfo ( DesignInfo designInfo,
DeviceInfo deviceInfo,
std::map< std::string, std::string > &  JSONCfg 
)

Construct a new Placement Timing Info object based on the information of design and device.

Parameters
designInfopointer of design information
deviceInfopointer of device information
JSONCfgthe user-defined placement configuration

Definition at line 35 of file PlacementTimingInfo.cc.

Here is the call graph for this function:

◆ ~PlacementTimingInfo()

PlacementTimingInfo::~PlacementTimingInfo ( )
inline

Definition at line 59 of file PlacementTimingInfo.h.

Member Function Documentation

◆ buildSimpleTimingGraph()

void PlacementTimingInfo::buildSimpleTimingGraph ( )

build a simple timing graph, where the inner delay between pin paris for an element will be identical

Definition at line 92 of file PlacementTimingInfo.cc.

Referenced by PlacementInfo::buildSimpleTimingGraph().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getDeviceInfo()

DeviceInfo* PlacementTimingInfo::getDeviceInfo ( )
inline

Definition at line 865 of file PlacementTimingInfo.h.

◆ getLongPathThresholdLevel()

int PlacementTimingInfo::getLongPathThresholdLevel ( )
inline

Definition at line 855 of file PlacementTimingInfo.h.

Referenced by PlacementInfo::buildSimpleTimingGraph().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getMediumPathThresholdLevel()

int PlacementTimingInfo::getMediumPathThresholdLevel ( )
inline

Definition at line 860 of file PlacementTimingInfo.h.

Referenced by PlacementInfo::buildSimpleTimingGraph().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getSimplePlacementTimingGraph()

◆ getSimplePlacementTimingInfo()

◆ getSimplePlacementTimingInfo_PathLenSorted()

std::vector<TimingGraph<DesignInfo::DesignCell>::TimingNode *>& PlacementTimingInfo::getSimplePlacementTimingInfo_PathLenSorted ( )
inline

Definition at line 840 of file PlacementTimingInfo.h.

Referenced by PlacementTimingOptimizer::clusterLongPathInOneClockRegion(), and ClusterPlacer::createLongPathClusterUnits().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDSPInnerDelay()

void PlacementTimingInfo::setDSPInnerDelay ( )

Definition at line 74 of file PlacementTimingInfo.cc.

Referenced by AMFPlacer::run().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ cellId2Period

std::map<int, float> PlacementTimingInfo::cellId2Period
private

Definition at line 886 of file PlacementTimingInfo.h.

Referenced by buildSimpleTimingGraph(), and PlacementTimingInfo().

◆ clockNet2Period

std::map<DesignInfo::DesignNet *, float> PlacementTimingInfo::clockNet2Period
private

Definition at line 885 of file PlacementTimingInfo.h.

Referenced by PlacementTimingInfo().

◆ clockPeriod

float PlacementTimingInfo::clockPeriod = 10.0
private

Definition at line 882 of file PlacementTimingInfo.h.

Referenced by buildSimpleTimingGraph(), and PlacementTimingInfo().

◆ designInfo

DesignInfo* PlacementTimingInfo::designInfo
private

◆ deviceInfo

DeviceInfo* PlacementTimingInfo::deviceInfo
private

Definition at line 874 of file PlacementTimingInfo.h.

Referenced by getDeviceInfo().

◆ DSPCritical

bool PlacementTimingInfo::DSPCritical = false
private

◆ JSONCfg

std::map<std::string, std::string>& PlacementTimingInfo::JSONCfg
private

Definition at line 877 of file PlacementTimingInfo.h.

Referenced by PlacementTimingInfo().

◆ simpleTimingGraph

◆ verbose

bool PlacementTimingInfo::verbose = false
private

Definition at line 880 of file PlacementTimingInfo.h.

Referenced by PlacementTimingInfo().


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