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

superclass include More...

#include <AlteraBackendFlow.hpp>

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

Public Member Functions

 AlteraBackendFlow (const ParameterConstRef Param, const std::string &flow_name, const generic_deviceRef _device)
 Constructor. More...
 
 ~AlteraBackendFlow () override
 Destructor. More...
 
void InitDesignParameters () override
 Initializes the parameters. More...
 
void ExecuteSynthesis () override
 Checks if the execution can be performed and, in case, performs the synthesis. More...
 
- Public Member Functions inherited from BackendFlow
 BackendFlow (const ParameterConstRef Param, std::string flow_name, const generic_deviceRef _device)
 Constructor. More...
 
virtual ~BackendFlow ()
 Destructor. More...
 
virtual std::string GenerateSynthesisScripts (const std::string &fu_name, const structural_managerRef SM, const std::list< std::string > &hdl_files, const std::list< std::string > &aux_files)
 Generates the synthesis scripts for the specified design. More...
 
void Execute (const std::string &top_id, const std::string &top_normalized, const std::string &filestring, const std::string &filename_bench, const std::string &clock, double clk_period, bool syntax_check)
 Executes the synthesis with the implemented flow. More...
 
std::string CreateScripts (const DesignParametersRef dp)
 Creates the scripts for the specified tools in the right order, along with the overall configuration. More...
 
void parse_flow (const XMLDomParserRef parser)
 Creates the synthesis flow based on the user's requirements. More...
 
void create_xml_scripts (const std::string &xml_file)
 Creates the XML script containing all the steps. More...
 
void add_backend_step (const BackendStepRef &step)
 Adds a backend step to the list of the ones to be performed. More...
 
std::string get_flow_name () const
 Returns the name of the flow. More...
 
void set_initial_parameters (const DesignParametersRef &flow_parameters, const CustomOrderedSet< std::string > &undefined_parameters)
 Sets parameters. More...
 
void set_parameters (const DesignParametersRef &_flow_parameters)
 Sets actual parameters. More...
 
area_infoRef get_used_resources () const
 Returns the list of used resources. More...
 
time_infoRef get_timing_results () const
 Returns the timing information. More...
 

Private Member Functions

void WriteFlowConfiguration (std::ostream &script) override
 Writes the proper flow configuration in the output script. More...
 
void xparse_utilization (const std::string &fn)
 Parses device utilization. More...
 
void CheckSynthesisResults () override
 Checks the synthesis results and fills the corresponding data-structures. More...
 
void create_sdc (const DesignParametersRef dp)
 Creates the constraint file. More...
 

Private Attributes

std::map< std::string, double > design_values
 design values reported by the tools More...
 

Additional Inherited Members

- Public Types inherited from BackendFlow
using type_t = enum { UNKNOWN, XILINX_FPGA, ALTERA_FPGA, LATTICE_FPGA, NANOXPLORE_FPGA, GENERIC, }
 implemented flow More...
 
- Static Public Member Functions inherited from BackendFlow
static BackendFlowRef CreateFlow (const ParameterConstRef Param, const std::string &flow_name, const generic_deviceRef _device)
 Creates the flow specification based on the given parameters. More...
 
static type_t DetermineBackendFlowType (const generic_deviceRef device, const ParameterConstRef parameters)
 Determines the type of the backend flow based on the target device. More...
 
- Protected Member Functions inherited from BackendFlow
void ParseBackendFlow (const std::string &flow_name)
 Parses the description of the backend flow given its identifier. More...
 
void xload (const xml_element *node)
 Loads the backend flow from an XML node. More...
 
- Protected Attributes inherited from BackendFlow
const ParameterConstRef Param
 class containing all the parameters More...
 
int debug_level
 debugging level of the class More...
 
unsigned int output_level
 verbosity level of the class More...
 
std::string flow_name
 string-based identifier of the flow More...
 
std::string out_dir
 name of the output directory More...
 
std::map< std::string, std::string > default_data
 map between the identifiers of the synthesis flows and the corresponding implementations More...
 
const generic_deviceRef device
 information about the target device More...
 
xml_elementroot
 root node of the configuration device More...
 
area_infoRef area_m
 pointer to the data structure containing information about the resources More...
 
time_infoRef time_m
 pointer to the data structure containing timing information More...
 
std::vector< BackendStepRefsteps
 ordered list of synthesis steps More...
 
DesignParametersRef default_flow_parameters
 set of design parameters to be set More...
 
CustomOrderedSet< std::string > undefined_parameters
 list of undefined parameters More...
 
DesignParametersRef actual_parameters
 set of design parameters with the actual values More...
 
std::string generated_synthesis_script
 name of the synthesis script More...
 

Detailed Description

superclass include

Definition at line 50 of file AlteraBackendFlow.hpp.

Constructor & Destructor Documentation

◆ AlteraBackendFlow()

AlteraBackendFlow::AlteraBackendFlow ( const ParameterConstRef  Param,
const std::string &  flow_name,
const generic_deviceRef  _device 
)

◆ ~AlteraBackendFlow()

AlteraBackendFlow::~AlteraBackendFlow ( )
overridedefault

Destructor.

Referenced by AlteraBackendFlow().

Here is the caller graph for this function:

Member Function Documentation

◆ CheckSynthesisResults()

void AlteraBackendFlow::CheckSynthesisResults ( )
overrideprivatevirtual

◆ create_sdc()

void AlteraBackendFlow::create_sdc ( const DesignParametersRef  dp)
private

Creates the constraint file.

Definition at line 300 of file AlteraBackendFlow.cpp.

References DesignParameters::component_name, BackendFlow::get_flow_name(), BackendFlow::out_dir, BackendFlow::Param, PARAM_clk_name, PARAM_clk_period, PARAM_connect_iob, PARAM_is_combinational, PARAM_sdc_file, and DesignParameters::parameter_values.

Referenced by InitDesignParameters().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ExecuteSynthesis()

void AlteraBackendFlow::ExecuteSynthesis ( )
overridevirtual

Checks if the execution can be performed and, in case, performs the synthesis.

Reimplemented from BackendFlow.

Definition at line 380 of file AlteraBackendFlow.cpp.

References BackendFlow::ExecuteSynthesis().

Here is the call graph for this function:

◆ InitDesignParameters()

void AlteraBackendFlow::InitDesignParameters ( )
overridevirtual

◆ WriteFlowConfiguration()

void AlteraBackendFlow::WriteFlowConfiguration ( std::ostream &  script)
overrideprivatevirtual

Writes the proper flow configuration in the output script.

Implements BackendFlow.

Definition at line 271 of file AlteraBackendFlow.cpp.

References BackendFlow::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, INDENT_DBG_MEX, BackendFlow::Param, and starts_with().

Here is the call graph for this function:

◆ xparse_utilization()

void AlteraBackendFlow::xparse_utilization ( const std::string &  fn)
private

Parses device utilization.

Definition at line 128 of file AlteraBackendFlow.cpp.

References CE_XVM, design_values, XMLDomParser::Exec(), xml_child::get_children(), XMLDomParser::get_document(), xml_node::get_name(), LOAD_XVM, test_panda::parser, THROW_ASSERT, THROW_ERROR, and symmetry::value.

Referenced by CheckSynthesisResults().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ design_values

std::map<std::string, double> AlteraBackendFlow::design_values
private

design values reported by the tools

Definition at line 53 of file AlteraBackendFlow.hpp.

Referenced by CheckSynthesisResults(), and xparse_utilization().


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

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