source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Configuration.cpp @ 146

Last change on this file since 146 was 146, checked in by rosiere, 13 years ago

1) Integration of RegisterFile_Internal_Banked in RegisterFile?
2) Erase "read_write" interface in RegisterFile_Monolithic component
3) Add smith predictor parameters in Load_store_pointer_unit.
4) Fix not statistics flags

  • Property svn:keywords set to Id
File size: 5.6 KB
RevLine 
[88]1/*
2 * $Id: Configuration.cpp 146 2011-02-01 20:57:54Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Configuration/include/Configuration.h"
9#include "Behavioural/include/Simulation.h"
10#include "Common/include/Environment.h"
11
12namespace morpheo {
13namespace behavioural {
14namespace configuration {
15
16#undef  FUNCTION
17#define FUNCTION "Configuration::Configuration"
18  Configuration::Configuration (std::string filename_simulator,
19                                std::string filename_generator,
20                                std::string filename_instance ,
21                                behavioural::custom::custom_information_t (*get_custom_information) (void))
22  {
23    log_begin(Configuration,FUNCTION);
24
[97]25    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26    // Simulator configuration
27    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
[88]29    _simulator = new Simulator (filename_simulator);
30
31    //--------------------------------------------------
[97]32    // Directory
[88]33    //--------------------------------------------------
[97]34    directory_init (_simulator->getParam("directory_statistics"),
35                    _simulator->getParam("directory_vhdl"      ),
36                    _simulator->getParam("directory_position"  ),
37                    _simulator->getParam("directory_log"       ));
[88]38
39    //--------------------------------------------------
[97]40    // Debug & Log File
[88]41    //--------------------------------------------------
[100]42    debug_init (fromString<debug_verbosity_t>(_simulator->getParam("debug_level")),
43                fromString<double>           (_simulator->getParam("debug_cycle_start")),
[109]44                fromString<double>           (_simulator->getParam("debug_cycle_stop")),
[110]45                fromString<double>           (_simulator->getParam("debug_idle_cycle")),
46                fromString<uint32_t>         (_simulator->getParam("debug_idle_time")));
[88]47
[138]48    log_init(fromString<bool>  (_simulator->getParam("debug_log_file_generate")),
[124]49             fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
50             fromString<bool>  (_simulator->getParam("simulation_file_with_pid")),
[97]51             MORPHEO_LOG);
52
[88]53    //--------------------------------------------------
54    // Usage
55    //--------------------------------------------------
56    _usage     = USE_NONE;
57   
58    if (fromString<bool>(_simulator->getParam("use_systemc")))
59      _usage = usage_set(_usage, USE_SYSTEMC);
60    if (fromString<bool>(_simulator->getParam("use_vhdl")))
61      _usage = usage_set(_usage, USE_VHDL);
62    if (fromString<bool>(_simulator->getParam("use_vhdl_testbench")))
63      _usage = usage_set(_usage, USE_VHDL_TESTBENCH);
64    if (fromString<bool>(_simulator->getParam("use_vhdl_testbench_assert")))
65      _usage = usage_set(_usage, USE_VHDL_TESTBENCH_ASSERT);
66    if (fromString<bool>(_simulator->getParam("use_position")))
67      _usage = usage_set(_usage, USE_POSITION);
68    if (fromString<bool>(_simulator->getParam("use_statistics")))
69      _usage = usage_set(_usage, USE_STATISTICS);
[114]70//     if (fromString<bool>(_simulator->getParam("use_information")))
71//       _usage = usage_set(_usage, USE_INFORMATION);
[88]72    if (fromString<bool>(_simulator->getParam("use_header")))
73      _usage = usage_set(_usage, USE_HEADER);
74
75    usage_environment (_usage);
76
77    //--------------------------------------------------
[97]78    // Header
79    //--------------------------------------------------
80
81    if (usage_is_set(_usage,USE_HEADER))
82      std::cout << header();
83
[146]84#ifdef STATISTICS
[97]85    //--------------------------------------------------
[88]86    // Parameters_Statistics
87    //--------------------------------------------------
[100]88    _param_statistics = new Parameters_Statistics (fromString<uint64_t>(_simulator->getParam("statistics_cycle_start")),
89                                                   fromString<uint64_t>(_simulator->getParam("statistics_period")));
[146]90#endif
[88]91
92    //--------------------------------------------------
93    // Simulation condition stop
94    //--------------------------------------------------
[138]95    simulation_init (fromString<double>     (_simulator->getParam("simulation_nb_cycle")),
96                     fromString<double>     (_simulator->getParam("debug_nb_cycle")),
97                     fromString<double>     (_simulator->getParam("simulation_nb_instruction")),
98                     fromString<stop_type_t>(_simulator->getParam("simulation_stop_type")),
99                     fromString<bool>       (_simulator->getParam("simulation_file_with_date")),
100                     fromString<bool>       (_simulator->getParam("simulation_file_with_pid"))
[124]101                     );
[88]102
[97]103
104    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105    // Generator configuration + Instance
106    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
107
108    _generator = new Generator (filename_generator);
109    _instance  = new Instance  (filename_instance ,
110                                _generator,
111                                get_custom_information);
112
[88]113    //--------------------------------------------------
[97]114    // Name
[88]115    //--------------------------------------------------
[97]116    _name      = _instance->getName();
[88]117
[97]118    //--------------------------------------------------
119    // Parameters
120    //--------------------------------------------------
121    _param     = _instance->_param;
122
123
[88]124    log_end(Configuration,FUNCTION);
125  };
126
127#undef  FUNCTION
128#define FUNCTION "Configuration::~Configuration"
129  Configuration::~Configuration () 
130  {
131    log_begin(Configuration,FUNCTION);
132
133    delete _simulator;
134    delete _generator;
135    delete _instance;
[110]136//  simulation_destroy();
[146]137#ifdef STATISTICS
[88]138    delete _param_statistics;
[146]139#endif
[88]140
141    log_end(Configuration,FUNCTION);
142  };
143
144}; // end namespace configuration
145}; // end namespace behavioural
146}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.