AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
ParallelCLBPacker::PackedControlSet Class Reference

PackedControlSet stores the data of a combination of FFs within one control set (clock enable/preset-reset/clock) that can be packed in a site. More...

#include <ParallelCLBPacker.h>

Collaboration diagram for ParallelCLBPacker::PackedControlSet:

Public Member Functions

 PackedControlSet ()
 
 PackedControlSet (const PackedControlSet &anotherControlSet)
 Construct a new Packed Control Set object by cloning another one. More...
 
PackedControlSetoperator= (const PackedControlSet &anotherControlSet)
 undate a new Packed Control Set object by cloning another one More...
 
 ~PackedControlSet ()
 
unsigned int getSize () const
 Get the the number of FFs in this control set. More...
 
const std::vector< DesignInfo::DesignCell * > & getFFs () const
 get the FFs in this PackedControlSet More...
 
void reset ()
 clear the control set information in this PackedControlSet (only when there is no FF in this set) More...
 
void addFF (DesignInfo::DesignCell *curFF)
 add a FF into this PackedControlSet and check the compatibility More...
 
void removeXthFF (int i)
 remove a specify i-th FF from this PackedControlSet More...
 
void updateCSID ()
 
int findFF (DesignInfo::DesignCell *curFF) const
 find the index in the list for a given FF cell pointer More...
 
int getCSId () const
 get the control set id of this PackedControlSet. More...
 
void setCSId (int _CSId)
 set the control set id of this PackedControlSet. More...
 
DesignInfo::DesignNetgetCLK () const
 
DesignInfo::DesignNetgetSR () const
 
DesignInfo::DesignNetgetCE () const
 
DesignInfo::DesignCellType getFFType () const
 
bool compatibleWith (int inputCSId) const
 check whether this PackedControlSet can be compatible with a given control set ID More...
 
void setMustMainSlots ()
 
bool isMustMainSlots ()
 

Private Attributes

int CSId = -1
 
DesignInfo::DesignNetCLK = nullptr
 
DesignInfo::DesignNetSR = nullptr
 
DesignInfo::DesignNetCE = nullptr
 
DesignInfo::DesignCellType FFType
 
std::vector< DesignInfo::DesignCell * > FFs
 
bool mustMainSlots = false
 

Detailed Description

PackedControlSet stores the data of a combination of FFs within one control set (clock enable/preset-reset/clock) that can be packed in a site.

Definition at line 131 of file ParallelCLBPacker.h.

Constructor & Destructor Documentation

◆ PackedControlSet() [1/2]

ParallelCLBPacker::PackedControlSet::PackedControlSet ( )
inline

Definition at line 134 of file ParallelCLBPacker.h.

◆ PackedControlSet() [2/2]

ParallelCLBPacker::PackedControlSet::PackedControlSet ( const PackedControlSet anotherControlSet)
inline

Construct a new Packed Control Set object by cloning another one.

Parameters
anotherControlSet

Definition at line 144 of file ParallelCLBPacker.h.

Here is the call graph for this function:

◆ ~PackedControlSet()

ParallelCLBPacker::PackedControlSet::~PackedControlSet ( )
inline

Definition at line 195 of file ParallelCLBPacker.h.

Member Function Documentation

◆ addFF()

void ParallelCLBPacker::PackedControlSet::addFF ( DesignInfo::DesignCell curFF)
inline

add a FF into this PackedControlSet and check the compatibility

Parameters
curFFa given FF cell

Definition at line 235 of file ParallelCLBPacker.h.

Here is the call graph for this function:

◆ compatibleWith()

bool ParallelCLBPacker::PackedControlSet::compatibleWith ( int  inputCSId) const
inline

check whether this PackedControlSet can be compatible with a given control set ID

Parameters
inputCSIdthe id of the target control set
Returns
true
false

Definition at line 367 of file ParallelCLBPacker.h.

◆ findFF()

int ParallelCLBPacker::PackedControlSet::findFF ( DesignInfo::DesignCell curFF) const
inline

find the index in the list for a given FF cell pointer

Parameters
curFFa given FF cell
Returns
int

Definition at line 302 of file ParallelCLBPacker.h.

◆ getCE()

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::getCE ( ) const
inline

Definition at line 348 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getCLK()

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::getCLK ( ) const
inline

