source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/SelfTest/include/test.h @ 59

Last change on this file since 59 was 59, checked in by rosiere, 17 years ago

Add Load store queue -> but not terminated and tested
Add article to sympa 2007 -> but no started

File size: 1.7 KB
Line 
1/*
2 * $Id$
3 *
4 * [ Description ]
5 *
6 * Test "RegisterFile"
7 */
8
9#ifdef SYSTEMC
10#include "systemc.h"
11#endif
12
13#include <string>
14#include <iostream>
15#include <sys/time.h>
16
17#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h"
18
19using namespace std;
20using namespace morpheo;
21using namespace morpheo::behavioural;
22using namespace morpheo::behavioural::core;
23using namespace morpheo::behavioural::core::multi_execute_loop;
24using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop;
25using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit;
26using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit;
27
28using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit;
29
30void test    (string name,
31              morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_execute_unit::execute_unit::load_store_unit::Parameters * param);
32
33class Time
34{
35private : timeval time_begin;
36// private : timeval time_end;
37 
38public  : Time ()
39  {
40    gettimeofday(&time_begin     ,NULL);
41  };
42
43public  : ~Time ()
44  {
45    cout << *this;
46  };
47
48public  : friend ostream& operator<< (ostream& output_stream,
49                                      const Time & x)
50  {
51    timeval time_end;
52   
53    gettimeofday(&time_end       ,NULL);
54   
55    uint32_t nb_cycles = static_cast<uint32_t>(sc_simulation_time());
56
57    double average = static_cast<double>(nb_cycles) / static_cast<double>(time_end.tv_sec-x.time_begin.tv_sec);
58   
59    output_stream << nb_cycles << "\t(" << average << " cycles / seconds )" << endl;
60
61    return output_stream;
62  }
63};
Note: See TracBrowser for help on using the repository browser.