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

#include <BashBackendFlow.hpp>

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

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_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 51 of file BashBackendFlow.hpp.

Constructor & Destructor Documentation

◆ BashBackendFlow()

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

◆ ~BashBackendFlow()

BashBackendFlow::~BashBackendFlow ( )
overridedefault

Destructor.

Referenced by BashBackendFlow().

Here is the caller graph for this function:

Member Function Documentation

◆ CheckSynthesisResults()

void BashBackendFlow::CheckSynthesisResults ( )
overrideprotectedvirtual

◆ create_sdc()

void BashBackendFlow::create_sdc ( const DesignParametersRef  dp)
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().

Here is the caller graph for this function:

◆ InitDesignParameters()

void BashBackendFlow::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.

Here is the call graph for this function:

◆ WriteFlowConfiguration()

void BashBackendFlow::WriteFlowConfiguration ( std::ostream &  script)
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().

Here is the call graph for this function:

◆ xparse_utilization()

void BashBackendFlow::xparse_utilization ( const std::string &  fn)
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().

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> BashBackendFlow::design_values
protected

results from the synthesis

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