source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Parameters.cpp @ 88

Last change on this file since 88 was 88, checked in by rosiere, 16 years ago

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 3.6 KB
Line 
1/*
2 * $Id: Parameters.cpp 88 2008-12-10 18:31:39Z rosiere $
3 *
4 * [ Description ]
5 *
6 */
7
8#include "Behavioural/Generic/Victim/include/Parameters.h"
9
10namespace morpheo {
11namespace behavioural {
12namespace generic {
13namespace victim {
14
15
16#undef  FUNCTION
17#define FUNCTION "Victim::Parameters"
18  Parameters::Parameters (Tvictim_t victim_scheme    ,
19                          uint32_t  nb_entity        ,
20                          uint32_t  nb_entry         ,
21                          uint32_t  nb_access        ,
22                          bool      table_global     )
23  {
24    log_printf(FUNC,Victim,FUNCTION,"Begin");
25   
26    _victim_scheme     = victim_scheme;
27    _nb_entity         = nb_entity    ;
28    _nb_entry          = nb_entry     ;
29    _nb_access         = nb_access    ;
30    _table_global      = table_global ;
31   
32    _size_table        = (table_global==true)?1:_nb_entry;
33    _size_entity       = log2(nb_entity);
34    _size_address      = log2(nb_entry);
35   
36    _have_port_address = _size_address>0;
37
38    test();
39
40    switch (victim_scheme)
41      {
42//    case VICTIM_RANDOM      : _param_victim_random      = new morpheo::behavioural::generic::victim::victim_random     ::Parameters (); break;
43//    case VICTIM_ROUND_ROBIN : _param_victim_round_robin = new morpheo::behavioural::generic::victim::victim_round_robin::Parameters (); break;
44//    case VICTIM_NLU         : _param_victim_nlu         = new morpheo::behavioural::generic::victim::victim_nlu        ::Parameters (); break;
45      case VICTIM_PSEUDO_LRU  : _param_victim_pseudo_lru  = new morpheo::behavioural::generic::victim::victim_pseudo_lru ::Parameters (nb_entity, nb_access, nb_entry, table_global); break;
46//    case VICTIM_LRU         : _param_victim_lru         = new morpheo::behavioural::generic::victim::victim_lru        ::Parameters (); break;
47//    case VICTIM_FIFO        : _param_victim_fifo        = new morpheo::behavioural::generic::victim::victim_fifo       ::Parameters (); break;
48      default : break;
49      }
50
51    log_printf(FUNC,Victim,FUNCTION,"End");
52  };
53 
54// #undef  FUNCTION
55// #define FUNCTION "Victim::Parameters (copy)"
56//   Parameters::Parameters (Parameters & param)
57//   {
58//     log_printf(FUNC,Victim,FUNCTION,"Begin");
59//     test();
60//     log_printf(FUNC,Victim,FUNCTION,"End");
61//   };
62
63#undef  FUNCTION
64#define FUNCTION "Victim::~Parameters"
65  Parameters::~Parameters () 
66  {
67    log_printf(FUNC,Victim,FUNCTION,"Begin");
68
69    switch (_victim_scheme)
70      {
71//    case VICTIM_RANDOM      : delete _param_victim_random     ; break;
72//    case VICTIM_ROUND_ROBIN : delete _param_victim_round_robin; break;
73//    case VICTIM_NLU         : delete _param_victim_nlu        ; break;
74      case VICTIM_PSEUDO_LRU  : delete _param_victim_pseudo_lru ; break;
75//    case VICTIM_LRU         : delete _param_victim_lru        ; break;
76//    case VICTIM_FIFO        : delete _param_victim_fifo       ; break;
77      default : break;
78      }
79
80    log_printf(FUNC,Victim,FUNCTION,"End");
81  };
82
83#undef  FUNCTION
84#define FUNCTION "Victim::copy"
85  void morpheo::behavioural::generic::victim::Parameters::copy (void) 
86  {
87    log_printf(FUNC,Victim,FUNCTION,"Begin");
88
89    switch (_victim_scheme)
90      {
91//    case VICTIM_RANDOM      : COPY(_param_victim_random     ); break;
92//    case VICTIM_ROUND_ROBIN : COPY(_param_victim_round_robin); break;
93//    case VICTIM_NLU         : COPY(_param_victim_nlu        ); break;
94      case VICTIM_PSEUDO_LRU  : COPY(_param_victim_pseudo_lru ); break;
95//    case VICTIM_LRU         : COPY(_param_victim_lru        ); break;
96//    case VICTIM_FIFO        : COPY(_param_victim_fifo       ); break;
97      default : break;
98      }
99
100    log_printf(FUNC,Victim,FUNCTION,"End");
101  };
102
103}; // end namespace victim
104}; // end namespace generic
105
106}; // end namespace behavioural
107}; // end namespace morpheo             
Note: See TracBrowser for help on using the repository browser.