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

Last change on this file since 124 was 124, checked in by rosiere, 15 years ago

1) Add test and configuration
2) Fix Bug
3) Add log file in load store unit
4) Fix Bug in environment

  • Property svn:keywords set to Id
File size: 5.5 KB
Line 
1/*
2 * $Id: Configuration.cpp 124 2009-06-17 12:11:25Z 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
25    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26    // Simulator configuration
27    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
28
29    _simulator = new Simulator (filename_simulator);
30
31    //--------------------------------------------------
32    // Directory
33    //--------------------------------------------------
34    directory_init (_simulator->getParam("directory_statistics"),
35                    _simulator->getParam("directory_vhdl"      ),
36                    _simulator->getParam("directory_position"  ),
37                    _simulator->getParam("directory_log"       ));
38
39    //--------------------------------------------------
40    // Debug & Log File
41    //--------------------------------------------------
42    debug_init (fromString<debug_verbosity_t>(_simulator->getParam("debug_level")),
43                fromString<double>           (_simulator->getParam("debug_cycle_start")),
44                fromString<double>           (_simulator->getParam("debug_cycle_stop")),
45                fromString<double>           (_simulator->getParam("debug_idle_cycle")),
46                fromString<uint32_t>         (_simulator->getParam("debug_idle_time")));
47
48    log_init(fromString<bool>(_simulator->getParam("debug_log_file_generate")),
49             fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
50             fromString<bool>  (_simulator->getParam("simulation_file_with_pid")),
51             MORPHEO_LOG);
52
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);
70//     if (fromString<bool>(_simulator->getParam("use_information")))
71//       _usage = usage_set(_usage, USE_INFORMATION);
72    if (fromString<bool>(_simulator->getParam("use_header")))
73      _usage = usage_set(_usage, USE_HEADER);
74
75    usage_environment (_usage);
76
77    //--------------------------------------------------
78    // Header
79    //--------------------------------------------------
80
81    if (usage_is_set(_usage,USE_HEADER))
82      std::cout << header();
83
84    //--------------------------------------------------
85    // Parameters_Statistics
86    //--------------------------------------------------
87    _param_statistics = new Parameters_Statistics (fromString<uint64_t>(_simulator->getParam("statistics_cycle_start")),
88                                                   fromString<uint64_t>(_simulator->getParam("statistics_period")));
89
90    //--------------------------------------------------
91    // Simulation condition stop
92    //--------------------------------------------------
93    simulation_init (fromString<double>(_simulator->getParam("simulation_nb_cycle")),
94                     fromString<double>(_simulator->getParam("debug_nb_cycle")),
95                     fromString<double>(_simulator->getParam("simulation_nb_instruction")),
96                     fromString<bool>  (_simulator->getParam("simulation_file_with_date")),
97                     fromString<bool>  (_simulator->getParam("simulation_file_with_pid"))
98                     );
99
100
101    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
102    // Generator configuration + Instance
103    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
104
105    _generator = new Generator (filename_generator);
106    _instance  = new Instance  (filename_instance ,
107                                _generator,
108                                get_custom_information);
109
110    //--------------------------------------------------
111    // Name
112    //--------------------------------------------------
113    _name      = _instance->getName();
114
115    //--------------------------------------------------
116    // Parameters
117    //--------------------------------------------------
118    _param     = _instance->_param;
119
120
121    log_end(Configuration,FUNCTION);
122  };
123
124#undef  FUNCTION
125#define FUNCTION "Configuration::~Configuration"
126  Configuration::~Configuration () 
127  {
128    log_begin(Configuration,FUNCTION);
129
130    delete _simulator;
131    delete _generator;
132    delete _instance;
133//  simulation_destroy();
134    delete _param_statistics;
135
136    log_end(Configuration,FUNCTION);
137  };
138
139}; // end namespace configuration
140}; // end namespace behavioural
141}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.