Ignore:
Timestamp:
Jul 8, 2009, 8:40:08 PM (15 years ago)
Author:
rosiere
Message:

1) add constant method
2) test with systemc 2.2.0

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/SelfTest/src/test.cpp

    r113 r131  
    3232      exit (EXIT_FAILURE);
    3333    }
     34
     35  _model.set_model(MODEL_SYSTEMC,true);
    3436
    3537  Tusage_t _usage = USE_ALL;
     
    123125  // Initialisation
    124126
    125   sc_start(0);
     127  SC_START(0);
    126128 
    127129  for (uint32_t i=0; i<_param->_nb_port_write; i++)
     
    134136  NRESET.write(0);
    135137
    136   sc_start(5);
     138  SC_START(5);
    137139
    138140  NRESET.write(1);
    139141
     142  for (uint32_t i=0; i<_param->_nb_port_write; i++)
     143    TEST(Tcontrol_t,WRITE_ACK [i],1);
     144  for (uint32_t i=0; i<_param->_nb_port_read; i++)
     145    TEST(Tcontrol_t,READ_ACK  [i],1);
     146  for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
     147    TEST(Tcontrol_t,READ_WRITE_ACK  [i],1);
    140148
    141149  for (uint32_t nb_iteration=0; nb_iteration < NB_ITERATION; nb_iteration ++)
     
    159167      while (nb_ack < _param->_nb_word)
    160168        {
     169         
    161170          cout << "cycle : " << static_cast<uint32_t> (simulation_cycle()) << endl;
    162171
     
    196205            }
    197206         
    198           sc_start(1);
     207          SC_START(1);
    199208
    200209          // reset write_val port
     
    219228            }
    220229
    221           sc_start(0);
     230//        SC_START(0);
    222231        }
    223232     
     
    266275
    267276
    268           sc_start(1);
     277          SC_START(1);
    269278
    270279          // reset write_val port
     
    297306            }
    298307
    299           sc_start(0);
     308//        SC_START(0);
    300309        }
    301310    }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/include/RegisterFile_Monolithic.h

    r82 r131  
    114114                                               
    115115#ifdef SYSTEMC                                 
     116  public  : void     constant                  (void);
    116117  public  : void     transition                (void);
    117118//public  : void     genMoore                  (void) {/* empty */};
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic.cpp

    r123 r131  
    5656    if (usage_is_set(_usage,USE_SYSTEMC))
    5757      {
     58
     59# ifdef SYSTEMCASS_SPECIFIC
     60        constant();
     61#else
     62        SC_METHOD (constant);
     63//      dont_initialize ();
     64#endif
     65
    5866        SC_METHOD (transition);
    5967        dont_initialize ();
    6068        sensitive << (*(in_CLOCK)).pos();
    61        
     69
    6270        SC_METHOD (genMealy_read);
    6371        dont_initialize ();
     
    93101          }
    94102# endif   
    95        
    96         for (uint32_t i=0; i<_param->_nb_port_read       ; i++)
    97           PORT_WRITE(out_READ_ACK        [i], 1);
    98         for (uint32_t i=0; i<_param->_nb_port_write      ; i++)
    99           PORT_WRITE(out_WRITE_ACK       [i], 1);
    100         for (uint32_t i=0; i<_param->_nb_port_read_write ; i++)
    101           PORT_WRITE(out_READ_WRITE_ACK  [i], 1);
    102103      }
    103104#endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Monolithic/src/RegisterFile_Monolithic_transition.cpp

    r128 r131  
    114114
    115115#if defined(DEBUG_RegisterFile_Monolithic) and DEBUG_RegisterFile_Monolithic and (DEBUG >= DEBUG_TRACE)
    116     if (0)
     116# if 1
    117117    {
    118118      log_printf(TRACE,RegisterFile,FUNCTION,"  * Dump RegisterFile");
     
    136136        }
    137137    }
     138# endif
    138139#endif
    139140
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/RegisterFile_Multi_Banked/SelfTest/src/test.cpp

    r113 r131  
    2323#endif
    2424
     25  _model.set_model(MODEL_SYSTEMC,true);
     26
    2527  Tusage_t _usage = USE_ALL;
    2628
     
    3032//   _usage = usage_unset(_usage,USE_VHDL_TESTBENCH_ASSERT);
    3133//   _usage = usage_unset(_usage,USE_POSITION             );
    32    _usage = usage_unset(_usage,USE_STATISTICS           );
     34//    _usage = usage_unset(_usage,USE_STATISTICS           );
    3335//   _usage = usage_unset(_usage,USE_INFORMATION          );
    3436
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/SelfTest/src/test.cpp

    r113 r131  
    2121  morpheo::behavioural::Parameters_Statistics * _param_stat = new morpheo::behavioural::Parameters_Statistics(5,50);
    2222#endif
     23
     24  _model.set_model(MODEL_SYSTEMC,true);
    2325 
    2426  Tusage_t _usage = USE_ALL;
     
    170172            }
    171173
    172           SC_START(0);
     174//        SC_START(0);
    173175        }
    174176     
     
    219221                }
    220222             
    221               SC_START(0);
     223//            SC_START(0);
    222224            }
    223225        }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp

    r82 r131  
    33 * $Id$
    44 *
    5  * [ Description ]
     5 * [ Description ]
    66 *
    77 */
    88
    99#include "Behavioural/Generic/RegisterFile/include/RegisterFile.h"
     10#include "Behavioural/include/Allocation.h"
    1011
    1112namespace morpheo                    {
     
    1314namespace generic {
    1415namespace registerfile {
    15 
    1616
    1717  void RegisterFile::allocation (
     
    2727    log_printf(FUNC,RegisterFile,"allocation","Begin");
    2828
    29     // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     29#ifdef SYSTEMCASS_SPECIFIC
     30    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    3031    {
    31       in_CLOCK              = new SC_CLOCK           ("in_CLOCK" );
    32       in_NRESET             = new SC_IN (Tcontrol_t) ("in_NRESET");
     32      __ALLOC0_SIGNAL(in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
     33      __ALLOC0_SIGNAL(in_NRESET,"in_NRESET",SC_IN (Tcontrol_t));
    3334    }
    34     // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     35    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     36    {
     37      __ALLOC1_INTERFACE_BEGIN("READ",_param->_nb_port_read);
    3538
    36      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
    37     out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
    38     if (_param->_have_port_address == true)
    39      in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
    40     out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
     39      __ALLOC1_SIGNAL_IN ( in_READ_VAL    ,"VAL"    ,Tcontrol_t);
     40      __ALLOC1_SIGNAL_OUT(out_READ_ACK    ,"ACK"    ,Tcontrol_t);
     41      if (_param->_have_port_address)
     42      __ALLOC1_SIGNAL_IN ( in_READ_ADDRESS,"ADDRESS",Taddress_t);
     43      __ALLOC1_SIGNAL_OUT(out_READ_DATA   ,"DATA"   ,Tdata_t   );
    4144
    42     for (uint32_t i=0; i<_param->_nb_port_read; i++)
    43       {
    44         rename =  "in_READ_"+toString(i)+"_VAL"    ;
    45          in_READ_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());   
    46         rename = "out_READ_"+toString(i)+"_ACK"    ;
    47         out_READ_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
    48         if (_param->_have_port_address == true)
    49           {
    50         rename =  "in_READ_"+toString(i)+"_ADDRESS";
    51          in_READ_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
    52           }
    53         rename = "out_READ_"+toString(i)+"_DATA"   ;
    54         out_READ_DATA    [i]  = new SC_OUT(Tdata_t   ) (rename.c_str());
    55       }
     45      __ALLOC1_INTERFACE_END(_param->_nb_port_read);
     46    }
    5647
    57     // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     48    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     49    {
     50      __ALLOC1_INTERFACE_BEGIN("WRITE",_param->_nb_port_write);
    5851
    59      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
    60     out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
    61     if (_param->_have_port_address == true)
    62      in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
    63      in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
    64    
    65     for (uint32_t i=0; i<_param->_nb_port_write; i++)
    66       {
    67         rename =  "in_WRITE_"+toString(i)+"_VAL"    ;
    68          in_WRITE_VAL     [i]  = new SC_IN (Tcontrol_t) (rename.c_str());
    69         rename = "out_WRITE_"+toString(i)+"_ACK"    ;
    70         out_WRITE_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
    71         if (_param->_have_port_address == true)
    72           {
    73         rename =  "in_WRITE_"+toString(i)+"_ADDRESS";
    74          in_WRITE_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
    75           }
    76         rename =  "in_WRITE_"+toString(i)+"_DATA"   ;
    77          in_WRITE_DATA    [i]  = new SC_IN (Tdata_t   ) (rename.c_str());
    78       }
     52      __ALLOC1_SIGNAL_IN ( in_WRITE_VAL    ,"VAL"    ,Tcontrol_t);
     53      __ALLOC1_SIGNAL_OUT(out_WRITE_ACK    ,"ACK"    ,Tcontrol_t);
     54      if (_param->_have_port_address)
     55      __ALLOC1_SIGNAL_IN ( in_WRITE_ADDRESS,"ADDRESS",Taddress_t);
     56      __ALLOC1_SIGNAL_IN ( in_WRITE_DATA   ,"DATA"   ,Tdata_t   );
    7957
    80     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                               
     58      __ALLOC1_INTERFACE_END(_param->_nb_port_write);
     59    }
     60#endif
     61
     62     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                               
    8163    if (_param->_instance == instance_RegisterFile_Monolithic)
    8264    // =====[ component_RegisterFile_Monolithic ]=========================
     
    10688    // =====[ Component_RegisterFile_Monolithic - Instanciation ]=========
    10789      {
    108         (*(component_RegisterFile_Monolithic  ->in_CLOCK )) (*(in_CLOCK ));
     90#ifdef SYSTEMCASS_SPECIFIC
     91        (*(component_RegisterFile_Monolithic  ->in_CLOCK )) (*(in_CLOCK ));
    10992        (*(component_RegisterFile_Monolithic  ->in_NRESET)) (*(in_NRESET));
    11093       
     
    126109            (*(component_RegisterFile_Monolithic  -> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
    127110          }
     111#else
     112         in_CLOCK         = component_RegisterFile_Monolithic-> in_CLOCK        ;
     113         in_NRESET        = component_RegisterFile_Monolithic-> in_NRESET       ;
     114
     115         in_READ_VAL      = component_RegisterFile_Monolithic-> in_READ_VAL     ;   
     116        out_READ_ACK      = component_RegisterFile_Monolithic->out_READ_ACK     ;
     117         in_READ_ADDRESS  = component_RegisterFile_Monolithic-> in_READ_ADDRESS ;
     118        out_READ_DATA     = component_RegisterFile_Monolithic->out_READ_DATA    ;
     119
     120         in_WRITE_VAL     = component_RegisterFile_Monolithic-> in_WRITE_VAL    ;
     121        out_WRITE_ACK     = component_RegisterFile_Monolithic->out_WRITE_ACK    ;
     122         in_WRITE_ADDRESS = component_RegisterFile_Monolithic-> in_WRITE_ADDRESS;
     123         in_WRITE_DATA    = component_RegisterFile_Monolithic-> in_WRITE_DATA   ;
     124#endif
    128125      }
    129126    else
    130127    // =====[ Component_RegisterFile_Multi_Banked - Instanciation ]=======
    131128      {
     129#ifdef SYSTEMCASS_SPECIFIC
    132130        (*(component_RegisterFile_Multi_Banked->in_CLOCK )) (*(in_CLOCK ));
    133131        (*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET));
     
    150148            (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
    151149          }
     150#else
     151         in_CLOCK         = component_RegisterFile_Multi_Banked-> in_CLOCK        ;
     152         in_NRESET        = component_RegisterFile_Multi_Banked-> in_NRESET       ;
     153       
     154         in_READ_VAL      = component_RegisterFile_Multi_Banked-> in_READ_VAL     ;   
     155        out_READ_ACK      = component_RegisterFile_Multi_Banked->out_READ_ACK     ;
     156         in_READ_ADDRESS  = component_RegisterFile_Multi_Banked-> in_READ_ADDRESS ;
     157        out_READ_DATA     = component_RegisterFile_Multi_Banked->out_READ_DATA    ;
     158       
     159         in_WRITE_VAL     = component_RegisterFile_Multi_Banked-> in_WRITE_VAL    ;
     160        out_WRITE_ACK     = component_RegisterFile_Multi_Banked->out_WRITE_ACK    ;
     161         in_WRITE_ADDRESS = component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS;
     162         in_WRITE_DATA    = component_RegisterFile_Multi_Banked-> in_WRITE_DATA   ;
     163#endif
     164
    152165      }
    153166
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_deallocation.cpp

    r128 r131  
    33 * $Id$
    44 *
    5  * [ Description ]
     5 * [ Description ]
    66 *
    77 */
     
    1919    log_printf(FUNC,RegisterFile,"deallocation","Begin");
    2020
     21#ifdef SYSTEMCASS_SPECIFIC
    2122    delete in_CLOCK;
    2223    delete in_NRESET;
     
    5253    delete []  in_WRITE_ADDRESS;
    5354    delete []  in_WRITE_DATA   ;
     55#endif
    5456
    55     // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
     57    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    5658
    5759//   delete _component;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Select/Select_Priority_Fixed/src/Select_Priority_Fixed.cpp

    r97 r131  
    6969        SC_METHOD (transition);
    7070        dont_initialize ();
    71         sensitive_pos << *(in_CLOCK);
     71        sensitive << (*(in_CLOCK)).pos();
    7272#  endif
    7373       
     
    7676        SC_METHOD (genMealy_entity);
    7777        dont_initialize ();
    78         //sensitive_pos << *(in_CLOCK);
    7978        for (uint32_t i=0; i<_param->_nb_entity; i++)
    8079          sensitive << *(in_VAL [i]);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/include/Victim_Pseudo_LRU.h

    r88 r131  
    116116                                               
    117117#ifdef SYSTEMC                                 
     118  public  : void     constant                  (void);
    118119  public  : void     transition                (void);
    119120  public  : void     genMealy                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/Victim_Pseudo_LRU/src/Victim_Pseudo_LRU.cpp

    r123 r131  
    6363    if (usage_is_set(_usage,USE_SYSTEMC))
    6464      {
    65     // Constant - ack is always at one
    66     for (uint32_t i=0; i<_param->_nb_access; i++)
    67       {
    68         internal_ACCESS_ACK [i] = 1;
    69         PORT_WRITE (out_ACCESS_ACK [i], internal_ACCESS_ACK [i]);
    70       }
     65    log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
    7166
    72     log_printf(TRACE,Victim_Pseudo_LRU,"Victim_Pseudo_LRU","Definition of sc_method");
     67#ifdef SYSTEMCASS_SPECIFIC
     68    constant();
     69#else
     70    SC_METHOD (constant);
     71//     dont_initialize ();
     72#endif
     73
    7374    SC_METHOD (transition);
    7475    dont_initialize ();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_allocation.cpp

    r112 r131  
    2828    log_printf(FUNC,Victim,FUNCTION,"Begin");
    2929
    30    
     30#ifdef SYSTEMCASS_SPECIFIC
    3131    // ~~~~~[ Interface : "" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    3232    {
    33       __ALLOC0_SIGNAL(in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
    34       __ALLOC0_SIGNAL(in_NRESET,"in_NRESET",SC_IN (Tcontrol_t));
     33      __ALLOC0_SIGNAL    (in_CLOCK ,"in_CLOCK" ,SC_CLOCK          );
     34      __ALLOC0_SIGNAL    (in_NRESET,"in_NRESET",SC_IN(Tcontrol_t));
    3535    }
    3636
     
    4949      __ALLOC1_INTERFACE_END(_param->_nb_access);
    5050    }
     51#endif
    5152
    5253    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    8889      case VICTIM_PSEUDO_LRU  :
    8990        {
     91#ifdef SYSTEMCASS_SPECIFIC
    9092          {
    9193            (*(_component_victim_pseudo_lru-> in_CLOCK )) (*( in_CLOCK));
     
    103105              (*(_component_victim_pseudo_lru->out_ACCESS_VICTIM  [i])) (*(out_ACCESS_VICTIM  [i]));
    104106            }
    105 
     107#else
     108           in_CLOCK          = _component_victim_pseudo_lru-> in_CLOCK         ;
     109           in_NRESET         = _component_victim_pseudo_lru-> in_NRESET        ;
     110           in_ACCESS_VAL     = _component_victim_pseudo_lru-> in_ACCESS_VAL    ;
     111          out_ACCESS_ACK     = _component_victim_pseudo_lru->out_ACCESS_ACK    ;
     112           in_ACCESS_ADDRESS = _component_victim_pseudo_lru-> in_ACCESS_ADDRESS;
     113           in_ACCESS_HIT     = _component_victim_pseudo_lru-> in_ACCESS_HIT    ;
     114           in_ACCESS_ENTITY  = _component_victim_pseudo_lru-> in_ACCESS_ENTITY ;
     115          out_ACCESS_VICTIM  = _component_victim_pseudo_lru->out_ACCESS_VICTIM ;
     116#endif
    106117          break;
    107118        }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/Victim/src/Victim_deallocation.cpp

    r128 r131  
    3535    if (usage_is_set(_usage,USE_SYSTEMC))
    3636      {
     37#ifdef SYSTEMCASS_SPECIFIC
    3738        delete    in_CLOCK ;
    3839        delete    in_NRESET;
     
    5657        delete []  in_ACCESS_ENTITY ;
    5758        delete [] out_ACCESS_VICTIM ;
     59#endif
    5860      }
    5961
Note: See TracChangeset for help on using the changeset viewer.