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