PandA-2024.02
|
#include <NanoXploreBackendFlow.hpp>
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_element * | root |
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< BackendStepRef > | steps |
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... | |
Definition at line 54 of file NanoXploreBackendFlow.hpp.
NanoXploreBackendFlow::NanoXploreBackendFlow | ( | const ParameterConstRef | Param, |
const std::string & | flow_name, | ||
const generic_deviceRef | _device | ||
) |
Constructor.
Definition at line 67 of file NanoXploreBackendFlow.cpp.
References BackendFlow::debug_level, DEBUG_LEVEL_PEDANTIC, DEBUG_LEVEL_VERBOSE, BackendFlow::default_data, BackendFlow::device, GET_CLASS, INDENT_DBG_MEX, INDENT_OUT_MEX, BackendFlow::output_level, OUTPUT_LEVEL_VERBOSE, BackendFlow::Param, BackendFlow::parse_flow(), test_panda::parser, relocate_compiler_path(), THROW_ERROR, THROW_WARNING, and ~NanoXploreBackendFlow().
|
overridedefault |
|
overrideprotectedvirtual |
Checks the synthesis results and fills the corresponding data structures.
Implements BackendFlow.
Definition at line 223 of file NanoXploreBackendFlow.cpp.
References BackendFlow::actual_parameters, BackendFlow::area_m, CopyStdout(), design_values, time_info::factory(), area_info::factory(), GetPath(), NANOXPLORE_DSP, NANOXPLORE_FE, NANOXPLORE_LUTS, NANOXPLORE_MEM, NANOXPLORE_POWER, NANOXPLORE_REGISTERS, NANOXPLORE_SLACK, BackendFlow::output_level, OUTPUT_LEVEL_VERBOSE, OUTPUT_LEVEL_VERY_PEDANTIC, BackendFlow::Param, PARAM_clk_period, PARAM_nxpython_report, PARAM_nxpython_timing_report, DesignParameters::parameter_values, PRINT_OUT_MEX, time_info::set_execution_time(), THROW_ASSERT, THROW_ERROR, BackendFlow::time_m, and xparse_utilization().
|
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().
|
overridevirtual |
Initializes the parameters.
determine if power optimization has to be performed
Reimplemented from BackendFlow.
Definition at line 292 of file NanoXploreBackendFlow.cpp.
References BackendFlow::actual_parameters, BackendFlow::debug_level, DEBUG_LEVEL_VERY_PEDANTIC, BackendFlow::device, INDENT_DBG_MEX, BackendFlow::Param, PARAM_HDL_files, PARAM_nxpython_sources_macro_list, PARAM_power_optimization, PARAM_target_device, PARAM_target_family, DesignParameters::parameter_values, BackendFlow::steps, and STR.
|
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.
|
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().
|
protected |
results from the synthesis
Definition at line 58 of file NanoXploreBackendFlow.hpp.
Referenced by CheckSynthesisResults(), and xparse_utilization().