source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_genMealy.cpp @ 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: 2.0 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Stat_List_unit_genMealy.cpp 81 2008-04-15 18:40:01Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_ooo_engine {
15namespace ooo_engine {
16namespace rename_unit {
17namespace register_translation_unit {
18namespace stat_list_unit {
19
20
21#undef  FUNCTION
22#define FUNCTION "Stat_List_unit::genMealy"
23  void Stat_List_unit::genMealy (void)
24  {
25    log_printf(FUNC,Stat_List_unit,FUNCTION,"Begin");
26
27    for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
28      {
29        bool ack = true;
30
31        if (PORT_READ(in_INSERT_READ_RA [i]))
32          {
33            Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RA_PHY [i]);
34            uint32_t bank = num_reg >> _param->_shift_gpr;
35            uint32_t reg  = num_reg  & _param->_mask_gpr ;
36            ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
37          }
38
39        if (PORT_READ(in_INSERT_READ_RB [i]))
40          {
41            Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RB_PHY [i]);
42            uint32_t bank = num_reg >> _param->_shift_gpr;
43            uint32_t reg  = num_reg  & _param->_mask_gpr ;
44            ack &= gpr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
45          }
46
47        if (PORT_READ(in_INSERT_READ_RC [i]))
48          {
49            Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RC_PHY [i]);
50            uint32_t bank = num_reg >> _param->_shift_spr;
51            uint32_t reg  = num_reg  & _param->_mask_spr ;
52            ack &= spr_stat_list [bank][reg].can_insert_read(_param->_max_reader);
53          }
54
55        internal_INSERT_ACK [i] = ack;
56        PORT_WRITE(out_INSERT_ACK [i], ack);
57      }
58   
59    log_printf(FUNC,Stat_List_unit,FUNCTION,"End");
60  };
61
62}; // end namespace stat_list_unit
63}; // end namespace register_translation_unit
64}; // end namespace rename_unit
65}; // end namespace ooo_engine
66}; // end namespace multi_ooo_engine
67}; // end namespace core
68
69}; // end namespace behavioural
70}; // end namespace morpheo             
71#endif
Note: See TracBrowser for help on using the repository browser.