source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_spr_read_registerfile.cpp @ 88

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

Almost complete design
with Test and test platform

  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id: Register_unit_Glue_genMealy_spr_read_registerfile.cpp 88 2008-12-10 18:31:39Z rosiere $
5 *
6 * [ Description ]
7 *
8 */
9
10#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
11
12namespace morpheo                    {
13namespace behavioural {
14namespace core {
15namespace multi_execute_loop {
16namespace execute_loop {
17namespace register_unit {
18namespace register_unit_glue {
19
20
21#undef  FUNCTION
22#define FUNCTION "Register_unit_Glue::genMealy_spr_read_registerfile"
23  void Register_unit_Glue::genMealy_spr_read_registerfile (void)
24  {
25    log_begin(Register_unit_Glue,FUNCTION);
26    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
27
28//     if (not PORT_READ(in_NRESET))
29//       {
30//      for (uint32_t j=0; j<_param->_nb_spr_read; j++)
31//        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
32//          PORT_WRITE(out_SPR_READ_REGISTERFILE_VAL [i][j],0);
33//       }
34//     else
35      {
36        for (uint32_t j=0; j<_param->_nb_spr_read; j++)
37          {
38            Tcontext_t ooo_engine_id    = (_param->_have_port_ooo_engine_id == true)?PORT_READ(in_SPR_READ_OOO_ENGINE_ID[j]):0;
39            Tcontrol_t val              = PORT_READ(in_SPR_READ_VAL [j]);
40           
41            Tcontrol_t registerfile_val = val and PORT_READ(in_SPR_READ_STATUS_ACK [ooo_engine_id][j]);
42           
43            for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
44              {
45                Tcontrol_t id = (i == ooo_engine_id)?1:0;
46                PORT_WRITE(out_SPR_READ_REGISTERFILE_VAL [i][j], (id and registerfile_val));
47              }
48          }
49      }
50
51    log_end(Register_unit_Glue,FUNCTION);
52  };
53
54}; // end namespace register_unit_glue
55}; // end namespace register_unit
56}; // end namespace execute_loop
57}; // end namespace multi_execute_loop
58}; // end namespace core
59
60}; // end namespace behavioural
61}; // end namespace morpheo             
62#endif
63//#endif
Note: See TracBrowser for help on using the repository browser.