AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
Go to the documentation of this file.
27 #ifndef _INCREMENTALBELPACKER
28 #define _INCREMENTALBELPACKER
32 #include "KDTree/KDTree.h"
61 std::map<std::string, std::string> &
JSONCfg)
172 std::vector<std::pair<DesignInfo::DesignCell *, DesignInfo::DesignCell *>>
LUTFFPairs;
173 std::vector<std::pair<DesignInfo::DesignCell *, DesignInfo::DesignCell *>>
FF_FFPairs;
DesignInfo::DesignCell * cell
struct IncrementalBELPacker::_CellWithScore CellWithScore
a DesignCell in design netlist, DesignPin objects of which might connect to DesignNet objects
void LUTFFPairing(float disThreshold)
try to pair LUTs/FFs in the design netlist which are neighbors according to a given threshold and con...
PlacementInfo::CompatiblePlacementTable * compatiblePlacementTable
std::map< std::string, std::string > & JSONCfg
PlacementInfo::PlacementUnit * PU
std::vector< PlacementInfo::PlacementUnit * > & fixedPlacementUnits
This header file contains the classes of data for a standalone design netlist.
IncrementalBELPacker incrementally packs some LUTs/FFs during global placement based on their distanc...
std::vector< PlacementInfo::PlacementMacro * > & placementMacros
PlacementInfo::PlacementUnpackedCell * unpackedCell
This header file contains the classes of data for a standalone device.
FFLocation records the FF cell pointer and the location of the FF cell for kdt::KDTree construction w...
std::vector< PlacementInfo::PlacementUnit * > & placementUnits
describes the type mapping from design to device, where a cell can be placed (which BEL in which site...
_PUWithScore(PlacementInfo::PlacementUnit *PU, float score)
std::vector< PlacementInfo::PlacementUnpackedCell * > & placementUnpackedCells
std::set< DesignInfo::DesignCell * > & cellInMacros
std::vector< PlacementInfo::PlacementUnit * > & cellId2PlacementUnitVec
a movement unit in placement with information of location and resource demand
struct IncrementalBELPacker::_PUWithScore PUWithScore
_CellWithScore(DesignInfo::DesignCell *cell, float score)
void isLUTsPackable(PlacementInfo::PlacementUnpackedCell *LUTA, PlacementInfo::PlacementUnpackedCell *LUTB)
check whether two LUTs can be packed to share one BEL
Information class related to FPGA device, including the details of BEL/Site/Tile/ClockRegion.
PlacementInfo::PlacementUnpackedCell * getUnpackedCell()
float getCellDistance(PlacementInfo::Location &A, PlacementInfo::Location &B)
the smallest, indivisible, representable component. It will include only one standard cell
FFLocation(PlacementInfo::PlacementUnpackedCell *unpackedCell)
std::vector< std::pair< DesignInfo::DesignCell *, DesignInfo::DesignCell * > > LUTFFPairs
This header file mainly contains the definition of class PlacementInfo, including information related...
PlacementInfo * placementInfo
std::vector< std::pair< DesignInfo::DesignCell *, DesignInfo::DesignCell * > > FF_FFPairs
void FFPairing(float disThreshold)
try to pair FFs in the design netlist which are neighbors according to a given threshold and the cont...
Information related to FPGA designs, including design cells and their interconnections.
std::vector< int > placementNetId2LUTPlacementUnitId
IncrementalBELPacker(DesignInfo *designInfo, DeviceInfo *deviceInfo, PlacementInfo *placementInfo, std::map< std::string, std::string > &JSONCfg)
Construct a new Incremental BEL Packer object.
std::map< int, PlacementInfo::PlacementUnit * > & cellId2PlacementUnit
Information related to FPGA placement (wirelength optimization, cell spreading, legalization,...