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

Last change on this file since 136 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.