PandA-2024.02
quartus_13_report_wrapper.cpp
Go to the documentation of this file.
1 /*
2  *
3  * _/_/_/ _/_/ _/ _/ _/_/_/ _/_/
4  * _/ _/ _/ _/ _/_/ _/ _/ _/ _/ _/
5  * _/_/_/ _/_/_/_/ _/ _/_/ _/ _/ _/_/_/_/
6  * _/ _/ _/ _/ _/ _/ _/ _/ _/
7  * _/ _/ _/ _/ _/ _/_/_/ _/ _/
8  *
9  * ***********************************************
10  * PandA Project
11  * URL: http://panda.dei.polimi.it
12  * Politecnico di Milano - DEIB
13  * System Architectures Group
14  * ***********************************************
15  * Copyright (C) 2004-2024 Politecnico di Milano
16  *
17  * This file is part of the PandA framework.
18  *
19  * The PandA framework is free software; you can redistribute it and/or modify
20  * it under the terms of the GNU General Public License as published by
21  * the Free Software Foundation; either version 3 of the License, or
22  * (at your option) any later version.
23  *
24  * This program is distributed in the hope that it will be useful,
25  * but WITHOUT ANY WARRANTY; without even the implied warranty of
26  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
27  * GNU General Public License for more details.
28  *
29  * You should have received a copy of the GNU General Public License
30  * along with this program. If not, see <http://www.gnu.org/licenses/>.
31  *
32  */
44 
45 #include "DesignParameters.hpp"
46 #include "Parameter.hpp"
47 #include "ToolManager.hpp"
48 #include "dbgPrintHelper.hpp" // for DEBUG_LEVEL_
49 #include "xml_script_command.hpp"
50 
51 #define PARAM_quartus_report "quartus_report"
52 
53 // constructor
54 Quartus13ReportWrapper::Quartus13ReportWrapper(const ParameterConstRef& _Param, const std::string& _output_dir,
55  const generic_deviceRef& _device)
57 {
58  PRINT_DBG_MEX(DEBUG_LEVEL_PEDANTIC, debug_level, "Creating the QUARTUS_REPORT wrapper...");
59 }
60 
61 // destructor
63 
65 {
66  std::string top_id = dp->component_name;
67  dp->parameter_values[PARAM_quartus_report] = output_dir + "/" + top_id + "_report.xml";
68 }
69 
71 {
72  std::ostringstream s;
73  s << get_tool_exec() << " -t ";
74  if(Param->isOption(OPT_quartus_13_64bit) && Param->getOption<bool>(OPT_quartus_13_64bit))
75  {
76  s << " --64bit ";
77  }
78  s << script_name;
79  for(const auto& option : xml_tool_options)
80  {
81  if(option->checkCondition(dp))
82  {
83  std::string value = toString(option, dp);
84  replace_parameters(dp, value);
85  s << " " << value;
86  }
87  }
88  s << std::endl;
89  return s.str();
90 }
void EvaluateVariables(const DesignParametersRef dp) override
Evaluates the design variables.
const ParameterConstRef Param
class containing all the parameters
File containing functions and utilities to support the printing of debug messagges.
Quartus13ReportWrapper(const ParameterConstRef &Param, const std::string &_output_dir, const generic_deviceRef &_device)
Constructor.
#define PRINT_DBG_MEX(dbgLevel, curDbgLevel, mex)
We are producing a debug version of the program, so the message is printed;.
#define DEBUG_LEVEL_PEDANTIC
very verbose debugging print is performed.
int debug_level
debug level of the class
std::string output_dir
the output directory
std::string toString(const xml_script_node_tRef node, const DesignParametersRef dp) const override
Returns the string-based representation of the XML element.
#define QUARTUS_13_REPORT_TOOL_EXEC
map_t parameter_values
Map between the name of the parameter and the corresponding string-based value.
#define PARAM_quartus_report
Header include.
This file contains the definition of the parameters for the synthesis tools.
std::string script_name
name of the script
std::string get_command_line(const DesignParametersRef &dp) const override
Returns the proper command line.
void replace_parameters(const DesignParametersRef &dp, std::string &script) const
Replaces occurrences of parameters inside a script.
std::vector< xml_parameter_tRef > xml_tool_options
Classes for handling configuration files.
Wrapper to invoke quartus_report tool by Altera.
Class to manage a wrapped tool.
std::string component_name
Name of the component.
#define QUARTUS_13_REPORT_TOOL_ID
Superclass include.
~Quartus13ReportWrapper() override
Destructor.
Template borrowed from the ANTLR library by Terence Parr (http://www.jGuru.com - Software rights: htt...
Definition: refcount.hpp:94
virtual std::string get_tool_exec() const
Returns the name of the tool executable.
this class is used to manage the command-line or XML options.

Generated on Mon Feb 12 2024 13:02:56 for PandA-2024.02 by doxygen 1.8.13