AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
a fixed group of multiple standard cells with constraints of their relative locations More...
#include <PlacementInfo.h>
Classes | |
struct | _fixedPlacementInfo_inMacro |
some constaints of elements' relative locations are defined by the design. We need to record this. More... | |
Public Types | |
enum | PlacementMacroType { PlacementMacroType_LUTFFPair = 0, PlacementMacroType_LUTLUTSeires, PlacementMacroType_FFFFPair, PlacementMacroType_HALFCLB, PlacementMacroType_LCLB, PlacementMacroType_MCLB, PlacementMacroType_CARRY, PlacementMacroType_DSP, PlacementMacroType_BRAM, PlacementMacroType_MUX7, PlacementMacroType_MUX8, PlacementMacroType_MUX9 } |
typedef struct PlacementInfo::PlacementMacro::_fixedPlacementInfo_inMacro | fixedPlacementInfo_inMacro |
some constaints of elements' relative locations are defined by the design. We need to record this. More... | |
Public Member Functions | |
PlacementMacro (std::string name, int id, PlacementMacroType macroType) | |
~PlacementMacro () | |
bool | hasCell (DesignInfo::DesignCell *curCell) |
void | addCell (DesignInfo::DesignCell *curCell, DesignInfo::DesignCellType cellType, float x, float y) |
add a real cell into the macro with its offsets in the macro More... | |
DesignInfo::DesignCell * | addVirtualCell (std::string virtualCellName, DesignInfo *designInfo, DesignInfo::DesignCellType cellType, float x, float y) |
add a virtual cell with a given name into the macro with its offsets in the macro. Usually it is to occupy routing resource in a site. More... | |
void | addVirtualCell (DesignInfo *designInfo, DesignInfo::DesignCellType cellType, float x, float y) |
add a virtual cell without given name into the macro with its offsets in the macro. Usually it is to occupy routing resource in a site. More... | |
std::vector< DesignInfo::DesignCell * > & | getCells () |
void | addFixedCellInfo (DesignInfo::DesignCell *cell, std::string siteName, std::string BELName) |
add information of a fixed cell More... | |
float | getCellOffsetXInMacro (DesignInfo::DesignCell *cell) |
float | getCellOffsetYInMacro (DesignInfo::DesignCell *cell) |
void | getVirtualCellInfo (int vId, float &x, float &y, DesignInfo::DesignCellType &cellType) |
Get the virtual cell information, including offsets and cell type. More... | |
DesignInfo::DesignCellType | getVirtualCellType (int vId) |
int | getNumOfCells () |
DesignInfo::DesignCell * | getCell (unsigned int id) |
float | getTopOffset () |
float | getBottomOffset () |
float | getLeftOffset () |
float | getRightOffset () |
void | addOccupiedSite (float siteOffset, float occ) |
for site-level cell spreading More... | |
bool | isCellInMacro (DesignInfo::DesignCell *curCell) |
PlacementMacroType | getMacroType () |
std::vector< fixedPlacementInfo_inMacro > & | getFixedCellInfoVec () |
Public Member Functions inherited from PlacementInfo::PlacementUnit | |
PlacementUnit (std::string name, int id, PlacementUnitType unitType) | |
virtual | ~PlacementUnit () |
void | getAnchorLocation (float &x, float &y) |
float | X () |
float | Y () |
float | lastX () |
float | lastY () |
void | setAnchorLocation (float x, float y) |
Set the Anchor Location for the PlacementUnit. More... | |
void | setSpreadLocation (float x, float y, float forgetRatio) |
Set the Spread Location based on forgetting ratio. More... | |
void | setSpreadLocation_WithLimitDisplacement (float x, float y, float forgetRatio, float limitDisplacement) |
Set the Spread Location based on forgetting ratio. More... | |
void | setAnchorLocationAndForgetTheOriginalOne (float x, float y) |
void | recordSpreadLocatin () |
void | setFixed () |
void | setUnfixed () |
void | setLocked () |
void | setUnlocked () |
bool | isLocked () |
void | setPlaced () |
bool | isFixed () |
bool | isPlaced () |
std::string & | getName () |
PlacementUnitType | getType () |
void | setWeight (int numCell) |
int | getWeight () |
unsigned int | getId () |
void | renewId (int newId) |
void | setNetsSetPtr (std::vector< PlacementNet * > *_nets) |
Set the Nets Set Ptr object which records the nets connecting to the PlacementUnit. More... | |
std::vector< PlacementNet * > * | getNetsSetPtr () |
Get the Nets Set Ptr object which records the nets connecting to the PlacementUnit. More... | |
int | getUnitsBeDrivenByThisPU () |
int | getUnitsDriveThisPU () |
void | addDSP () |
void | addBRAM () |
void | addLUTRAM () |
void | addLUT () |
void | addFF () |
void | addCARRY () |
void | addMUX () |
bool | checkHasDSP () |
bool | checkHasBRAM () |
bool | checkHasLUTRAM () |
bool | checkHasLUT () |
bool | checkHasFF () |
bool | checkHasCARRY () |
bool | checkHasMUX () |
bool | hasRegister () |
bool | hasLogic () |
bool | isMCLB () |
bool | isLCLB () |
int | getDSPNum () |
int | getBRAMNum () |
int | getLUTRAMNum () |
int | getLUTNum () |
int | getCARRYNum () |
int | getMUXNum () |
void | setPacked () |
void | resetPacked () |
bool | isPacked () |
std::set< DesignInfo::DesignNet * > & | getClockNets () |
Private Attributes | |
std::set< DesignInfo::DesignCell * > | cellSet |
std::map< DesignInfo::DesignCell *, int > | cell2IdInMacro |
std::vector< DesignInfo::DesignCell * > | cellsInMacro |
std::vector< DesignInfo::DesignCellType > | cells_Type |
std::vector< float > | offsetX |
std::vector< float > | offsetY |
std::vector< fixedPlacementInfo_inMacro > | fixedCells |
float | left |
float | right |
float | top |
float | bottom |
PlacementMacroType | macroType |
Additional Inherited Members | |
Protected Attributes inherited from PlacementInfo::PlacementUnit | |
std::set< DesignInfo::DesignNet * > | clockNets |
record the clock nets connected to this PlacementUnit More... | |
a fixed group of multiple standard cells with constraints of their relative locations
Definition at line 1524 of file PlacementInfo.h.
typedef struct PlacementInfo::PlacementMacro::_fixedPlacementInfo_inMacro PlacementInfo::PlacementMacro::fixedPlacementInfo_inMacro |
some constaints of elements' relative locations are defined by the design. We need to record this.
Definition at line 1527 of file PlacementInfo.h.
|
inline |
Definition at line 1545 of file PlacementInfo.h.
|
inline |
Definition at line 1558 of file PlacementInfo.h.
|
inline |
add a real cell into the macro with its offsets in the macro
curCell | |
cellType | update the cell's "virtual" cell type so it can occupy specific resource (e.g., make an LUT1 an LUT6) |
x | |
y |
Definition at line 1576 of file PlacementInfo.h.
Referenced by IncrementalBELPacker::FFPairing(), InitialPacker::findBRAMMacros(), InitialPacker::findCARRYMacros(), InitialPacker::findDSPMacros(), InitialPacker::findLUTRAMMacros(), InitialPacker::findMuxMacros(), InitialPacker::loadOtherCLBMacros(), PlacementInfo::loadPlacementUnitInformation(), IncrementalBELPacker::LUTFFPairing(), InitialPacker::LUTFFPairing(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
add information of a fixed cell
cell | |
siteName | |
BELName |
Definition at line 1751 of file PlacementInfo.h.
Referenced by InitialPacker::loadOtherCLBMacros(), and PlacementInfo::loadPlacementUnitInformation().
|
inline |
for site-level cell spreading
not used in current implmementation.
siteOffset | |
occ |
Definition at line 1827 of file PlacementInfo.h.
Referenced by IncrementalBELPacker::FFPairing(), InitialPacker::findBRAMMacros(), InitialPacker::findCARRYMacros(), InitialPacker::findDSPMacros(), InitialPacker::findLUTRAMMacros(), InitialPacker::findMuxMacros(), InitialPacker::loadOtherCLBMacros(), IncrementalBELPacker::LUTFFPairing(), InitialPacker::LUTFFPairing(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
add a virtual cell without given name into the macro with its offsets in the macro. Usually it is to occupy routing resource in a site.
designInfo | since we are creating virtual cell, it should be added into design information |
cellType | the type of the virtual cell type |
x | |
y |
Definition at line 1685 of file PlacementInfo.h.
|
inline |
add a virtual cell with a given name into the macro with its offsets in the macro. Usually it is to occupy routing resource in a site.
virtualCellName | the name of the virtual cell to be added into the design |
designInfo | since we are creating virtual cell, it should be added into design information |
cellType | the type of the virtual cell type |
x | |
y |
Definition at line 1634 of file PlacementInfo.h.
Referenced by InitialPacker::findBRAMMacros(), InitialPacker::findCARRYMacros(), InitialPacker::findMuxMacros(), and InitialPacker::mapCarryRelatedRouteThru().
|
inline |
Definition at line 1806 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1796 of file PlacementInfo.h.
|
inline |
Definition at line 1756 of file PlacementInfo.h.
Referenced by operator<<(), and PlacementInfo::PlacementNet::PlacementNet().
|
inline |
Definition at line 1762 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::mapCarryRelatedCellsToSlots(), InitialPacker::mapCarryRelatedRouteThru(), operator<<(), and PlacementInfo::PlacementNet::PlacementNet().
|
inline |
Definition at line 1724 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCarrySite(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCommonLUTFFInSite(), InitialPacker::findBRAMMacros(), InitialPacker::findCARRYMacros(), InitialPacker::findDSPMacros(), InitialPacker::findMuxMacros(), ParallelCLBPacker::PackingCLBSite::PackingCLBCluster::getCellSet(), ParallelCLBPacker::PackingCLBSite::greedyMapMuxForCommonLUTFFInSite(), InitialPacker::loadOtherCLBMacros(), InitialPacker::mapCarryRelatedRouteThru(), ParallelCLBPacker::PackingCLBSite::mapMuxF7Macro(), ParallelCLBPacker::PackingCLBSite::mapMuxF8Macro(), operator<<(), and ParallelCLBPacker::updatePackedMacro().
|
inline |
Definition at line 1846 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1810 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1841 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCarrySite(), ParallelCLBPacker::PackingCLBSite::finalMapToSlotsForCommonLUTFFInSite(), ParallelCLBPacker::PackingCLBSite::greedyMapMuxForCommonLUTFFInSite(), operator<<(), and ParallelCLBPacker::prePackLegalizedMacros().
|
inline |
Definition at line 1791 of file PlacementInfo.h.
|
inline |
Definition at line 1814 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1802 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Get the virtual cell information, including offsets and cell type.
vId | |
x | |
y | |
cellType |
Definition at line 1779 of file PlacementInfo.h.
|
inline |
Definition at line 1786 of file PlacementInfo.h.
Referenced by operator<<().
|
inline |
Definition at line 1562 of file PlacementInfo.h.
Referenced by ParallelCLBPacker::PackingCLBSite::findMuxFromHalfCLB(), InitialPacker::mapCarryRelatedRouteThru(), ParallelCLBPacker::PackingCLBSite::mapMuxF7Macro(), and ParallelCLBPacker::PackingCLBSite::mapMuxF8Macro().
|
inline |
Definition at line 1836 of file PlacementInfo.h.
|
private |
Definition at line 1863 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getBottomOffset(), and PlacementMacro().
|
private |
Definition at line 1855 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getCellOffsetXInMacro(), getCellOffsetYInMacro(), and PlacementMacro().
|
private |
Definition at line 1858 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getNumOfCells(), getVirtualCellInfo(), and getVirtualCellType().
|
private |
Definition at line 1854 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), hasCell(), isCellInMacro(), and PlacementMacro().
|
private |
Definition at line 1856 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getCell(), getCells(), and PlacementMacro().
|
private |
Definition at line 1861 of file PlacementInfo.h.
Referenced by addFixedCellInfo(), getFixedCellInfoVec(), and PlacementMacro().
|
private |
Definition at line 1863 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getLeftOffset(), and PlacementMacro().
|
private |
Definition at line 1864 of file PlacementInfo.h.
Referenced by getMacroType().
|
private |
Definition at line 1860 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getCellOffsetXInMacro(), and getVirtualCellInfo().
|
private |
Definition at line 1860 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getCellOffsetYInMacro(), and getVirtualCellInfo().
|
private |
Definition at line 1863 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getRightOffset(), and PlacementMacro().
|
private |
Definition at line 1863 of file PlacementInfo.h.
Referenced by addCell(), addVirtualCell(), getTopOffset(), and PlacementMacro().