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