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

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

1) OOO_egine : add stat to depiste low perf source
2) Commit : add stat
3) LSU_Pointer : retire - always ack (else combinatory loop). insert - max nb_inst_memory
4) TopLevel? : add debug_idle_time to stop combinatory loop.
5) Issue_queue : add reexecute_queue, new implementation (routage after issue_queue)
6) Decod / Predictor : add "can_continue"

  • Property svn:keywords set to Id
File size: 5.0 KB
Line 
1/*
2 * $Id: Configuration.cpp 110 2009-02-19 16:31:47Z 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_have_log_file")),
49             MORPHEO_LOG);
50
51    //--------------------------------------------------
52    // Usage
53    //--------------------------------------------------
54    _usage     = USE_NONE;
55   
56    if (fromString<bool>(_simulator->getParam("use_systemc")))
57      _usage = usage_set(_usage, USE_SYSTEMC);
58    if (fromString<bool>(_simulator->getParam("use_vhdl")))
59      _usage = usage_set(_usage, USE_VHDL);
60    if (fromString<bool>(_simulator->getParam("use_vhdl_testbench")))
61      _usage = usage_set(_usage, USE_VHDL_TESTBENCH);
62    if (fromString<bool>(_simulator->getParam("use_vhdl_testbench_assert")))
63      _usage = usage_set(_usage, USE_VHDL_TESTBENCH_ASSERT);
64    if (fromString<bool>(_simulator->getParam("use_position")))
65      _usage = usage_set(_usage, USE_POSITION);
66    if (fromString<bool>(_simulator->getParam("use_statistics")))
67      _usage = usage_set(_usage, USE_STATISTICS);
68    if (fromString<bool>(_simulator->getParam("use_information")))
69      _usage = usage_set(_usage, USE_INFORMATION);
70    if (fromString<bool>(_simulator->getParam("use_header")))
71      _usage = usage_set(_usage, USE_HEADER);
72
73    usage_environment (_usage);
74
75    //--------------------------------------------------
76    // Header
77    //--------------------------------------------------
78
79    if (usage_is_set(_usage,USE_HEADER))
80      std::cout << header();
81
82    //--------------------------------------------------
83    // Parameters_Statistics
84    //--------------------------------------------------
85    _param_statistics = new Parameters_Statistics (fromString<uint64_t>(_simulator->getParam("statistics_cycle_start")),
86                                                   fromString<uint64_t>(_simulator->getParam("statistics_period")));
87
88    //--------------------------------------------------
89    // Simulation condition stop
90    //--------------------------------------------------
91    simulation_init (fromString<double>(_simulator->getParam("simulation_nb_cycle")),
92                     fromString<double>(_simulator->getParam("simulation_nb_instruction")));
93
94
95    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
96    // Generator configuration + Instance
97    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98
99    _generator = new Generator (filename_generator);
100    _instance  = new Instance  (filename_instance ,
101                                _generator,
102                                get_custom_information);
103
104    //--------------------------------------------------
105    // Name
106    //--------------------------------------------------
107    _name      = _instance->getName();
108
109    //--------------------------------------------------
110    // Parameters
111    //--------------------------------------------------
112    _param     = _instance->_param;
113
114
115    log_end(Configuration,FUNCTION);
116  };
117
118#undef  FUNCTION
119#define FUNCTION "Configuration::~Configuration"
120  Configuration::~Configuration () 
121  {
122    log_begin(Configuration,FUNCTION);
123
124    delete _simulator;
125    delete _generator;
126    delete _instance;
127//  simulation_destroy();
128    delete _param_statistics;
129
130    log_end(Configuration,FUNCTION);
131  };
132
133}; // end namespace configuration
134}; // end namespace behavioural
135}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.