PandA-2024.02
Public Member Functions | Protected Member Functions | Protected Attributes
NanoXploreBackendFlow Class Reference

#include <NanoXploreBackendFlow.hpp>

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

Public Member Functions

 NanoXploreBackendFlow (const ParameterConstRef Param, const std::string &flow_name, const generic_deviceRef _device)
 Constructor. More...
 
 ~NanoXploreBackendFlow () 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...
 

Protected 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...
 
- 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

std::map< std::string, double > design_values
 results from the synthesis 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...
 

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

Detailed Description

Definition at line 54 of file NanoXploreBackendFlow.hpp.

Constructor & Destructor Documentation

◆ NanoXploreBackendFlow()

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

◆ ~NanoXploreBackendFlow()

NanoXploreBackendFlow::~NanoXploreBackendFlow ( )
overridedefault

Destructor.

Referenced by NanoXploreBackendFlow().

Here is the caller graph for this function:

Member Function Documentation

◆ CheckSynthesisResults()

void NanoXploreBackendFlow::CheckSynthesisResults ( )
overrideprotectedvirtual

◆ ExecuteSynthesis()

void NanoXploreBackendFlow::ExecuteSynthesis ( )
overridevirtual

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

Reimplemented from BackendFlow.

Definition at line 287 of file NanoXploreBackendFlow.cpp.

References BackendFlow::ExecuteSynthesis().

Here is the call graph for this function:

◆ InitDesignParameters()

void NanoXploreBackendFlow::InitDesignParameters ( )
overridevirtual

◆ WriteFlowConfiguration()

void NanoXploreBackendFlow::WriteFlowConfiguration ( std::ostream &  script)
overrideprotectedvirtual

Writes the proper flow configuration in the output script.

Implements BackendFlow.

Definition at line 265 of file NanoXploreBackendFlow.cpp.

References BackendFlow::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, INDENT_DBG_MEX, and BackendFlow::Param.

◆ xparse_utilization()

void NanoXploreBackendFlow::xparse_utilization ( const std::string &  fn)
protected

Parses device utilization.

Definition at line 133 of file NanoXploreBackendFlow.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> NanoXploreBackendFlow::design_values
protected

results from the synthesis

Definition at line 58 of file NanoXploreBackendFlow.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:58 for PandA-2024.02 by doxygen 1.8.13