PandA-2024.02
Public Member Functions | Private Attributes
GenerateFuList Class Reference

#include <generate_fu_list.hpp>

Inheritance diagram for GenerateFuList:
Inheritance graph
[legend]
Collaboration diagram for GenerateFuList:
Collaboration graph
[legend]

Public Member Functions

 GenerateFuList (const generic_deviceRef _device, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 The constructor. More...
 
DesignFlowStep_Status Exec () override
 Execute the step. More...
 
void ComputeRelationships (DesignFlowStepSet &relationship, const DesignFlowStep::RelationshipType relationship_type) override
 Compute the relationships of a step with other steps. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
std::string GetSignature () const override
 Return a unified identifier of this design step. More...
 
std::string GetName () const override
 Return the name of this design step. More...
 
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory () const override
 Return the factory to create this type of steps. More...
 
void AnalyzeCell (functional_unit *fu, const unsigned int prec, const std::vector< std::string > &portsize_parameters, const size_t portsize_index, const std::vector< std::string > &pipe_parameters, const size_t stage_index, const unsigned int constPort, const bool is_commutative, size_t max_lut_size) override
 Analyze the single cell. More...
 
- Public Member Functions inherited from ToDataFileStep
 ToDataFileStep (const DesignFlowManagerConstRef design_flow_manager, const ToDataFileStep_Type _to_data_file_step_type, const ParameterConstRef parameters)
 Constructor. More...
 
std::string GetSignature () const override
 Return a unified identifier of this design step. More...
 
std::string GetName () const override
 Return the name of this design step. More...
 
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory () const override
 Return the factory to create this type of steps. More...
 
bool HasToBeExecuted () const override
 Check if this step has actually to be executed. More...
 
- Public Member Functions inherited from DesignFlowStep
 DesignFlowStep (const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
virtual ~DesignFlowStep ()
 Destructor. More...
 
DesignFlowStep_Status GetStatus () const
 Return the status of this design step. More...
 
virtual void WriteDot (std::ostream &out) const
 Write the label for a dot graph. More...
 
bool IsComposed () const
 Returns if this step is composed. More...
 
int CGetDebugLevel () const
 Return the debug level of the step. More...
 
virtual void PrintInitialIR () const
 Dump the initial intermediate representation. More...
 
virtual void PrintFinalIR () const
 Dump the final intermediate representation. More...
 
- Public Member Functions inherited from FunctionalUnitStep
 FunctionalUnitStep (const generic_deviceRef _device, const DesignFlowManagerConstRef design_flow_manager, const ParameterConstRef parameters)
 Constructor. More...
 
 ~FunctionalUnitStep () override
 Destructor. More...
 
void Initialize () override
 Initialize the step (i.e., like a constructor, but executed just before exec. More...
 

Private Attributes

CustomOrderedSet< std::string > cells
 The set of list of cells. More...
 
CustomOrderedSet< std::string > components_to_be_characterized
 The list of components to be added to the list; if the list is empty, all the components will be added. More...
 
std::string component
 The current functional unit. More...
 
std::string current_list
 The current entry for list of functional units. More...
 

Additional Inherited Members

- Public Types inherited from DesignFlowStep
enum  RelationshipType { DEPENDENCE_RELATIONSHIP, INVALIDATION_RELATIONSHIP, PRECEDENCE_RELATIONSHIP }
 The relationship type. More...
 
- Static Public Member Functions inherited from ToDataFileStep
static const std::string EnumToName (const ToDataFileStep_Type to_data_file_step)
 Given a to data file step type, return the name of the type. More...
 
static ToDataFileStep_Type NameToEnum (const std::string &to_data_file_step)
 Given the name of data file step type, return the enum. More...
 
static const std::string ComputeSignature (const ToDataFileStep_Type to_data_file_step_type)
 Compute the signature of a to data file step. More...
 
- Protected Member Functions inherited from FunctionalUnitStep
virtual void AnalyzeFu (const technology_nodeRef f_unit)
 Analyze all the cells built starting from a template. More...
 
technology_nodeRef create_template_instance (const technology_nodeRef &fu_template, const std::string &name, unsigned int prec)
 Create a template instance to be specialized. More...
 
- Protected Attributes inherited from ToDataFileStep
ToDataFileStep_Type to_data_file_step_type
 The type of step. More...
 
- Protected Attributes inherited from DesignFlowStep
bool composed
 True if this step represents a composition of design flow steps (e.g., a flow); must be set by specialized constructors. More...
 
const Wrefcount< const DesignFlowManagerdesign_flow_manager
 The design flow manager. More...
 
const ParameterConstRef parameters
 Set of input parameters. More...
 
int debug_level
 The debug level. More...
 
const int output_level
 The output level. More...
 
- Protected Attributes inherited from FunctionalUnitStep
const technology_managerRef TM
 Technology manager. More...
 
const generic_deviceRef device
 device information More...
 
unsigned int has_first_synthesis_id
 The id of the first analyzed cell of a sequence of cells which differ for the position of the constant. More...
 
CustomMap< unsigned int, unsigned int > DSP_y_to_DSP_x
 The sizes of available DSPs. More...
 

Detailed Description

Definition at line 49 of file generate_fu_list.hpp.

Constructor & Destructor Documentation

◆ GenerateFuList()

GenerateFuList::GenerateFuList ( const generic_deviceRef  _device,
const DesignFlowManagerConstRef  design_flow_manager,
const ParameterConstRef  parameters 
)

The constructor.

Parameters
_deviceis the device
design_flow_manageris the design flow manager
parametersis the set of input parameters

Definition at line 56 of file generate_fu_list.cpp.

References components_to_be_characterized, DesignFlowStep::debug_level, GET_CLASS, DesignFlowStep::parameters, and SplitString().

Here is the call graph for this function:

Member Function Documentation

◆ AnalyzeCell()

void GenerateFuList::AnalyzeCell ( functional_unit fu,
const unsigned int  prec,
const std::vector< std::string > &  portsize_parameters,
const size_t  portsize_index,
const std::vector< std::string > &  pipe_parameters,
const size_t  stage_index,
const unsigned int  constPort,
const bool  is_commutative,
size_t  max_lut_size 
)
overridevirtual

Analyze the single cell.

Parameters
fuis the cell
precis the precision
portsize_parametersis the size of parameters
portsize_index
pipe_parameters
stage_index
constPortis the index of the constant port

Implements FunctionalUnitStep.

Definition at line 185 of file generate_fu_list.cpp.

References cells, component, current_list, DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, functional_unit::get_name(), FunctionalUnitStep::has_first_synthesis_id, and INDENT_DBG_MEX.

Here is the call graph for this function:

◆ CGetDesignFlowStepFactory()

DesignFlowStepFactoryConstRef GenerateFuList::CGetDesignFlowStepFactory ( ) const
overridevirtual

Return the factory to create this type of steps.

Implements DesignFlowStep.

Definition at line 180 of file generate_fu_list.cpp.

References ToDataFileStep::CGetDesignFlowStepFactory().

Here is the call graph for this function:

◆ ComputeRelationships()

void GenerateFuList::ComputeRelationships ( DesignFlowStepSet relationship,
const DesignFlowStep::RelationshipType  relationship_type 
)
overridevirtual

Compute the relationships of a step with other steps.

Parameters
dependenciesis where relationships will be stored
relationship_typeis the type of relationship to be computed

Implements ToDataFileStep.

Definition at line 104 of file generate_fu_list.cpp.

References TechnologyFlowStep::ComputeSignature(), DesignFlowStep::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, DesignFlowStep::DEPENDENCE_RELATIONSHIP, DesignFlowStep::design_flow_manager, DesignFlowStep::INVALIDATION_RELATIONSHIP, LOAD_DEVICE_TECHNOLOGY, LOAD_FILE_TECHNOLOGY, Wrefcount< T >::lock(), DesignFlowStep::PRECEDENCE_RELATIONSHIP, THROW_UNREACHABLE, and WRITE_TECHNOLOGY.

Here is the call graph for this function:

◆ Exec()

DesignFlowStep_Status GenerateFuList::Exec ( )
overridevirtual

◆ GetName()

std::string GenerateFuList::GetName ( ) const
overridevirtual

Return the name of this design step.

Returns
the name of the pass (for debug purpose)

Implements DesignFlowStep.

Definition at line 175 of file generate_fu_list.cpp.

References ToDataFileStep::GetName().

Here is the call graph for this function:

◆ GetSignature()

std::string GenerateFuList::GetSignature ( ) const
overridevirtual

Return a unified identifier of this design step.

Returns
the signature of the design step

Implements DesignFlowStep.

Definition at line 170 of file generate_fu_list.cpp.

References ToDataFileStep::GetSignature().

Here is the call graph for this function:

◆ HasToBeExecuted()

bool GenerateFuList::HasToBeExecuted ( ) const
overridevirtual

Check if this step has actually to be executed.

Returns
true if the step has to be executed

Implements DesignFlowStep.

Definition at line 165 of file generate_fu_list.cpp.

References ToDataFileStep::HasToBeExecuted().

Here is the call graph for this function:

Field Documentation

◆ cells

CustomOrderedSet<std::string> GenerateFuList::cells
private

The set of list of cells.

Definition at line 53 of file generate_fu_list.hpp.

Referenced by AnalyzeCell(), and Exec().

◆ component

std::string GenerateFuList::component
private

The current functional unit.

Definition at line 59 of file generate_fu_list.hpp.

Referenced by AnalyzeCell(), and Exec().

◆ components_to_be_characterized

CustomOrderedSet<std::string> GenerateFuList::components_to_be_characterized
private

The list of components to be added to the list; if the list is empty, all the components will be added.

Definition at line 56 of file generate_fu_list.hpp.

Referenced by Exec(), and GenerateFuList().

◆ current_list

std::string GenerateFuList::current_list
private

The current entry for list of functional units.

Definition at line 62 of file generate_fu_list.hpp.

Referenced by AnalyzeCell(), and Exec().


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

Generated on Mon Feb 12 2024 13:03:52 for PandA-2024.02 by doxygen 1.8.13