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

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

1) Configuration : instance configuration file : regroup similar instance
2) Configuration : timing default = 0
3) Debug/Commit_unit : Add watch dog timer
4) Issue_queue : Test parameters : add test if type is optionnal
5) Cor_glue : Fix insert index
6) Free_list : remove bank_by_pop (else deadlock)
7) Update Free List : add register to source event

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