source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/SelfTest/include/test.h @ 81

Last change on this file since 81 was 81, checked in by rosiere, 16 years ago
  • Finish Environment (and test)
  • Continue predictor_unit
  • Add external tools
  • svn keyword "Id" set
  • Property svn:keywords set to Id
File size: 1.7 KB
Line 
1/*
2 * $Id: test.h 81 2008-04-15 18:40:01Z rosiere $
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_Read_unit/Read_unit/Read_queue/include/Read_queue.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_read_unit;
26using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit;
27using namespace morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue;
28
29void test    (string name,
30              morpheo::behavioural::core::multi_execute_loop::execute_loop::multi_read_unit::read_unit::read_queue::Parameters * param);
31
32class Time
33{
34private : timeval time_begin;
35// private : timeval time_end;
36 
37public  : Time ()
38  {
39    gettimeofday(&time_begin     ,NULL);
40  };
41
42public  : ~Time ()
43  {
44    cout << *this;
45  };
46
47public  : friend ostream& operator<< (ostream& output_stream,
48                                      const Time & x)
49  {
50    timeval time_end;
51   
52    gettimeofday(&time_end       ,NULL);
53   
54    uint32_t nb_cycles = static_cast<uint32_t>(sc_simulation_time());
55
56    double average = static_cast<double>(nb_cycles) / static_cast<double>(time_end.tv_sec-x.time_begin.tv_sec);
57   
58    output_stream << nb_cycles << "\t(" << average << " cycles / seconds )" << endl;
59
60    return output_stream;
61  }
62};
Note: See TracBrowser for help on using the repository browser.