source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Execute_loop_Glue/src/Execute_loop_Glue_genMealy_spr_write.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.1 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Execute_loop_Glue_genMealy_spr_write.cpp 88 2008-12-10 18:31:39Z 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_spr_write"
21  void Execute_loop_Glue::genMealy_spr_write (void)
22  {
23    log_begin(Execute_loop_Glue,FUNCTION);
24
25    for (uint32_t i=0; i<_param->_nb_spr_write; i++)
26      {
27        Tcontrol_t         val           = PORT_READ(in_SPR_WRITE_WRITE_UNIT_VAL           [i]);
28        Tcontrol_t         ack           = PORT_READ(in_SPR_WRITE_REGISTER_FILE_ACK        [i]);
29        Tcontext_t         ooo_engine_id = (_param->_have_port_ooo_engine_id)?PORT_READ(in_SPR_WRITE_WRITE_UNIT_OOO_ENGINE_ID [i]):0;
30        Tspecial_address_t num_reg       = PORT_READ(in_SPR_WRITE_WRITE_UNIT_NUM_REG       [i]);
31        Tspecial_data_t    data          = PORT_READ(in_SPR_WRITE_WRITE_UNIT_DATA          [i]);
32
33        PORT_WRITE(out_SPR_WRITE_WRITE_UNIT_ACK               [i],ack          );
34       
35        PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_VAL            [i],val          );
36        if (_param->_have_port_ooo_engine_id)
37        PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_OOO_ENGINE_ID  [i],ooo_engine_id);
38        PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_NUM_REG        [i],num_reg      );
39        PORT_WRITE(out_SPR_WRITE_REGISTER_FILE_DATA           [i],data         );
40       
41        PORT_WRITE(out_SPR_WRITE_READ_UNIT_VAL                [i],val and ack  ); // Transaction
42        if (_param->_have_port_ooo_engine_id)
43        PORT_WRITE(out_SPR_WRITE_READ_UNIT_OOO_ENGINE_ID      [i],ooo_engine_id);
44        PORT_WRITE(out_SPR_WRITE_READ_UNIT_NUM_REG            [i],num_reg      );
45        PORT_WRITE(out_SPR_WRITE_READ_UNIT_DATA               [i],data         );
46      }
47
48    log_end(Execute_loop_Glue,FUNCTION);
49  };
50
51}; // end namespace execute_loop_glue
52}; // end namespace execute_loop
53}; // end namespace multi_execute_loop
54}; // end namespace core
55
56}; // end namespace behavioural
57}; // end namespace morpheo             
58#endif
Note: See TracBrowser for help on using the repository browser.