source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_insert.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.0 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id: Register_unit_Glue_genMealy_insert.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_insert"
23  void Register_unit_Glue::genMealy_insert (void)
24  {
25    log_begin(Register_unit_Glue,FUNCTION);
26    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
27
28    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
29      for (uint32_t j=0; j<_param->_nb_inst_insert_rob [i]; j++)
30        {
31          Tcontrol_t val            = PORT_READ(in_INSERT_ROB_VAL [i][j]);
32          Tcontrol_t gpr_use        = PORT_READ(in_INSERT_ROB_RD_USE [i][j]);
33          Tcontrol_t spr_use        = PORT_READ(in_INSERT_ROB_RE_USE [i][j]);
34          Tcontrol_t gpr_status_ack = PORT_READ(in_INSERT_ROB_GPR_STATUS_ACK [i][j]);
35          Tcontrol_t spr_status_ack = PORT_READ(in_INSERT_ROB_SPR_STATUS_ACK [i][j]);
36         
37          Tcontrol_t ack            = (gpr_status_ack and
38                                       spr_status_ack);     
39          Tcontrol_t gpr_status_val = (val     and
40                                       gpr_use and
41                                       spr_status_ack);
42          Tcontrol_t spr_status_val = (val     and
43                                       spr_use and
44                                       gpr_status_ack);
45
46          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"  * insert_rob [%d][%d]",i,j);
47          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * val            (r) : %d",val           );
48          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * ack            (w) : %d",ack           );
49          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * gpr_use (rd)   (r) : %d",gpr_use       );
50          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * gpr_status_val (w) : %d",gpr_status_val);
51          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * gpr_status_ack (r) : %d",gpr_status_ack);
52          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * spr_use (re)   (r) : %d",spr_use       );
53          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * spr_status_val (w) : %d",spr_status_val);
54          log_printf(TRACE,OOO_Engine_Glue,FUNCTION,"    * spr_status_ack (r) : %d",spr_status_ack);
55
56          PORT_WRITE(out_INSERT_ROB_ACK            [i][j], ack           );
57          PORT_WRITE(out_INSERT_ROB_GPR_STATUS_VAL [i][j], gpr_status_val);
58          PORT_WRITE(out_INSERT_ROB_SPR_STATUS_VAL [i][j], spr_status_val);
59
60        }
61
62    log_end(Register_unit_Glue,FUNCTION);
63  };
64
65}; // end namespace register_unit_glue
66}; // end namespace register_unit
67}; // end namespace execute_loop
68}; // end namespace multi_execute_loop
69}; // end namespace core
70
71}; // end namespace behavioural
72}; // end namespace morpheo             
73#endif
74//#endif
Note: See TracBrowser for help on using the repository browser.