source: trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp @ 53

Last change on this file since 53 was 53, checked in by rosiere, 17 years ago
  • Banc de registre multi banc
  • Banc de registre générique.
File size: 1.4 KB
Line 
1#ifdef SYSTEMC
2/*
3 * $Id$
4 *
5 * [ Description ]
6 *
7 */
8
9#include "Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h"
10
11namespace morpheo                    {
12namespace behavioural                {
13namespace generic                    {
14namespace registerfile               {
15namespace registerfile_monolithic    {
16  void RegisterFile_Monolithic::transition (void)
17  {
18    log_printf(FUNC,RegisterFile,"transition","Begin");
19#ifdef STATISTICS
20    _stat_nb_write = 0;
21#endif   
22
23    for (uint32_t i=0; i<_param._nb_port_write; i++)
24      {
25        // Have a write?
26        if ( PORT_READ(in_WRITE_VAL[i]) == true)
27          {
28#ifdef STATISTICS
29            _stat_nb_write ++;
30#endif   
31
32            Taddress_t address = PORT_READ(in_WRITE_ADDRESS[i]);
33            Tdata_t    data    = PORT_READ(in_WRITE_DATA   [i]);
34           
35            log_printf(TRACE,RegisterFile,"transition","[%d] <- %.8x",static_cast<uint32_t>(address),static_cast<uint32_t>(data));
36
37            // Write in registerFile
38            REGISTER_WRITE(reg_DATA[address],data);
39          }
40      }
41
42#ifdef STATISTICS
43    _stat->add(_stat_nb_read,_stat_nb_write);
44#endif   
45
46#ifdef VHDL_TESTBENCH
47    vhdl_testbench_transition ();
48#endif
49    log_printf(FUNC,RegisterFile,"transition","End");
50  };
51
52}; // end namespace registerfile_monolithic
53}; // end namespace registerfile
54}; // end namespace generic
55}; // end namespace behavioural         
56}; // end namespace morpheo             
57#endif
Note: See TracBrowser for help on using the repository browser.