source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_issue.cpp

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

1) Add new algo in ifetch queue
2) Add Cancel bit
3) new config

  • Property svn:keywords set to Id
File size: 1.8 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Execute_loop_Glue_genMealy_issue.cpp 136 2009-10-20 18:52:15Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/include/Execute_loop_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16namespace execute_loop_glue {
17
18
19#undef  FUNCTION
20#define FUNCTION "Execute_loop_Glue::genMealy_issue"
21  void Execute_loop_Glue::genMealy_issue (void)
22  {
23    log_begin(Execute_loop_Glue,FUNCTION);
24
25    for (uint32_t i=0; i<_param->_nb_inst_issue; i++)
26      {
27        Tcontrol_t ack              ;
28        Tcontrol_t read_unit_val    ;
29        Tcontrol_t register_unit_val;
30       
31        if (PORT_READ(in_NRESET))
32          {
33            Tcontrol_t val               = PORT_READ(in_ISSUE_VAL               [i]);
34            Tcontrol_t read_unit_ack     = PORT_READ(in_ISSUE_READ_UNIT_ACK     [i]);
35            Tcontrol_t register_unit_ack = PORT_READ(in_ISSUE_REGISTER_UNIT_ACK [i]);
36
37            ack               = (
38//                               val               and
39                                 read_unit_ack     and
40                                 register_unit_ack
41                                 );
42            read_unit_val     = (
43                                 val               and
44//                               read_unit_ack     and
45                                 register_unit_ack
46                                 );
47            register_unit_val = (
48                                 val               and
49                                 read_unit_ack     // and
50//                               register_unit_ack
51                                 );
52          }
53        else
54          {
55            ack               = false;
56            read_unit_val     = false;
57            register_unit_val = false;
58          }
59
60        PORT_WRITE(out_ISSUE_ACK               [i],ack              );
61        PORT_WRITE(out_ISSUE_READ_UNIT_VAL     [i],read_unit_val    );
62        PORT_WRITE(out_ISSUE_REGISTER_UNIT_VAL [i],register_unit_val);
63      }
64   
65    log_end(Execute_loop_Glue,FUNCTION);
66  };
67
68}; // end namespace execute_loop_glue
69}; // end namespace execute_loop
70}; // end namespace multi_execute_loop
71}; // end namespace core
72
73}; // end namespace behavioural
74}; // end namespace morpheo             
75#endif
Note: See TracBrowser for help on using the repository browser.