AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
IncrementalBELPacker incrementally packs some LUTs/FFs during global placement based on their distance, interconnection density and compatibility. More...
#include <IncrementalBELPacker.h>
Classes | |
struct | _CellWithScore |
struct | _PUWithScore |
class | FFLocation |
FFLocation records the FF cell pointer and the location of the FF cell for kdt::KDTree construction which can help to find neighbors for cells. More... | |
Public Member Functions | |
IncrementalBELPacker (DesignInfo *designInfo, DeviceInfo *deviceInfo, PlacementInfo *placementInfo, std::map< std::string, std::string > &JSONCfg) | |
Construct a new Incremental BEL Packer object. More... | |
void | isLUTsPackable (PlacementInfo::PlacementUnpackedCell *LUTA, PlacementInfo::PlacementUnpackedCell *LUTB) |
check whether two LUTs can be packed to share one BEL More... | |
void | LUTFFPairing (float disThreshold) |
try to pair LUTs/FFs in the design netlist which are neighbors according to a given threshold and connectivity More... | |
void | FFPairing (float disThreshold) |
try to pair FFs in the design netlist which are neighbors according to a given threshold and the control set compatibility More... | |
void | dumpPairedLUTFF () |
float | getCellDistance (PlacementInfo::Location &A, PlacementInfo::Location &B) |
Private Types | |
typedef struct IncrementalBELPacker::_PUWithScore | PUWithScore |
typedef struct IncrementalBELPacker::_CellWithScore | CellWithScore |
Private Attributes | |
DesignInfo * | designInfo |
DeviceInfo * | deviceInfo |
PlacementInfo * | placementInfo |
PlacementInfo::CompatiblePlacementTable * | compatiblePlacementTable |
std::vector< PlacementInfo::PlacementUnit * > & | placementUnits |
std::vector< PlacementInfo::PlacementUnpackedCell * > & | placementUnpackedCells |
std::vector< PlacementInfo::PlacementMacro * > & | placementMacros |
std::vector< PlacementInfo::PlacementUnit * > & | fixedPlacementUnits |
std::set< DesignInfo::DesignCell * > & | cellInMacros |
std::map< int, PlacementInfo::PlacementUnit * > & | cellId2PlacementUnit |
std::vector< PlacementInfo::PlacementUnit * > & | cellId2PlacementUnitVec |
std::map< std::string, std::string > & | JSONCfg |
std::vector< int > | placementNetId2LUTPlacementUnitId |
std::vector< std::pair< DesignInfo::DesignCell *, DesignInfo::DesignCell * > > | LUTFFPairs |
std::vector< std::pair< DesignInfo::DesignCell *, DesignInfo::DesignCell * > > | FF_FFPairs |
int | LUTFFPairDumpCnt = 0 |
float | y2xRatio = 1.0 |
IncrementalBELPacker incrementally packs some LUTs/FFs during global placement based on their distance, interconnection density and compatibility.
Definition at line 49 of file IncrementalBELPacker.h.
|
private |
|
private |
|
inline |
Construct a new Incremental BEL Packer object.
designInfo | given design information |
deviceInfo | given device information |
placementInfo | the PlacementInfo for this placer to handle |
JSONCfg | the user-defined placement configuration |
Definition at line 60 of file IncrementalBELPacker.h.
void IncrementalBELPacker::dumpPairedLUTFF | ( | ) |
Definition at line 419 of file IncrementalBELPacker.cc.
Referenced by FFPairing(), and LUTFFPairing().
void IncrementalBELPacker::FFPairing | ( | float | disThreshold | ) |
try to pair FFs in the design netlist which are neighbors according to a given threshold and the control set compatibility
disThreshold | a given threshold |
Definition at line 253 of file IncrementalBELPacker.cc.
Referenced by AMFPlacer::run().
|
inline |
Definition at line 103 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
void IncrementalBELPacker::isLUTsPackable | ( | PlacementInfo::PlacementUnpackedCell * | LUTA, |
PlacementInfo::PlacementUnpackedCell * | LUTB | ||
) |
check whether two LUTs can be packed to share one BEL
LUTA | |
LUTB |
Definition at line 35 of file IncrementalBELPacker.cc.
void IncrementalBELPacker::LUTFFPairing | ( | float | disThreshold | ) |
try to pair LUTs/FFs in the design netlist which are neighbors according to a given threshold and connectivity
disThreshold | a given threshold |
Definition at line 44 of file IncrementalBELPacker.cc.
Referenced by AMFPlacer::run().
|
private |
Definition at line 167 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 168 of file IncrementalBELPacker.h.
Referenced by LUTFFPairing().
|
private |
Definition at line 166 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 161 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 158 of file IncrementalBELPacker.h.
Referenced by FFPairing().
|
private |
Definition at line 159 of file IncrementalBELPacker.h.
|
private |
Definition at line 173 of file IncrementalBELPacker.h.
Referenced by FFPairing().
|
private |
Definition at line 165 of file IncrementalBELPacker.h.
|
private |
Definition at line 169 of file IncrementalBELPacker.h.
Referenced by dumpPairedLUTFF(), and IncrementalBELPacker().
|
private |
Definition at line 174 of file IncrementalBELPacker.h.
Referenced by dumpPairedLUTFF().
|
private |
Definition at line 172 of file IncrementalBELPacker.h.
Referenced by dumpPairedLUTFF(), FFPairing(), and LUTFFPairing().
|
private |
Definition at line 160 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 164 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 170 of file IncrementalBELPacker.h.
|
private |
Definition at line 162 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 163 of file IncrementalBELPacker.h.
Referenced by FFPairing(), and LUTFFPairing().
|
private |
Definition at line 175 of file IncrementalBELPacker.h.
Referenced by FFPairing(), getCellDistance(), and IncrementalBELPacker().