source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue_genMealy_icache_req.cpp @ 85

Last change on this file since 85 was 85, checked in by rosiere, 16 years ago
  • Ifetch_unit : systemC test ok
  • modif shell script and makefile.tools : SHELL=/bin/bash
  • Property svn:keywords set to Id
File size: 1.6 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id: Ifetch_unit_Glue_genMealy_icache_req.cpp 85 2008-05-14 13:09:48Z rosiere $
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h"
10
11namespace morpheo                    {
12namespace behavioural {
13namespace core {
14namespace multi_front_end {
15namespace front_end {
16namespace ifetch_unit {
17namespace ifetch_unit_glue {
18
19
20#undef  FUNCTION
21#define FUNCTION "Ifetch_unit_Glue::genMealy_icache_req"
22  void Ifetch_unit_Glue::genMealy_icache_req (void)
23  {
24    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"Begin");
25
26    Tcontrol_t address_val = PORT_READ(in_ICACHE_REQ_ADDRESS_VAL);
27    Tcontrol_t queue_ack   = PORT_READ(in_ICACHE_REQ_QUEUE_ACK  );
28    Tcontrol_t ack         = PORT_READ(in_ICACHE_REQ_ACK        );
29
30    PORT_WRITE(out_ICACHE_REQ_VAL        , address_val and queue_ack); // have a address valid and queue have a slot empty
31    PORT_WRITE(out_ICACHE_REQ_ADDRESS_ACK, ack         and queue_ack); // cache can accept a new transaction and queue have a slot empty
32    PORT_WRITE(out_ICACHE_REQ_QUEUE_VAL  , address_val and ack); // cache can accept a new transaction and the address is valid
33
34    Taddress_t address     = PORT_READ(in_ICACHE_REQ_ADDRESS_ADDRESS);
35    PORT_WRITE(out_ICACHE_REQ_ADDRESS      ,address);
36    PORT_WRITE(out_ICACHE_REQ_QUEUE_ADDRESS,address);
37   
38    log_printf(FUNC,Ifetch_unit_Glue,FUNCTION,"End");
39  };
40
41}; // end namespace ifetch_unit_glue
42}; // end namespace ifetch_unit
43}; // end namespace front_end
44}; // end namespace multi_front_end
45}; // end namespace core
46
47}; // end namespace behavioural
48}; // end namespace morpheo             
49#endif
Note: See TracBrowser for help on using the repository browser.