![]() |
PandA-2024.02
|
superclass include More...
#include <LatticeBackendFlow.hpp>


Public Member Functions | |
| LatticeBackendFlow (const ParameterConstRef Param, const std::string &flow_name, const generic_deviceRef _device) | |
| Constructor. More... | |
| ~LatticeBackendFlow () 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_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... | |
superclass include
Definition at line 50 of file LatticeBackendFlow.hpp.
| LatticeBackendFlow::LatticeBackendFlow | ( | const ParameterConstRef | Param, |
| const std::string & | flow_name, | ||
| const generic_deviceRef | _device | ||
| ) |
Constructor.
Definition at line 69 of file LatticeBackendFlow.cpp.
References BackendFlow::debug_level, DEBUG_LEVEL_VERBOSE, BackendFlow::default_data, BackendFlow::device, INDENT_DBG_MEX, BackendFlow::output_level, OUTPUT_LEVEL_VERBOSE, BackendFlow::Param, BackendFlow::parse_flow(), test_panda::parser, PRINT_OUT_MEX, relocate_compiler_path(), THROW_ERROR, and ~LatticeBackendFlow().

|
overridedefault |
|
overrideprivatevirtual |
Checks the synthesis results and fills the corresponding data-structures.
Implements BackendFlow.
Definition at line 204 of file LatticeBackendFlow.cpp.
References BackendFlow::actual_parameters, BackendFlow::area_m, design_values, time_info::factory(), area_info::factory(), GetPath(), LATTICE_DELAY, LATTICE_DSP, LATTICE_MEM, LATTICE_REGISTERS, LATTICE_SLICE, BackendFlow::output_level, OUTPUT_LEVEL_MINIMUM, BackendFlow::Param, PARAM_lattice_report, DesignParameters::parameter_values, PRINT_OUT_MEX, time_info::set_execution_time(), THROW_ASSERT, BackendFlow::time_m, and xparse_utilization().

|
private |
Creates the constraint file.
Definition at line 247 of file LatticeBackendFlow.cpp.
References DesignParameters::component_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().

|
overridevirtual |
Checks if the execution can be performed and, in case, performs the synthesis.
Reimplemented from BackendFlow.
Definition at line 334 of file LatticeBackendFlow.cpp.
References BackendFlow::ExecuteSynthesis().

|
overridevirtual |
Initializes the parameters.
Reimplemented from BackendFlow.
Definition at line 278 of file LatticeBackendFlow.cpp.
References BackendFlow::actual_parameters, create_sdc(), BackendFlow::device, lenet_tvm::file, BackendFlow::Param, PARAM_HDL_files, PARAM_sources_macro_list, PARAM_target_device, PARAM_target_family, DesignParameters::parameter_values, BackendFlow::steps, and THROW_ERROR.

|
overrideprivatevirtual |
Writes the proper flow configuration in the output script.
Implements BackendFlow.
Definition at line 229 of file LatticeBackendFlow.cpp.
References BackendFlow::Param, and starts_with().

|
private |
Parses device utilization.
Definition at line 114 of file LatticeBackendFlow.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().


|
private |
design values reported by the tools
Definition at line 53 of file LatticeBackendFlow.hpp.
Referenced by CheckSynthesisResults(), and xparse_utilization().
1.8.13