source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_retire.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: 2.5 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id: Register_unit_Glue_genMealy_retire.cpp 88 2008-12-10 18:31:39Z rosiere $
5 *
6 * [ Description ]
7 *
8 */
9
10/*
11#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h"
12
13namespace morpheo                    {
14namespace behavioural {
15namespace core {
16namespace multi_execute_loop {
17namespace execute_loop {
18namespace register_unit {
19namespace register_unit_glue {
20
21
22#undef  FUNCTION
23#define FUNCTION "Register_unit_Glue::genMealy_retire"
24  void Register_unit_Glue::genMealy_retire (void)
25  {
26    log_begin(Register_unit_Glue,FUNCTION);
27    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
28
29    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
30      {
31        uint32_t x=_param->_nb_inst_retire_rob [i];
32
33        for (uint32_t j=0; j<x; j++)
34          {
35            Tcontrol_t val         = PORT_READ(in_RETIRE_ROB_VAL        [i][j]);
36            Tcontrol_t gpr_old_use = PORT_READ(in_RETIRE_ROB_RD_OLD_USE [i][j]);
37            Tcontrol_t gpr_new_use = PORT_READ(in_RETIRE_ROB_RD_NEW_USE [i][j]);
38            Tcontrol_t spr_old_use = PORT_READ(in_RETIRE_ROB_RE_OLD_USE [i][j]);
39            Tcontrol_t spr_new_use = PORT_READ(in_RETIRE_ROB_RE_NEW_USE [i][j]);
40            Tcontrol_t gpr_old_ack = PORT_READ(in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]);
41            Tcontrol_t gpr_new_ack = PORT_READ(in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]);
42            Tcontrol_t spr_old_ack = PORT_READ(in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
43            Tcontrol_t spr_new_ack = PORT_READ(in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]);
44
45            PORT_WRITE(out_RETIRE_ROB_ACK [i][j], (gpr_old_ack and
46                                                   gpr_new_ack and
47                                                   spr_old_ack and
48                                                   spr_new_ack));
49
50            PORT_WRITE(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j],
51                       val and gpr_old_use                 and gpr_new_ack and spr_old_ack and spr_new_ack);
52            PORT_WRITE(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j],
53                       val and gpr_new_use and gpr_old_ack                 and spr_old_ack and spr_new_ack);
54            PORT_WRITE(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j],
55                       val and spr_old_use and gpr_old_ack and gpr_new_ack                 and spr_new_ack);
56            PORT_WRITE(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j],
57                       val and spr_new_use and gpr_old_ack and gpr_new_ack and spr_old_ack                );
58          }
59      }
60
61    log_end(Register_unit_Glue,FUNCTION);
62  };
63
64}; // end namespace register_unit_glue
65}; // end namespace register_unit
66}; // end namespace execute_loop
67}; // end namespace multi_execute_loop
68}; // end namespace core
69
70}; // end namespace behavioural
71}; // end namespace morpheo             
72*/
73#endif
74//#endif
Note: See TracBrowser for help on using the repository browser.