![]() |
PandA-2024.02
|
#include <BashBackendFlow.hpp>


Public Member Functions | |
| BashBackendFlow (const ParameterConstRef Param, const std::string &flow_name, const generic_deviceRef _device) | |
| Constructor. More... | |
| ~BashBackendFlow () override | |
| Destructor. 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... | |
| virtual void | ExecuteSynthesis () |
| Executes the synthesis with the implemented flow. 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... | |
| void | InitDesignParameters () override |
| Evaluates design variables. More... | |
| void | create_sdc (const DesignParametersRef dp) |
| Creates the constraint file. 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 51 of file BashBackendFlow.hpp.
| BashBackendFlow::BashBackendFlow | ( | const ParameterConstRef | Param, |
| const std::string & | flow_name, | ||
| const generic_deviceRef | _device | ||
| ) |
Constructor.
Definition at line 63 of file BashBackendFlow.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 ~BashBackendFlow().

|
overridedefault |
|
overrideprotectedvirtual |
Checks the synthesis results and fills the corresponding data structures.
Implements BackendFlow.
Definition at line 244 of file BashBackendFlow.cpp.
References BackendFlow::actual_parameters, BackendFlow::area_m, BASHBACKEND_AREA, BASHBACKEND_DESIGN_DELAY, BASHBACKEND_POWER, CopyStdout(), design_values, BackendFlow::device, time_info::factory(), area_info::factory(), BackendFlow::output_level, OUTPUT_LEVEL_VERBOSE, OUTPUT_LEVEL_VERY_PEDANTIC, BackendFlow::Param, PARAM_bash_backend_report, PARAM_bash_backend_timing_report, DesignParameters::parameter_values, PRINT_OUT_MEX, time_info::set_execution_time(), THROW_ASSERT, BackendFlow::time_m, and xparse_utilization().

|
protected |
Creates the constraint file.
Definition at line 198 of file BashBackendFlow.cpp.
References DesignParameters::component_name, BackendFlow::out_dir, BackendFlow::Param, PARAM_clk_name, PARAM_clk_period, PARAM_is_combinational, PARAM_sdc_file, and DesignParameters::parameter_values.
Referenced by InitDesignParameters().

|
overrideprotectedvirtual |
Evaluates design variables.
determine if power optimization has to be performed
Reimplemented from BackendFlow.
Definition at line 221 of file BashBackendFlow.cpp.
References BackendFlow::actual_parameters, create_sdc(), BackendFlow::device, BackendFlow::Param, PARAM_bash_sources_macro_list, PARAM_HDL_files, PARAM_power_optimization, PARAM_target_device, DesignParameters::parameter_values, BackendFlow::steps, and STR.

|
overrideprotectedvirtual |
Writes the proper flow configuration in the output script.
Implements BackendFlow.
Definition at line 277 of file BashBackendFlow.cpp.
References BackendFlow::device, GetCurrentPath(), and relocate_compiler_path().

|
protected |
Parses device utilization.
Definition at line 108 of file BashBackendFlow.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 55 of file BashBackendFlow.hpp.
Referenced by CheckSynthesisResults(), and xparse_utilization().
1.8.13