source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_genMealy_gpr_read.cpp @ 123

Last change on this file since 123 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: 1.8 KB
Line 
1#ifdef SYSTEMC
2//#if defined(STATISTICS) or defined(VHDL_TESTBENCH)
3/*
4 * $Id: Register_unit_Glue_genMealy_gpr_read.cpp 123 2009-06-08 20:43:30Z 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_gpr_read"
23  void Register_unit_Glue::genMealy_gpr_read (void)
24  {
25    log_begin(Register_unit_Glue,FUNCTION);
26    log_function(Register_unit_Glue,FUNCTION,_name.c_str());
27
28    if (PORT_READ(in_NRESET))
29      {
30        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
31          {
32            Tcontext_t ooo_engine_id    = (_param->_have_port_ooo_engine_id == true)?PORT_READ(in_GPR_READ_OOO_ENGINE_ID[j]):0;
33            Tcontrol_t registerfile_ack = PORT_READ(in_GPR_READ_REGISTERFILE_ACK [ooo_engine_id][j]);
34            Tcontrol_t status_ack       = PORT_READ(in_GPR_READ_STATUS_ACK       [ooo_engine_id][j]);
35           
36            // multiplexor
37            PORT_WRITE(out_GPR_READ_ACK      [j], registerfile_ack and status_ack);
38            PORT_WRITE(out_GPR_READ_DATA     [j], PORT_READ(in_GPR_READ_REGISTERFILE_DATA[ooo_engine_id][j]));
39            PORT_WRITE(out_GPR_READ_DATA_VAL [j], PORT_READ(in_GPR_READ_STATUS_DATA_VAL  [ooo_engine_id][j]));
40          }
41      }
42    else
43      {
44        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
45          PORT_WRITE(out_GPR_READ_ACK      [j], 0);
46      }
47
48    log_end(Register_unit_Glue,FUNCTION);
49  };
50
51}; // end namespace register_unit_glue
52}; // end namespace register_unit
53}; // end namespace execute_loop
54}; // end namespace multi_execute_loop
55}; // end namespace core
56
57}; // end namespace behavioural
58}; // end namespace morpheo             
59#endif
60//#endif
Note: See TracBrowser for help on using the repository browser.