Definition at line 336 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getCSId()

int ParallelCLBPacker::PackedControlSet::getCSId ( ) const
inline

get the control set id of this PackedControlSet.

The control set determines whether two FFs can be packed.

Returns
int

Definition at line 319 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getFFs()

const std::vector<DesignInfo::DesignCell *>& ParallelCLBPacker::PackedControlSet::getFFs ( ) const
inline

get the FFs in this PackedControlSet

Returns
const std::vector<DesignInfo::DesignCell *>&

Definition at line 212 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getFFType()

DesignInfo::DesignCellType ParallelCLBPacker::PackedControlSet::getFFType ( ) const
inline

Definition at line 354 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getSize()

unsigned int ParallelCLBPacker::PackedControlSet::getSize ( ) const
inline

Get the the number of FFs in this control set.

Returns
unsigned int

Definition at line 202 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ getSR()

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::getSR ( ) const
inline

Definition at line 342 of file ParallelCLBPacker.h.

Referenced by operator=(), and PackedControlSet().

Here is the caller graph for this function:

◆ isMustMainSlots()

bool ParallelCLBPacker::PackedControlSet::isMustMainSlots ( )
inline

Definition at line 379 of file ParallelCLBPacker.h.

◆ operator=()

PackedControlSet& ParallelCLBPacker::PackedControlSet::operator= ( const PackedControlSet anotherControlSet)
inline

undate a new Packed Control Set object by cloning another one

Parameters
anotherControlSet
Returns
PackedControlSet&

Definition at line 172 of file ParallelCLBPacker.h.

Here is the call graph for this function:

◆ removeXthFF()

void ParallelCLBPacker::PackedControlSet::removeXthFF ( int  i)
inline

remove a specify i-th FF from this PackedControlSet

Parameters
ia specified index of the FF to be removed

Definition at line 267 of file ParallelCLBPacker.h.

Here is the call graph for this function:

◆ reset()

void ParallelCLBPacker::PackedControlSet::reset ( )
inline

clear the control set information in this PackedControlSet (only when there is no FF in this set)

Definition at line 221 of file ParallelCLBPacker.h.

◆ setCSId()

void ParallelCLBPacker::PackedControlSet::setCSId ( int  _CSId)
inline

set the control set id of this PackedControlSet.

The control set determines whether two FFs can be packed.

Parameters
_CSIdthe id of the target control set

Definition at line 331 of file ParallelCLBPacker.h.

◆ setMustMainSlots()

void ParallelCLBPacker::PackedControlSet::setMustMainSlots ( )
inline

Definition at line 374 of file ParallelCLBPacker.h.

◆ updateCSID()

void ParallelCLBPacker::PackedControlSet::updateCSID ( )
inline

Definition at line 275 of file ParallelCLBPacker.h.

Referenced by removeXthFF().

Here is the caller graph for this function:

Member Data Documentation

◆ CE

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::CE = nullptr
private

Definition at line 388 of file ParallelCLBPacker.h.

Referenced by addFF(), getCE(), operator=(), PackedControlSet(), reset(), and updateCSID().

◆ CLK

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::CLK = nullptr
private

Definition at line 386 of file ParallelCLBPacker.h.

Referenced by addFF(), getCLK(), operator=(), PackedControlSet(), reset(), and updateCSID().

◆ CSId

int ParallelCLBPacker::PackedControlSet::CSId = -1
private

◆ FFs

std::vector<DesignInfo::DesignCell *> ParallelCLBPacker::PackedControlSet::FFs
private

◆ FFType

DesignInfo::DesignCellType ParallelCLBPacker::PackedControlSet::FFType
private

Definition at line 389 of file ParallelCLBPacker.h.

Referenced by addFF(), getFFType(), operator=(), and PackedControlSet().

◆ mustMainSlots

bool ParallelCLBPacker::PackedControlSet::mustMainSlots = false
private

Definition at line 391 of file ParallelCLBPacker.h.

Referenced by isMustMainSlots(), and setMustMainSlots().

◆ SR

DesignInfo::DesignNet* ParallelCLBPacker::PackedControlSet::SR = nullptr
private

Definition at line 387 of file ParallelCLBPacker.h.

Referenced by addFF(), getSR(), operator=(), PackedControlSet(), reset(), and updateCSID().


The documentation for this class was generated from the following file: