source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue_genMoore.cpp @ 54

Last change on this file since 54 was 54, checked in by rosiere, 17 years ago

Ajout de Read_queue

  • seulement en systemC
  • validé
File size: 3.9 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/include/Read_queue.h"
10
11namespace morpheo {
12namespace behavioural {
13namespace core {
14namespace multi_execute_loop {
15namespace execute_loop {
16namespace multi_read_unit {
17namespace read_unit {
18namespace read_queue {
19
20#undef  FUNCTION
21#define FUNCTION "Read_queue::genMoore"
22  void Read_queue::genMoore (void)
23  {
24    log_printf(FUNC,Read_queue,FUNCTION,"Begin");
25
26    bool not_full  = not (_queue->size() == _param->_size_read_queue);
27    bool not_empty = not _queue->empty();
28
29    // ~~~~~[ Interface "read_queue_in" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
30    PORT_WRITE (out_READ_QUEUE_IN_ACK , not_full );
31
32    // ~~~~~[ Interface "read_queue_out" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33//  PORT_WRITE (out_READ_QUEUE_OUT_VAL         , not_empty    );              // in genMealy_val
34
35    PORT_WRITE (out_READ_QUEUE_OUT_CONTEXT_ID  , _queue_head->_context_id  );
36    PORT_WRITE (out_READ_QUEUE_OUT_PACKET_ID   , _queue_head->_packet_id   );
37    PORT_WRITE (out_READ_QUEUE_OUT_OPERATION   , _queue_head->_operation   );
38    PORT_WRITE (out_READ_QUEUE_OUT_TYPE        , _queue_head->_type        );
39    PORT_WRITE (out_READ_QUEUE_OUT_HAS_IMMEDIAT, _queue_head->_has_immediat);
40    PORT_WRITE (out_READ_QUEUE_OUT_IMMEDIAT    , _queue_head->_immediat    );
41    PORT_WRITE (out_READ_QUEUE_OUT_READ_RA     , _queue_head->_read_ra     );
42    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RA  , _queue_head->_num_reg_ra  );
43//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA_VAL , _queue_head->_data_ra_val ); // in genMealy_gpr
44//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RA     , _queue_head->_data_ra     ); // in genMealy_gpr
45    PORT_WRITE (out_READ_QUEUE_OUT_READ_RB     , _queue_head->_read_rb     );
46    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RB  , _queue_head->_num_reg_rb  );
47//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB_VAL , _queue_head->_data_rb_val ); // in genMealy_gpr
48//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RB     , _queue_head->_data_rb     ); // in genMealy_gpr
49    PORT_WRITE (out_READ_QUEUE_OUT_READ_RC     , _queue_head->_read_rc     );
50    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RC  , _queue_head->_num_reg_rc  );
51//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RC_VAL , _queue_head->_data_rc_val ); // in genMealy_spr
52//  PORT_WRITE (out_READ_QUEUE_OUT_DATA_RC     , _queue_head->_data_rc     ); // in genMealy_spr
53    PORT_WRITE (out_READ_QUEUE_OUT_WRITE_RD    , _queue_head->_write_rd    );
54    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RD  , _queue_head->_num_reg_rd  );
55    PORT_WRITE (out_READ_QUEUE_OUT_WRITE_RE    , _queue_head->_write_re    );
56    PORT_WRITE (out_READ_QUEUE_OUT_NUM_REG_RE  , _queue_head->_num_reg_re  );
57
58    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
59    PORT_WRITE (out_GPR_READ_VAL        [0], not_empty and _queue_head->_read_ra_val);
60    PORT_WRITE (out_GPR_READ_VAL        [1], not_empty and _queue_head->_read_rb_val);
61    PORT_WRITE (out_GPR_READ_CONTEXT_ID [0],               _queue_head->_context_id);
62    PORT_WRITE (out_GPR_READ_CONTEXT_ID [1],               _queue_head->_context_id);
63    PORT_WRITE (out_GPR_READ_NUM_REG    [0],               _queue_head->_num_reg_ra);
64    PORT_WRITE (out_GPR_READ_NUM_REG    [1],               _queue_head->_num_reg_rb);
65
66    // ~~~~~[ Interface "spr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67    PORT_WRITE (out_SPR_READ_VAL        [0], not_empty and _queue_head->_read_rc_val);
68    PORT_WRITE (out_SPR_READ_CONTEXT_ID [0],               _queue_head->_context_id);
69    PORT_WRITE (out_SPR_READ_NUM_REG    [0],               _queue_head->_num_reg_rc);
70                   
71    log_printf(FUNC,Read_queue,FUNCTION,"End");
72  };
73
74}; // end namespace read_queue
75}; // end namespace read_unit
76}; // end namespace multi_read_unit
77}; // end namespace execute_loop
78}; // end namespace multi_execute_loop
79}; // end namespace core
80
81}; // end namespace behavioural
82}; // end namespace morpheo             
83#endif
Note: See TracBrowser for help on using the repository browser.