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

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

1) Fix performance
2) add auto generation to SPECINT2000
3) add reset in genMoore and genMealy

  • Property svn:keywords set to Id
File size: 2.6 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id: Register_unit_Glue_genMealy_retire.cpp 123 2009-06-08 20:43:30Z 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    if (PORT_READ(in_NRESET))
30      {
31    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
32      {
33        uint32_t x=_param->_nb_inst_retire_rob [i];
34
35        for (uint32_t j=0; j<x; j++)
36          {
37            Tcontrol_t val         = PORT_READ(in_RETIRE_ROB_VAL        [i][j]);
38            Tcontrol_t gpr_old_use = PORT_READ(in_RETIRE_ROB_RD_OLD_USE [i][j]);
39            Tcontrol_t gpr_new_use = PORT_READ(in_RETIRE_ROB_RD_NEW_USE [i][j]);
40            Tcontrol_t spr_old_use = PORT_READ(in_RETIRE_ROB_RE_OLD_USE [i][j]);
41            Tcontrol_t spr_new_use = PORT_READ(in_RETIRE_ROB_RE_NEW_USE [i][j]);
42            Tcontrol_t gpr_old_ack = PORT_READ(in_RETIRE_ROB_GPR_STATUS_OLD_ACK [i][j]);
43            Tcontrol_t gpr_new_ack = PORT_READ(in_RETIRE_ROB_GPR_STATUS_NEW_ACK [i][j]);
44            Tcontrol_t spr_old_ack = PORT_READ(in_RETIRE_ROB_SPR_STATUS_OLD_ACK [i][j]);
45            Tcontrol_t spr_new_ack = PORT_READ(in_RETIRE_ROB_SPR_STATUS_NEW_ACK [i][j]);
46
47            PORT_WRITE(out_RETIRE_ROB_ACK [i][j], (gpr_old_ack and
48                                                   gpr_new_ack and
49                                                   spr_old_ack and
50                                                   spr_new_ack));
51
52            PORT_WRITE(out_RETIRE_ROB_GPR_STATUS_OLD_VAL [i][j],
53                       val and gpr_old_use                 and gpr_new_ack and spr_old_ack and spr_new_ack);
54            PORT_WRITE(out_RETIRE_ROB_GPR_STATUS_NEW_VAL [i][j],
55                       val and gpr_new_use and gpr_old_ack                 and spr_old_ack and spr_new_ack);
56            PORT_WRITE(out_RETIRE_ROB_SPR_STATUS_OLD_VAL [i][j],
57                       val and spr_old_use and gpr_old_ack and gpr_new_ack                 and spr_new_ack);
58            PORT_WRITE(out_RETIRE_ROB_SPR_STATUS_NEW_VAL [i][j],
59                       val and spr_new_use and gpr_old_ack and gpr_new_ack and spr_old_ack                );
60          }
61      }
62}
63    log_end(Register_unit_Glue,FUNCTION);
64  };
65
66}; // end namespace register_unit_glue
67}; // end namespace register_unit
68}; // end namespace execute_loop
69}; // end namespace multi_execute_loop
70}; // end namespace core
71
72}; // end namespace behavioural
73}; // end namespace morpheo             
74*/
75#endif
76//#endif
Note: See TracBrowser for help on using the repository browser.