|
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().