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_status.cpp @ 61

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

register_unit_glue : separation des fonctions - evite les cycles dans le graph de dependances des ports i/o

File size: 1.5 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id$
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_status"
23  void Register_unit_Glue::genMealy_spr_read_status (void)
24  {
25    log_printf(FUNC,Register_unit_Glue,FUNCTION,"Begin");
26
27    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
28      {
29        Tcontext_t ooo_engine_id    = (_param->_have_port_ooo_engine_id == true)?PORT_READ(in_SPR_READ_OOO_ENGINE_ID[j]):0;
30        Tcontrol_t val              = PORT_READ(in_SPR_READ_VAL [j]);
31        Tcontrol_t registerfile_ack = PORT_READ(in_SPR_READ_REGISTERFILE_ACK [ooo_engine_id][j]);
32   
33        Tcontrol_t status_val       = val and registerfile_ack;
34
35        for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
36          {
37            Tcontrol_t id = (i == ooo_engine_id)?1:0;
38            PORT_WRITE(out_SPR_READ_STATUS_VAL       [i][j], (id and status_val));
39          }
40      }
41
42    log_printf(FUNC,Register_unit_Glue,FUNCTION,"End");
43  };
44
45}; // end namespace register_unit_glue
46}; // end namespace register_unit
47}; // end namespace execute_loop
48}; // end namespace multi_execute_loop
49}; // end namespace core
50
51}; // end namespace behavioural
52}; // end namespace morpheo             
53#endif
54//#endif
Note: See TracBrowser for help on using the repository browser.