AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
PlacementTimingInfo is the container which record the timing information related to placement. More...
#include <PlacementTimingInfo.h>
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 () |
DeviceInfo * | getDeviceInfo () |
void | setDSPInnerDelay () |
Private Attributes | |
DesignInfo * | designInfo |
DeviceInfo * | deviceInfo |
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 |
PlacementTimingInfo is the container which record the timing information related to placement.
Definition at line 48 of file PlacementTimingInfo.h.
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.
designInfo | pointer of design information |
deviceInfo | pointer of device information |
JSONCfg | the user-defined placement configuration |
Definition at line 35 of file PlacementTimingInfo.cc.
|
inline |
Definition at line 59 of file PlacementTimingInfo.h.
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().
|
inline |
Definition at line 865 of file PlacementTimingInfo.h.
|
inline |
Definition at line 855 of file PlacementTimingInfo.h.
Referenced by PlacementInfo::buildSimpleTimingGraph().
|
inline |
Definition at line 860 of file PlacementTimingInfo.h.
Referenced by PlacementInfo::buildSimpleTimingGraph().
|
inline |
Get the Simple Placement Timing Graph object.
Definition at line 850 of file PlacementTimingInfo.h.
Referenced by WirelengthOptimizer::addPseudoNet_SlackBased(), ParallelCLBPacker::PackingCLBSite::checkDirectLUTFFConnect_slack(), PlacementTimingOptimizer::clusterLongPathInOneClockRegion(), PlacementTimingOptimizer::conductStaticTimingAnalysis(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCarrySite(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCommonLUTFFInSite(), PlacementTimingOptimizer::findCriticalPath(), PlacementTimingOptimizer::findCriticalPaths(), PlacementTimingOptimizer::getSortedTimingNodes(), ParallelCLBPacker::PackingCLBSite::greedyMapMuxForCommonLUTFFInSite(), PlacementTimingOptimizer::incrementalStaticTimingAnalysis_forPUWithLocation(), WirelengthOptimizer::LUTLUTPairing_TimingDriven(), PlacementInfo::reloadNets(), and PlacementInfo::transferPaintData().
|
inline |
Get the Simple Timing Info object which regard design cells as timing nodes.
Definition at line 835 of file PlacementTimingInfo.h.
Referenced by WirelengthOptimizer::addPseudoNet_SlackBased(), ParallelCLBPacker::PackingCLBSite::checkDirectLUTFFConnect_slack(), PlacementTimingOptimizer::conductStaticTimingAnalysis(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCarrySite(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCommonLUTFFInSite(), ClusterPlacer::getPlacementUnitMaxPathLen(), ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::getPlacementUnitMaxPathLen(), ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::getPlacementUnitMaxPathNegativeSlack(), PlacementTimingOptimizer::getPUId2Slack(), PlacementTimingOptimizer::getSlackThr(), PlacementTimingOptimizer::getWorstSlackOfCell(), ParallelCLBPacker::PackingCLBSite::greedyMapMuxForCommonLUTFFInSite(), and WirelengthOptimizer::LUTLUTPairing_TimingDriven().
|
inline |
Definition at line 840 of file PlacementTimingInfo.h.
Referenced by PlacementTimingOptimizer::clusterLongPathInOneClockRegion(), and ClusterPlacer::createLongPathClusterUnits().
void PlacementTimingInfo::setDSPInnerDelay | ( | ) |
Definition at line 74 of file PlacementTimingInfo.cc.
Referenced by AMFPlacer::run().
|
private |
Definition at line 886 of file PlacementTimingInfo.h.
Referenced by buildSimpleTimingGraph(), and PlacementTimingInfo().
|
private |
Definition at line 885 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo().
|
private |
Definition at line 882 of file PlacementTimingInfo.h.
Referenced by buildSimpleTimingGraph(), and PlacementTimingInfo().
|
private |
Definition at line 873 of file PlacementTimingInfo.h.
Referenced by buildSimpleTimingGraph(), PlacementTimingInfo(), and setDSPInnerDelay().
|
private |
Definition at line 874 of file PlacementTimingInfo.h.
Referenced by getDeviceInfo().
|
private |
Definition at line 883 of file PlacementTimingInfo.h.
Referenced by buildSimpleTimingGraph(), PlacementTimingInfo(), and setDSPInnerDelay().
|
private |
Definition at line 877 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo().
|
private |
Definition at line 879 of file PlacementTimingInfo.h.
Referenced by buildSimpleTimingGraph(), getLongPathThresholdLevel(), getMediumPathThresholdLevel(), getSimplePlacementTimingGraph(), getSimplePlacementTimingInfo(), getSimplePlacementTimingInfo_PathLenSorted(), setDSPInnerDelay(), and ~PlacementTimingInfo().
|
private |
Definition at line 880 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo().