54 switch(technology_flow_step_type)
57 return "FixCharacterization";
58 #if HAVE_CIRCUIT_BUILT 59 case TechnologyFlowStep_Type::LOAD_BUILTIN_TECHNOLOGY:
60 return "LoadBuiltinTechnology";
63 return "LoadDefaultTechnology";
65 return "LoadDeviceTechnology";
67 return "LoadFileTechnology";
69 return "LoadTechnology";
71 return "WriteTechnology";
80 return "Technology::" +
STR(static_cast<int>(technology_flow_step_type));
99 for(
const auto& step_type : step_types)
103 technology_flow_step ? design_flow_graph->CGetDesignFlowStepInfo(technology_flow_step)->design_flow_step :
104 step_factory->CreateTechnologyFlowStep(step_type);
105 steps.insert(design_flow_step);
115 const DesignFlowManagerConstRef _design_flow_manager,
RelationshipType
The relationship type.
The base class for design step.
static const std::string EnumToName(const TechnologyFlowStep_Type technology_flow_step_type)
Given a technology flow step type, return the name of the type.
#define STR(s)
Macro which performs a lexical_cast to a string.
Auxiliary methods for manipulating string.
#define THROW_UNREACHABLE(str_expr)
helper function used to specify that some points should never be reached
std::string GetName() const override
Return the name of this design step.
void ComputeRelationships(DesignFlowStepSet &steps, const DesignFlowStep::RelationshipType relationship_type) override
Compute the relationships of a step with other steps.
DesignFlowStepFactoryConstRef CGetDesignFlowStepFactory() const override
Return the factory to create this type of steps.
virtual const CustomUnorderedSet< TechnologyFlowStep_Type > ComputeTechnologyRelationships(const DesignFlowStep::RelationshipType relationship_type) const =0
Return the set of analyses in relationship with this design step.
TechnologyFlowStep(const technology_managerRef _TM, const generic_deviceRef target, const DesignFlowManagerConstRef design_flow_manager, const TechnologyFlowStep_Type technology_flow_step_type, const ParameterConstRef parameters)
Constructor.
Classes to describe design flow graph.
static const std::string ComputeSignature(const TechnologyFlowStep_Type technology_flow_step_type)
Compute the signature of a technology flow step.
const technology_managerRef TM
The technology manager.
Factory for technology flow step.
boost::graph_traits< graph >::vertex_descriptor vertex
vertex definition.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
std::string GetSignature() const override
Return a unified identifier of this design step.
TechnologyFlowStep_Type technology_flow_step_type
The type of step.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
refcount< T > lock() const
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Base class for technology flow steps.
const generic_deviceRef target
The target device.