Changeset 131 for trunk/IPs


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
Files:
23 added
94 edited

Legend:

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

    r120 r131  
    5959    cout << "------------------------------------------------------" << endl;
    6060
    61     Instance * instance = new Instance ("../../../Files/Instance_x2_w1_6.cfg",
     61    Instance * instance = new Instance ("../../../Files/Instance_x4_w8_1.cfg",
     62                                        generator1,
     63                                        _get_custom_information
     64                                        );
     65    instance->toFile("data_out");
     66   
     67    delete instance;
     68  }
     69
     70  {
     71    cout << "------------------------------------------------------" << endl;
     72
     73    Instance * instance = new Instance ("../../../Files/Instance_x4_w8_2.cfg",
    6274                                        generator1,
    6375                                        _get_custom_information
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Generator_toXML.cpp

    r88 r131  
    77
    88#include "Behavioural/Configuration/include/Generator.h"
     9#include "Common/include/Basename.h"
    910
    1011namespace morpheo {
     
    1617  XML Generator::toXML (void)
    1718  {
    18     XML xml (basename(_filename.c_str()));
    19     xml.filename_extension("");
     19    XML xml (basename(_filename,false).c_str());
     20    xml.filename_extension("gen");
    2021   
    2122    xml.balise_open("parameters");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Instance_toXML.cpp

    r88 r131  
    77
    88#include "Behavioural/Configuration/include/Instance.h"
     9#include "Common/include/Basename.h"
    910
    1011namespace morpheo {
     
    1617  XML Instance::toXML (void)
    1718  {
    18     XML xml (basename(_filename.c_str()));
    19     xml.filename_extension("");
     19    XML xml (basename(_filename,false).c_str());
     20    xml.filename_extension("cfg");
    2021   
    2122    xml.balise_open_begin("core");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Configuration/src/Simulator_toXML.cpp

    r88 r131  
    77
    88#include "Behavioural/Configuration/include/Simulator.h"
     9#include "Common/include/Basename.h"
    910
    1011namespace morpheo {
     
    1617  XML Simulator::toXML (void)
    1718  {
    18     XML xml (basename(_filename.c_str()));
    19     xml.filename_extension("");
     19    XML xml (basename(_filename,false).c_str());
     20    xml.filename_extension("sim");
    2021   
    2122    xml.balise_open("parameters");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/include/Core_Glue.h

    r122 r131  
    247247                                               
    248248#ifdef SYSTEMC                                 
     249  public  : void        constant                  (void);
    249250  public  : void        transition                (void);
    250251//public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Core_Glue/src/Core_Glue.cpp

    r123 r131  
    7373    if (usage_is_set(_usage,USE_SYSTEMC))
    7474      {
    75         // Constant
    76         if (_param->_have_port_front_end_id)
    77           for (uint32_t i=0; i<_param->_nb_front_end; ++i)
    78             for (uint32_t j=0; j<_param->_nb_inst_decod [i]; ++j)
    79               {
    80                 PORT_WRITE(out_RENAME_FRONT_END_ID [i][j],_param->_translate_num_front_end_to_ooo_engine_front_end_id[i]);
    81               }
     75#ifdef SYSTEMCASS_SPECIFIC
     76        constant();
     77#else
     78        log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
     79
     80        SC_METHOD (constant);
     81//      dont_initialize ();
     82       
     83# ifdef SYSTEMCASS_SPECIFIC
     84        // List dependency information
     85# endif   
     86#endif
    8287
    8388        log_printf(INFO,Core_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/include/Load_store_unit.h

    r124 r131  
    227227  private : void     deallocation              (void);
    228228
     229  public  : void     constant                  (void);
    229230  public  : void     transition                (void);
    230231  public  : void     genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Execute_unit/Execute_unit/Load_store_unit/src/Load_store_unit.cpp

    r123 r131  
    9595      }
    9696
    97     log_printf(INFO,Load_store_unit,FUNCTION,"Constant affectation");
    98 
    99     internal_DCACHE_RSP_ACK = 1;
    100     PORT_WRITE(out_DCACHE_RSP_ACK [0], internal_DCACHE_RSP_ACK);
    101     for (uint32_t i=1; i<_param->_nb_cache_port; ++i)
    102       {
    103         PORT_WRITE(out_DCACHE_RSP_ACK [i], 0);
    104         PORT_WRITE(out_DCACHE_REQ_VAL [i], 0);
    105       }
    106 
    107     for (uint32_t i=1; i<_param->_nb_inst_memory; i++)
    108       {
    109         PORT_WRITE(out_MEMORY_OUT_VAL [i], 0);
    110       }
     97#ifdef SYSTEMCASS_SPECIFIC
     98        constant();
     99#else
     100    log_printf(INFO,Load_store_unit,FUNCTION,"Method - constant");
     101
     102    SC_METHOD (constant);
     103//     dont_initialize ();
     104
     105#ifdef SYSTEMCASS_SPECIFIC
     106    // List dependency information
     107#endif   
     108#endif
    111109
    112110    log_printf(INFO,Load_store_unit,FUNCTION,"Method - transition");
     
    114112    SC_METHOD (transition);
    115113    dont_initialize ();
    116     sensitive_pos << *(in_CLOCK);
     114    sensitive << (*(in_CLOCK)).pos();
    117115
    118116#ifdef SYSTEMCASS_SPECIFIC
     
    124122    SC_METHOD (genMoore);
    125123    dont_initialize ();
    126     sensitive_neg << *(in_CLOCK);
     124    sensitive << (*(in_CLOCK)).neg();
    127125
    128126#ifdef SYSTEMCASS_SPECIFIC
     
    134132    SC_METHOD (genMealy_insert);
    135133    dont_initialize ();
    136     sensitive_neg << *(in_CLOCK);
     134    sensitive << (*(in_CLOCK)).neg();
    137135    for (uint32_t i=0; i<_param->_nb_inst_memory; i++)
    138136      sensitive << (*(in_MEMORY_IN_VAL       [i]))
     
    153151    SC_METHOD (genMealy_retire);
    154152    dont_initialize ();
    155     sensitive_neg << *(in_CLOCK);
     153    sensitive << (*(in_CLOCK)).neg();
    156154
    157155#ifdef SYSTEMCASS_SPECIFIC
     
    163161    SC_METHOD (genMealy_dcache);
    164162    dont_initialize ();
    165     sensitive_neg << *(in_CLOCK);
     163    sensitive << (*(in_CLOCK)).neg();
    166164
    167165#ifdef SYSTEMCASS_SPECIFIC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Read_queue/src/Read_queue.cpp

    r123 r131  
    7474    SC_METHOD (transition);
    7575    dont_initialize ();
    76     sensitive_pos << *(in_CLOCK);
     76    sensitive << (*(in_CLOCK)).pos();
    7777
    7878    log_printf(INFO,Read_queue,"Read_queue","Method - genMoore");
     
    8080    SC_METHOD (genMoore);
    8181    dont_initialize ();
    82     sensitive_neg << *(in_CLOCK);
     82    sensitive << (*(in_CLOCK)).neg();
    8383
    8484    log_printf(INFO,Read_queue,"Read_queue","Method - genMealy_read_queue_out_val");
     
    8686    SC_METHOD (genMealy_read_queue_out_val);
    8787    dont_initialize ();
    88     sensitive_neg << *(in_CLOCK);
     88    sensitive << (*(in_CLOCK)).neg();
    8989    for (uint32_t i=0; i<_param->_nb_gpr_read ; i++)
    9090      sensitive << *(in_GPR_READ_ACK      [i]);
     
    133133    SC_METHOD (genMealy_read_queue_out_gpr);
    134134    dont_initialize ();
    135     sensitive_neg << *(in_CLOCK);
     135    sensitive << (*(in_CLOCK)).neg();
    136136    for (uint32_t i=0; i<_param->_nb_gpr_read ; i++)
    137137      sensitive << *(in_GPR_READ_ACK      [i])
     
    185185    SC_METHOD (genMealy_read_queue_out_spr);
    186186    dont_initialize ();
    187     sensitive_neg << *(in_CLOCK);
     187    sensitive << (*(in_CLOCK)).neg();
    188188    for (uint32_t i=0; i<_param->_nb_spr_read ; i++)
    189189      sensitive << *(in_SPR_READ_ACK      [i])
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station.cpp

    r123 r131  
    7878    SC_METHOD (transition);
    7979    dont_initialize ();
    80     sensitive_pos << *(in_CLOCK);
     80    sensitive << (*(in_CLOCK)).pos();
    8181//#endif
    8282
     
    8989    SC_METHOD (genMoore);
    9090    dont_initialize ();
    91     sensitive_neg << *(in_CLOCK);
     91    sensitive << (*(in_CLOCK)).neg();
    9292
    9393#ifdef SYSTEMCASS_SPECIFIC
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/SelfTest/src/test.cpp

    r88 r131  
    4646  sc_clock                         *  in_CLOCK;
    4747  sc_signal<Tcontrol_t>            *  in_NRESET;
    48   sc_signal<Tcontrol_t>            * out_CONST_0;
    49   sc_signal<Tcontrol_t>            * out_CONST_1;
     48//sc_signal<Tcontrol_t>            * out_CONST_0;
     49//sc_signal<Tcontrol_t>            * out_CONST_1;
    5050
    5151  sc_signal<Tcontrol_t        >   **  in_GPR_READ_VAL              ;
     
    5454  sc_signal<Tgeneral_data_t   >   ** out_GPR_READ_DATA             ;
    5555  sc_signal<Tcontrol_t        >   ** out_GPR_READ_DATA_VAL         ;
     56
    5657  sc_signal<Tcontrol_t        >  *** out_GPR_READ_REGISTERFILE_VAL ;
    5758  sc_signal<Tcontrol_t        >  ***  in_GPR_READ_REGISTERFILE_ACK ;
    5859  sc_signal<Tgeneral_data_t   >  ***  in_GPR_READ_REGISTERFILE_DATA;
     60
    5961  sc_signal<Tcontrol_t        >  *** out_GPR_READ_STATUS_VAL       ;
    6062  sc_signal<Tcontrol_t        >  ***  in_GPR_READ_STATUS_ACK       ;
    61   sc_signal<Tcontrol_t        >  ***  in_GPR_READ_STATUS_DATA_VAL  ;
     63  sc_signal<Tgeneral_data_t   >  ***  in_GPR_READ_STATUS_DATA_VAL  ;
    6264
    6365  sc_signal<Tcontrol_t        >   **  in_SPR_READ_VAL              ;
     
    6668  sc_signal<Tspecial_data_t   >   ** out_SPR_READ_DATA             ;
    6769  sc_signal<Tcontrol_t        >   ** out_SPR_READ_DATA_VAL         ;
     70
    6871  sc_signal<Tcontrol_t        >  *** out_SPR_READ_REGISTERFILE_VAL ;
    6972  sc_signal<Tcontrol_t        >  ***  in_SPR_READ_REGISTERFILE_ACK ;
    7073  sc_signal<Tspecial_data_t   >  ***  in_SPR_READ_REGISTERFILE_DATA;
     74
    7175  sc_signal<Tcontrol_t        >  *** out_SPR_READ_STATUS_VAL       ;
    7276  sc_signal<Tcontrol_t        >  ***  in_SPR_READ_STATUS_ACK       ;
    73   sc_signal<Tcontrol_t        >  ***  in_SPR_READ_STATUS_DATA_VAL  ;
     77  sc_signal<Tspecial_data_t   >  ***  in_SPR_READ_STATUS_DATA_VAL  ;
    7478
    7579  sc_signal<Tcontrol_t        >   **  in_GPR_WRITE_VAL             ;
    7680  sc_signal<Tcontrol_t        >   ** out_GPR_WRITE_ACK             ;
    7781  sc_signal<Tcontext_t        >   **  in_GPR_WRITE_OOO_ENGINE_ID   ;
     82
    7883  sc_signal<Tcontrol_t        >  *** out_GPR_WRITE_REGISTERFILE_VAL;
    7984  sc_signal<Tcontrol_t        >  ***  in_GPR_WRITE_REGISTERFILE_ACK;
     85
    8086  sc_signal<Tcontrol_t        >  *** out_GPR_WRITE_STATUS_VAL      ;
    8187  sc_signal<Tcontrol_t        >  ***  in_GPR_WRITE_STATUS_ACK      ;
     88  sc_signal<Tgeneral_data_t   >  *** out_GPR_WRITE_STATUS_DATA     ;
    8289 
    8390  sc_signal<Tcontrol_t        >   **  in_SPR_WRITE_VAL             ;
    8491  sc_signal<Tcontrol_t        >   ** out_SPR_WRITE_ACK             ;
    8592  sc_signal<Tcontext_t        >   **  in_SPR_WRITE_OOO_ENGINE_ID   ;
     93
    8694  sc_signal<Tcontrol_t        >  *** out_SPR_WRITE_REGISTERFILE_VAL;
    8795  sc_signal<Tcontrol_t        >  ***  in_SPR_WRITE_REGISTERFILE_ACK;
     96
    8897  sc_signal<Tcontrol_t        >  *** out_SPR_WRITE_STATUS_VAL      ;
    8998  sc_signal<Tcontrol_t        >  ***  in_SPR_WRITE_STATUS_ACK      ;
     99  sc_signal<Tspecial_data_t   >  *** out_SPR_WRITE_STATUS_DATA     ;
    90100
    91101  sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_VAL                       ;
     
    93103  sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_RD_USE                    ;
    94104  sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_RE_USE                    ;
     105
    95106  sc_signal<Tcontrol_t        >  *** out_INSERT_ROB_GPR_STATUS_VAL            ;
    96107  sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_GPR_STATUS_ACK            ;
     108  sc_signal<Tgeneral_data_t   >  *** out_INSERT_ROB_GPR_STATUS_DATA           ;
     109
    97110  sc_signal<Tcontrol_t        >  *** out_INSERT_ROB_SPR_STATUS_VAL            ;
    98111  sc_signal<Tcontrol_t        >  ***  in_INSERT_ROB_SPR_STATUS_ACK            ;
     112  sc_signal<Tspecial_data_t   >  *** out_INSERT_ROB_SPR_STATUS_DATA           ;
    99113
    100114//   sc_signal<Tcontrol_t        >  ***  in_RETIRE_ROB_VAL                       ;
     
    117131   in_CLOCK                               = new sc_clock ("clock", 1.0, 0.5);
    118132   in_NRESET                              = new sc_signal<Tcontrol_t> ("NRESET");
    119   out_CONST_0                             = new sc_signal<Tcontrol_t> ("CONST_0");
    120   out_CONST_1                             = new sc_signal<Tcontrol_t> ("CONST_1");
     133//   out_CONST_0                             = new sc_signal<Tcontrol_t> ("CONST_0");
     134//   out_CONST_1                             = new sc_signal<Tcontrol_t> ("CONST_1");
    121135
    122136    // ~~~~~[ Interface "gpr_read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    131145  out_GPR_READ_STATUS_VAL        = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
    132146   in_GPR_READ_STATUS_ACK        = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
    133    in_GPR_READ_STATUS_DATA_VAL   = new sc_signal<Tcontrol_t     >  ** [_param->_nb_ooo_engine];
     147   in_GPR_READ_STATUS_DATA_VAL   = new sc_signal<Tgeneral_data_t>  ** [_param->_nb_ooo_engine];
    134148
    135149   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    140154       out_GPR_READ_STATUS_VAL        [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
    141155        in_GPR_READ_STATUS_ACK        [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
    142         in_GPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tcontrol_t     >  * [_param->_nb_gpr_read];
     156        in_GPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tgeneral_data_t>  * [_param->_nb_gpr_read];
    143157     }
    144158
     
    158172             out_GPR_READ_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
    159173              in_GPR_READ_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
    160               in_GPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
     174              in_GPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());
    161175         }
    162176     }
     
    173187  out_SPR_READ_STATUS_VAL        = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
    174188   in_SPR_READ_STATUS_ACK        = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
    175    in_SPR_READ_STATUS_DATA_VAL   = new sc_signal<Tcontrol_t     > ** [_param->_nb_ooo_engine];
     189   in_SPR_READ_STATUS_DATA_VAL   = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine];
    176190
    177191   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    182196       out_SPR_READ_STATUS_VAL        [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
    183197        in_SPR_READ_STATUS_ACK        [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
    184         in_SPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tcontrol_t     > * [_param->_nb_spr_read];
     198        in_SPR_READ_STATUS_DATA_VAL   [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_read];
    185199     }
    186200
     
    200214             out_SPR_READ_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
    201215              in_SPR_READ_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
    202               in_SPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tcontrol_t     > (rename.c_str());
     216              in_SPR_READ_STATUS_DATA_VAL   [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str());
    203217         }
    204218     }
     
    212226  out_GPR_WRITE_STATUS_VAL        = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
    213227   in_GPR_WRITE_STATUS_ACK        = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
     228  out_GPR_WRITE_STATUS_DATA       = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine];
    214229
    215230   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    219234       out_GPR_WRITE_STATUS_VAL        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write];
    220235        in_GPR_WRITE_STATUS_ACK        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_gpr_write];
     236       out_GPR_WRITE_STATUS_DATA       [i] = new sc_signal<Tgeneral_data_t> * [_param->_nb_gpr_write];
    221237     }
    222238
     
    233249             out_GPR_WRITE_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());;
    234250              in_GPR_WRITE_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());;
     251             out_GPR_WRITE_STATUS_DATA       [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());;
    235252         }
    236253     }
     
    244261  out_SPR_WRITE_STATUS_VAL        = new sc_signal<Tcontrol_t>  ** [_param->_nb_ooo_engine];
    245262   in_SPR_WRITE_STATUS_ACK        = new sc_signal<Tcontrol_t>  ** [_param->_nb_ooo_engine];
     263  out_SPR_WRITE_STATUS_DATA       = new sc_signal<Tspecial_data_t>  ** [_param->_nb_ooo_engine];
    246264
    247265   for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    251269       out_SPR_WRITE_STATUS_VAL        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write];
    252270        in_SPR_WRITE_STATUS_ACK        [i] = new sc_signal<Tcontrol_t> * [_param->_nb_spr_write];
     271       out_SPR_WRITE_STATUS_DATA       [i] = new sc_signal<Tspecial_data_t> * [_param->_nb_spr_write];
    253272     }
    254273
     
    265284             out_SPR_WRITE_STATUS_VAL        [i][j] = new sc_signal<Tcontrol_t>  (rename.c_str());
    266285              in_SPR_WRITE_STATUS_ACK        [i][j] = new sc_signal<Tcontrol_t>  (rename.c_str());
     286             out_SPR_WRITE_STATUS_DATA       [i][j] = new sc_signal<Tspecial_data_t>  (rename.c_str());
    267287         }
    268288     }
     
    275295   out_INSERT_ROB_GPR_STATUS_VAL       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
    276296    in_INSERT_ROB_GPR_STATUS_ACK       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
     297   out_INSERT_ROB_GPR_STATUS_DATA      = new sc_signal<Tgeneral_data_t> ** [_param->_nb_ooo_engine];
    277298   out_INSERT_ROB_SPR_STATUS_VAL       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
    278299    in_INSERT_ROB_SPR_STATUS_ACK       = new sc_signal<Tcontrol_t> ** [_param->_nb_ooo_engine];
     300   out_INSERT_ROB_SPR_STATUS_DATA      = new sc_signal<Tspecial_data_t> ** [_param->_nb_ooo_engine];
    279301
    280302    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    288310       out_INSERT_ROB_GPR_STATUS_VAL       [i] = new sc_signal<Tcontrol_t> * [x];
    289311        in_INSERT_ROB_GPR_STATUS_ACK       [i] = new sc_signal<Tcontrol_t> * [x];
     312       out_INSERT_ROB_GPR_STATUS_DATA      [i] = new sc_signal<Tgeneral_data_t> * [x];
    290313       out_INSERT_ROB_SPR_STATUS_VAL       [i] = new sc_signal<Tcontrol_t> * [x];
    291314        in_INSERT_ROB_SPR_STATUS_ACK       [i] = new sc_signal<Tcontrol_t> * [x];
     315       out_INSERT_ROB_SPR_STATUS_DATA      [i] = new sc_signal<Tspecial_data_t> * [x];
    292316
    293317        for (uint32_t j=0; j<x; j++)
     
    299323              out_INSERT_ROB_GPR_STATUS_VAL       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
    300324               in_INSERT_ROB_GPR_STATUS_ACK       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
     325              out_INSERT_ROB_GPR_STATUS_DATA      [i][j] = new sc_signal<Tgeneral_data_t> (rename.c_str());
    301326              out_INSERT_ROB_SPR_STATUS_VAL       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
    302327               in_INSERT_ROB_SPR_STATUS_ACK       [i][j] = new sc_signal<Tcontrol_t> (rename.c_str());
     328              out_INSERT_ROB_SPR_STATUS_DATA      [i][j] = new sc_signal<Tspecial_data_t> (rename.c_str());
    303329          }
    304330      }
     
    368394  (*(_Register_unit_Glue-> in_CLOCK  ))       (*( in_CLOCK  ));
    369395  (*(_Register_unit_Glue-> in_NRESET ))       (*( in_NRESET ));
    370   (*(_Register_unit_Glue->out_CONST_0))       (*(out_CONST_0));
    371   (*(_Register_unit_Glue->out_CONST_1))       (*(out_CONST_1));
     396//   (*(_Register_unit_Glue->out_CONST_0))       (*(out_CONST_0));
     397//   (*(_Register_unit_Glue->out_CONST_1))       (*(out_CONST_1));
    372398
    373399   for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
     
    424450           (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_VAL        [i][j]))(*(out_GPR_WRITE_STATUS_VAL        [i][j]));
    425451           (*(_Register_unit_Glue-> in_GPR_WRITE_STATUS_ACK        [i][j]))(*( in_GPR_WRITE_STATUS_ACK        [i][j]));
     452           (*(_Register_unit_Glue->out_GPR_WRITE_STATUS_DATA       [i][j]))(*(out_GPR_WRITE_STATUS_DATA       [i][j]));
    426453         }
    427454     }
     
    440467           (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_VAL        [i][j]))(*(out_SPR_WRITE_STATUS_VAL        [i][j]));
    441468           (*(_Register_unit_Glue-> in_SPR_WRITE_STATUS_ACK        [i][j]))(*( in_SPR_WRITE_STATUS_ACK        [i][j]));
     469           (*(_Register_unit_Glue->out_SPR_WRITE_STATUS_DATA       [i][j]))(*(out_SPR_WRITE_STATUS_DATA       [i][j]));
    442470         }
    443471     }
     
    456484            (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_VAL [i][j]))  (*(out_INSERT_ROB_GPR_STATUS_VAL [i][j]));
    457485            (*(_Register_unit_Glue-> in_INSERT_ROB_GPR_STATUS_ACK [i][j]))  (*( in_INSERT_ROB_GPR_STATUS_ACK [i][j]));
     486            (*(_Register_unit_Glue->out_INSERT_ROB_GPR_STATUS_DATA[i][j]))  (*(out_INSERT_ROB_GPR_STATUS_DATA[i][j]));
    458487            (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_VAL [i][j]))  (*(out_INSERT_ROB_SPR_STATUS_VAL [i][j]));
    459488            (*(_Register_unit_Glue-> in_INSERT_ROB_SPR_STATUS_ACK [i][j]))  (*( in_INSERT_ROB_SPR_STATUS_ACK [i][j]));
     489            (*(_Register_unit_Glue->out_INSERT_ROB_SPR_STATUS_DATA[i][j]))  (*(out_INSERT_ROB_SPR_STATUS_DATA[i][j]));
    460490          }
    461491      }
     
    506536  srand(seed);
    507537
     538  SC_START(0);
     539  LABEL("Initialisation");
     540
     541  in_NRESET->write(0);
     542  SC_START(5);
     543  in_NRESET->write(1);
     544
     545#ifdef SELFTEST
    508546  Tcontext_t      context;
    509547  Tcontrol_t      gpr_read_ack              [_param->_nb_gpr_read];
     
    548586  Tcontrol_t      insert_rob_gpr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob];
    549587  Tcontrol_t      insert_rob_spr_status_val [_param->_nb_ooo_engine][max_nb_inst_insert_rob];
    550 
    551   SC_START(0);
    552   LABEL("Initialisation");
    553 
    554   in_NRESET->write(0);
    555   SC_START(5);
    556   in_NRESET->write(1);
    557588
    558589  LABEL("Loop of Test");
     
    791822
    792823      // Test
    793       TEST(Tcontrol_t, out_CONST_0->read() , 0);
    794       TEST(Tcontrol_t, out_CONST_1->read() , 1);
     824//       TEST(Tcontrol_t, out_CONST_0->read() , 0);
     825//       TEST(Tcontrol_t, out_CONST_1->read() , 1);
    795826     
    796827      if (test_read == true)
     
    832863                  TEST(Tcontrol_t, out_GPR_WRITE_REGISTERFILE_VAL  [i][j]->read(), gpr_write_registerfile_val [i][j]);
    833864                  TEST(Tcontrol_t, out_GPR_WRITE_STATUS_VAL        [i][j]->read(), gpr_write_status_val       [i][j]);
     865                  TEST(Tcontrol_t, out_GPR_WRITE_STATUS_DATA       [i][j]->read(), 1);
    834866                }
    835867            }
     
    842874                  TEST(Tcontrol_t, out_SPR_WRITE_REGISTERFILE_VAL  [i][j]->read(), spr_write_registerfile_val [i][j]);
    843875                  TEST(Tcontrol_t, out_SPR_WRITE_STATUS_VAL        [i][j]->read(), spr_write_status_val       [i][j]);
     876                  TEST(Tcontrol_t, out_SPR_WRITE_STATUS_DATA       [i][j]->read(), 1);
    844877                }
    845878            }
     
    874907                  TEST(Tcontrol_t, out_INSERT_ROB_ACK            [i][j]->read(), insert_rob_ack            [i][j]);
    875908                  TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_VAL [i][j]->read(), insert_rob_gpr_status_val [i][j]);
     909                  TEST(Tcontrol_t, out_INSERT_ROB_GPR_STATUS_DATA[i][j]->read(), 0);
    876910                  TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_VAL [i][j]->read(), insert_rob_spr_status_val [i][j]);
     911                  TEST(Tcontrol_t, out_INSERT_ROB_SPR_STATUS_DATA[i][j]->read(), 0);
    877912                }
    878913            }
     
    882917      SC_START(1);
    883918    }
    884 
     919#else
     920  SC_START(100);
     921#endif
    885922  /********************************************************
    886923   * Simulation - End
     
    922959  delete [] out_GPR_WRITE_STATUS_VAL        ;
    923960  delete []  in_GPR_WRITE_STATUS_ACK        ;
     961  delete [] out_GPR_WRITE_STATUS_DATA       ;
    924962  delete []  in_SPR_WRITE_VAL               ;
    925963  delete [] out_SPR_WRITE_ACK               ;
     
    929967  delete [] out_SPR_WRITE_STATUS_VAL        ;
    930968  delete []  in_SPR_WRITE_STATUS_ACK        ;
     969  delete [] out_SPR_WRITE_STATUS_DATA       ;
    931970  delete []  in_INSERT_ROB_VAL                  ;
    932971  delete [] out_INSERT_ROB_ACK                  ;
     
    935974  delete [] out_INSERT_ROB_GPR_STATUS_VAL       ;
    936975  delete []  in_INSERT_ROB_GPR_STATUS_ACK       ;
     976  delete [] out_INSERT_ROB_GPR_STATUS_DATA      ;
    937977  delete [] out_INSERT_ROB_SPR_STATUS_VAL       ;
    938978  delete []  in_INSERT_ROB_SPR_STATUS_ACK       ;
     979  delete [] out_INSERT_ROB_SPR_STATUS_DATA      ;
    939980//   delete []  in_RETIRE_ROB_VAL                      ;
    940981//   delete [] out_RETIRE_ROB_ACK                      ;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/include/Register_unit_Glue.h

    r128 r131  
    181181                                               
    182182#ifdef SYSTEMC                                 
     183  public  : void     constant                        (void);
    183184  public  : void     transition                      (void);
    184185  public  : void     genMealy_gpr_read               (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue.cpp

    r128 r131  
    7070    if (usage_is_set(_usage,USE_SYSTEMC))
    7171      {
    72     // Constant
    73 //     PORT_WRITE(out_CONST_0 ,0);
    74 //     PORT_WRITE(out_CONST_1 ,1);
    75         for (uint32_t i=0; i<_param->_nb_ooo_engine; ++i)
    76           {
    77             for (uint32_t j=0; j<_param->_nb_gpr_write; ++j)
    78               PORT_WRITE(out_GPR_WRITE_STATUS_DATA [i][j],1);
    79             for (uint32_t j=0; j<_param->_nb_spr_write; ++j)
    80               PORT_WRITE(out_SPR_WRITE_STATUS_DATA [i][j],1);
    81 
    82             for (uint32_t j=0; j<_param->_nb_inst_insert_rob[i]; ++j)
    83               {
    84                 PORT_WRITE(out_INSERT_ROB_GPR_STATUS_DATA [i][j],0);
    85                 PORT_WRITE(out_INSERT_ROB_SPR_STATUS_DATA [i][j],0);
    86               }
    87           }
     72#ifdef SYSTEMCASS_SPECIFIC
     73        constant();
     74#else
     75    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - constant");
     76
     77    SC_METHOD (constant);
     78//     dont_initialize ();
     79
     80#ifdef SYSTEMCASS_SPECIFIC
     81    // List dependency information
     82#endif   
     83#endif
    8884
    8985    log_printf(INFO,Register_unit_Glue,FUNCTION,"Method - transition");
     
    9187    SC_METHOD (transition);
    9288    dont_initialize ();
    93     sensitive_pos << *(in_CLOCK);
     89    sensitive << (*(in_CLOCK)).pos();
    9490
    9591#ifdef SYSTEMCASS_SPECIFIC
     
    10197    SC_METHOD (genMealy_gpr_read);
    10298    dont_initialize ();
    103 //     sensitive_neg << *(in_CLOCK);
     99//     sensitive << (*(in_CLOCK)).neg();
    104100    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    105101      {
     
    138134    SC_METHOD (genMealy_gpr_read_status);
    139135    dont_initialize ();
    140 //     sensitive_neg << *(in_CLOCK);
     136//     sensitive << (*(in_CLOCK)).neg();
    141137    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    142138      {
     
    167163    SC_METHOD (genMealy_gpr_read_registerfile);
    168164    dont_initialize ();
    169 //     sensitive_neg << *(in_CLOCK);
     165//     sensitive << (*(in_CLOCK)).neg();
    170166    for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    171167      {
     
    196192    SC_METHOD (genMealy_gpr_write);
    197193    dont_initialize ();
    198 //     sensitive_neg << *(in_CLOCK);
     194//     sensitive << (*(in_CLOCK)).neg();
    199195    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    200196      {
     
    226222    SC_METHOD (genMealy_gpr_write_status);
    227223    dont_initialize ();
    228 //     sensitive_neg << *(in_CLOCK);
     224//     sensitive << (*(in_CLOCK)).neg();
    229225    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    230226      {
     
    255251    SC_METHOD (genMealy_gpr_write_registerfile);
    256252    dont_initialize ();
    257 //     sensitive_neg << *(in_CLOCK);
     253//     sensitive << (*(in_CLOCK)).neg();
    258254    for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    259255      {
     
    284280    SC_METHOD (genMealy_spr_read);
    285281    dont_initialize ();
    286 //     sensitive_neg << *(in_CLOCK);
     282//     sensitive << (*(in_CLOCK)).neg();
    287283    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    288284      {
     
    321317    SC_METHOD (genMealy_spr_read_status);
    322318    dont_initialize ();
    323 //     sensitive_neg << *(in_CLOCK);
     319//     sensitive << (*(in_CLOCK)).neg();
    324320    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    325321      {
     
    350346    SC_METHOD (genMealy_spr_read_registerfile);
    351347    dont_initialize ();
    352 //     sensitive_neg << *(in_CLOCK);
     348//     sensitive << (*(in_CLOCK)).neg();
    353349    for (uint32_t j=0; j<_param->_nb_spr_read; j++)
    354350      {
     
    379375    SC_METHOD (genMealy_spr_write);
    380376    dont_initialize ();
    381 //     sensitive_neg << *(in_CLOCK);
     377//     sensitive << (*(in_CLOCK)).neg();
    382378    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    383379      {
     
    409405    SC_METHOD (genMealy_spr_write_status);
    410406    dont_initialize ();
    411 //     sensitive_neg << *(in_CLOCK);
     407//     sensitive << (*(in_CLOCK)).neg();
    412408    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    413409      {
     
    438434    SC_METHOD (genMealy_spr_write_registerfile);
    439435    dont_initialize ();
    440 //     sensitive_neg << *(in_CLOCK);
     436//     sensitive << (*(in_CLOCK)).neg();
    441437    for (uint32_t j=0; j<_param->_nb_spr_write; j++)
    442438      {
     
    467463    SC_METHOD (genMealy_insert);
    468464    dont_initialize ();
    469 //     sensitive_neg << *(in_CLOCK);
     465//     sensitive << (*(in_CLOCK)).neg();
    470466    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    471467      {
     
    503499//     SC_METHOD (genMealy_retire);
    504500//     dont_initialize ();
    505 // //     sensitive_neg << *(in_CLOCK);
     501// //     sensitive << (*(in_CLOCK)).neg();
    506502//     for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    507503//       {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/Register_unit_Glue/src/Register_unit_Glue_allocation.cpp

    r128 r131  
    177177    }
    178178
    179     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     179    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    180180    {
    181181      ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     
    192192      ALLOC2_INTERFACE_BEGIN("insert_rob_gpr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    193193     
    194       _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    195       _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     194      _ALLOC2_VALACK_OUT(out_INSERT_ROB_GPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     195      _ALLOC2_VALACK_IN ( in_INSERT_ROB_GPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    196196      _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_GPR_STATUS_DATA,"data",Tgeneral_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    197197
     
    202202      ALLOC2_INTERFACE_BEGIN("insert_rob_spr_status",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    203203     
    204       _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    205       _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                   ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     204      _ALLOC2_VALACK_OUT(out_INSERT_ROB_SPR_STATUS_VAL ,VAL                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     205      _ALLOC2_VALACK_IN ( in_INSERT_ROB_SPR_STATUS_ACK ,ACK                     ,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    206206      _ALLOC2_SIGNAL_OUT(out_INSERT_ROB_SPR_STATUS_DATA,"data",Tspecial_data_t,1,_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
    207207
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h

    r88 r131  
    1515#include <sys/time.h>
    1616
     17#define NB_ITERATION  128
     18#define CYCLE_MAX     (128*NB_ITERATION)
     19
     20#include "Common/include/Time.h"
     21#include "Common/include/Test.h"
    1722#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h"
    18 #include "Common/include/Time.h"
    1923
    2024using namespace std;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/main.cpp

    r88 r131  
    8585    _nb_inst_retire_rob  [i] = atoi(argv[x++]);
    8686 
     87  int _return = EXIT_SUCCESS;
    8788  try
    8889    {
     
    114115  catch (morpheo::ErrorMorpheo & error)
    115116    {
    116       cout << "<" << name << "> : " <<  error.what ();
    117       exit (EXIT_FAILURE);
    118     }
    119   catch (...)
    120     {
    121       cerr << "<" << name << "> : This test must generate a error" << endl;
    122       exit (EXIT_FAILURE);
     117      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
     118      _return = EXIT_FAILURE;
    123119    }
    124120
    125   return (EXIT_SUCCESS);
     121  try
     122    {
     123      if (_return == EXIT_SUCCESS)
     124        TEST_OK("OOO_Engine : no error");
     125      else
     126        TEST_KO("OOO_Engine : a lot of error");
     127    }
     128  catch (morpheo::ErrorMorpheo & error)
     129    {
     130//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
     131      _return = EXIT_FAILURE;
     132    }
     133
     134  return (_return);
    126135}
    127136
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/src/test.cpp

    r128 r131  
    77 */
    88
    9 #define NB_ITERATION  1
    10 #define CYCLE_MAX     (10240*NB_ITERATION)
    11 
    129#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/SelfTest/include/test.h"
    13 #include "Common/include/Test.h"
    1410
    1511void test (string name,
     
    2218#endif
    2319
    24   _model.set_model(NAME_Register_unit            ,MODEL_SYSTEMC, true);
    25   _model.set_model(NAME_RegisterFile             ,MODEL_SYSTEMC, true);
    26   _model.set_model(NAME_RegisterFile_Monolithic  ,MODEL_SYSTEMC, true);
    27   _model.set_model(NAME_RegisterFile_Multi_Banked,MODEL_SYSTEMC, true);
    28   _model.set_model(NAME_Register_unit_Glue       ,MODEL_SYSTEMC, true);
     20  _model.set_model(MODEL_SYSTEMC,true);
    2921
    3022  Tusage_t _usage = USE_ALL;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/include/Register_unit.h

    r88 r131  
    119119  protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr       ;
    120120  protected : morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile ** component_spr_status;
     121
     122//   protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_gpr       ;
     123//   protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   ** component_gpr_status;
     124//   protected : morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked ** component_spr       ;
     125//   protected : morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   ** component_spr_status;
     126
    121127  protected : morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue      * component_glue      ;
    122128
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit.cpp

    r123 r131  
    7777    SC_METHOD (transition);
    7878    dont_initialize ();
    79     sensitive_pos << *(in_CLOCK);
     79    sensitive << (*(in_CLOCK)).pos();
    8080//#endif
    8181
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Register_unit/src/Register_unit_allocation.cpp

    r128 r131  
    106106    }
    107107
    108     // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     108    // ~~~~~[ Interface "insert_rob" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    109109    {
    110110      ALLOC2_INTERFACE_BEGIN("insert_rob",IN,WEST,_("Interface to update status (insert)"),_param->_nb_ooo_engine,_param->_nb_inst_insert_rob [it1]);
     
    179179    component_spr        = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
    180180    component_spr_status = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile * [_param->_nb_ooo_engine];
     181
     182//     component_gpr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
     183//     component_gpr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
     184//     component_spr        = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked * [_param->_nb_ooo_engine];
     185//     component_spr_status = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic   * [_param->_nb_ooo_engine];
    181186     
    182187    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    185190        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
    186191
    187         component_gpr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     192        component_gpr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     193//      component_gpr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
    188194          (name.c_str()
    189195#ifdef STATISTICS
    190196           ,param_statistics
    191197#endif
    192            ,_param->_param_gpr [i]
     198           ,_param->_param_gpr [i]//->_param_registerfile_multi_banked
    193199           ,_usage
    194200           );
     
    207213        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
    208214
    209         component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     215        component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     216//      component_gpr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic  ::RegisterFile_Monolithic  ::RegisterFile_Monolithic
    210217          (name.c_str()
    211218#ifdef STATISTICS
    212219           ,param_statistics
    213220#endif
    214            ,_param->_param_gpr_status [i]
     221           ,_param->_param_gpr_status [i]//->_param_registerfile_monolithic
    215222           ,_usage
    216223           );
     
    229236        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
    230237         
    231         component_spr        [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     238        component_spr [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     239//      component_spr [i] = new morpheo::behavioural::generic::registerfile::registerfile_multi_banked::RegisterFile_Multi_Banked::RegisterFile_Multi_Banked
    232240          (name.c_str()
    233241#ifdef STATISTICS
    234242           ,param_statistics
    235243#endif
    236            ,_param->_param_spr [i]
     244           ,_param->_param_spr [i]//->_param_registerfile_multi_banked
    237245           ,_usage
    238246           );
     
    250258        log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
    251259
    252         component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     260        component_spr_status [i] = new morpheo::behavioural::generic::registerfile::RegisterFile::RegisterFile
     261//      component_spr_status [i] = new morpheo::behavioural::generic::registerfile::registerfile_monolithic::RegisterFile_Monolithic::RegisterFile_Monolithic
    253262          (name.c_str()
    254263#ifdef STATISTICS
    255264           ,param_statistics
    256265#endif
    257            ,_param->_param_spr_status [i]
     266           ,_param->_param_spr_status [i]//->_param_registerfile_monolithic
    258267           ,_usage
    259268           );
     
    269278      }
    270279
    271 
    272     name = _name+"_glue";
    273     log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
    274      
    275     component_glue      = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
    276       (name.c_str()
     280    {
     281      name = _name+"_glue";
     282      log_printf(INFO,Register_unit,FUNCTION,_("Create   : %s"),name.c_str());
     283      
     284      component_glue = new morpheo::behavioural::core::multi_execute_loop::execute_loop::register_unit::register_unit_glue::Register_unit_Glue::Register_unit_Glue     
     285        (name.c_str()
    277286#ifdef STATISTICS
    278        ,param_statistics
    279 #endif
    280        ,_param->_param_glue
    281        ,_usage
    282        );
    283 
    284     _component->set_component (component_glue->_component
    285 #ifdef POSITION
    286                                , 50
    287                                , 50
    288                                , 10
    289                                , 10
    290 #endif
    291                                );
     287         ,param_statistics
     288#endif
     289         ,_param->_param_glue
     290         ,_usage
     291         );
     292     
     293      _component->set_component (component_glue->_component
     294#ifdef POSITION
     295                                 , 50
     296                                 , 50
     297                                 , 10
     298                                 , 10
     299#endif
     300                                 );
     301    }
    292302     
    293303    // ~~~~~[ Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
    294304    std::string src,dest;
    295    
     305
     306    // -------------------------------------------------------------------   
     307    // -----[ gpr ]-------------------------------------------------------   
     308    // -------------------------------------------------------------------   
    296309    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    297310      {
     
    300313        log_printf(INFO,Register_unit,FUNCTION,_("Instance : %s"),src.c_str());
    301314       
     315        // -----[ instance "" ]-----------------------------------------------   
    302316        {
    303317          dest = _name;
     
    310324        }
    311325
     326        // -----[ instance "read" ]-------------------------------------------   
    312327        for (uint32_t j=0; j<_param->_nb_gpr_read; j++)
    313328          {
     
    332347          }
    333348
     349        // -----[ instance "write" ]------------------------------------------   
    334350        for (uint32_t j=0; j<_param->_nb_gpr_write; j++)
    335351          {
     
    353369                                     dest, "in_GPR_WRITE_"+toString(j)+"_DATA");
    354370          }
    355 
    356371      }// gpr
    357372   
     373    // -------------------------------------------------------------------   
     374    // -----[ gpr_status ]------------------------------------------------
     375    // -------------------------------------------------------------------   
    358376    {
    359377      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    401419             
    402420#ifdef POSITION
    403               _component->interface_map (src ,    "write_"+toString(j),
     421              _component->interface_map (src ,    "write_"+toString(x),
    404422                                         dest,"gpr_write_status_"+toString(i)+"_"+toString(j));
    405423#endif
     
    445463              x++;
    446464            }
    447 
    448465        }
    449466    }// gpr_status
    450467
     468    // -------------------------------------------------------------------   
     469    // -----[ spr ]-------------------------------------------------------
     470    // -------------------------------------------------------------------   
    451471    for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    452472      {
     
    508528                                     dest, "in_SPR_WRITE_"+toString(j)+"_DATA");
    509529          }
    510 
    511530      }// spr
    512531   
     532    // -------------------------------------------------------------------   
     533    // -----[ spr_status ]------------------------------------------------
     534    // -------------------------------------------------------------------   
    513535    {
    514536      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
     
    556578             
    557579#ifdef POSITION
    558               _component->interface_map (src ,    "write_"+toString(j),
     580              _component->interface_map (src ,    "write_"+toString(x),
    559581                                         dest,"spr_write_status_"+toString(i)+"_"+toString(j));
    560582#endif
     
    581603             
    582604#ifdef POSITION
    583               _component->interface_map (src ,    "write_"+toString(j),
     605              _component->interface_map (src ,    "write_"+toString(x),
    584606                                         dest,"insert_rob_spr_status_"+toString(i)+"_"+toString(j));
    585607#endif
     
    592614                                       dest,"out_INSERT_ROB_SPR_STATUS_"+toString(i)+"_"+toString(j)+"_DATA");
    593615//                                     dest,"out_CONST_0");
    594              
     616
    595617              dest = _name;
    596618             
     
    600622              x++;
    601623            }
    602 
    603 
    604624        }
    605625    }// spr_status
    606626
     627    // -------------------------------------------------------------------   
     628    // -----[ glue ]------------------------------------------------------
     629    // -------------------------------------------------------------------   
    607630    {
    608631      src = _name+"_glue";
     
    730753      for (uint32_t i=0; i<_param->_nb_ooo_engine; i++)
    731754        {
    732           uint32_t x     =_param->_nb_inst_insert_rob [i];
     755          uint32_t x = _param->_nb_inst_insert_rob [i];
    733756
    734757          for (uint32_t j=0; j<x; j++)
     
    758781            }
    759782        }
    760      
    761783    }// glue
    762784
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h

    r88 r131  
    1515#include <sys/time.h>
    1616
     17#define NB_ITERATION  128
     18#define CYCLE_MAX     (128*NB_ITERATION)
     19
    1720#include "Common/include/Time.h"
    18 #include "Behavioural/include/Selftest.h"
     21#include "Common/include/Test.h"
    1922#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/include/Execute_loop.h"
    2023
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/main.cpp

    r128 r131  
    315315    num_thread_valid [i] = true;
    316316
     317  int _return = EXIT_SUCCESS;
    317318  try
    318319    {
     
    383384  catch (morpheo::ErrorMorpheo & error)
    384385    {
    385       msg (_("%s\n"),error.what ());
    386       exit (EXIT_FAILURE);
    387     }
    388   catch (...)
    389     {
    390       err (_("This test must generate a error.\n"));
    391       exit (EXIT_FAILURE);
     386      msg (_("<%s> :\n%s"),name.c_str(), error.what ());
     387      _return = EXIT_FAILURE;
     388    }
     389
     390  try
     391    {
     392      if (_return == EXIT_SUCCESS)
     393        TEST_OK("OOO_Engine : no error");
     394      else
     395        TEST_KO("OOO_Engine : a lot of error");
     396    }
     397  catch (morpheo::ErrorMorpheo & error)
     398    {
     399//       msg (_("<%s> :\n%s"),name.c_str(), error.what ());
     400      _return = EXIT_FAILURE;
    392401    }
    393402
     
    450459  DELETE1(num_thread_valid              , nb_thread);
    451460
    452   return (EXIT_SUCCESS);
     461  return (_return);
    453462}
    454463
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/src/test.cpp

    r128 r131  
    77 */
    88
    9 #define NB_ITERATION  128
    10 #define CYCLE_MAX     (128*NB_ITERATION)
    11 
    129#include "Behavioural/Core/Multi_Execute_loop/Execute_loop/SelfTest/include/test.h"
    13 #include "Common/include/Test.h"
    1410#include "Behavioural/include/Allocation.h"
    1511
     
    2319  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,CYCLE_MAX);
    2420#endif
     21
     22  _model.set_model(MODEL_SYSTEMC,true);
    2523
    2624  Tusage_t _usage = USE_ALL;
     
    6058  sc_signal<Ttype_t           >  **  in_EXECUTE_LOOP_IN_TYPE                 ;
    6159  sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE;
     60  sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ;
     61  sc_signal<Tcontrol_t        >  **  in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ;
    6262  sc_signal<Tlsq_ptr_t        >  **  in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ;
    6363  sc_signal<Tcontrol_t        >  **  in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ;
     
    125125  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ," in_EXECUTE_LOOP_IN_TYPE                 ",Ttype_t           ,_param->_nb_read_unit);
    126126  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE",Tlsq_ptr_t        ,_param->_nb_read_unit);
     127  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ," in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ",Tlsq_ptr_t        ,_param->_nb_read_unit);
     128  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ," in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ",Tcontrol_t        ,_param->_nb_read_unit);
    127129  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ," in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ",Tlsq_ptr_t        ,_param->_nb_read_unit);
    128130  ALLOC1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ," in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ",Tcontrol_t        ,_param->_nb_read_unit);
     
    203205  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit);
    204206  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit);
     207  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit);
     208  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ,_param->_nb_read_unit);
    205209  if (_param->_have_port_load_queue_ptr)
    206210  INSTANCE1_SC_SIGNAL(_Execute_loop, in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit);
     
    319323  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_TYPE                 ,_param->_nb_read_unit);
    320324  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_WRITE,_param->_nb_read_unit);
     325  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_PTR_READ ,_param->_nb_read_unit);
     326  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_STORE_QUEUE_EMPTY    ,_param->_nb_read_unit);
    321327  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_LOAD_QUEUE_PTR_WRITE ,_param->_nb_read_unit);
    322328  DELETE1_SC_SIGNAL( in_EXECUTE_LOOP_IN_HAS_IMMEDIAT         ,_param->_nb_read_unit);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/include/Context_State.h

    r123 r131  
    209209                                               
    210210#ifdef SYSTEMC                                 
     211  public  : void        constant                  (void);
    211212  public  : void        transition                (void);
    212213  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Context_State/src/Context_State.cpp

    r123 r131  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
    77         // Constant
    78         for (uint32_t i=0; i<_param->_nb_context; i++)
    79           {
    80             internal_BRANCH_EVENT_ACK [i] = 1;
    81             PORT_WRITE(out_BRANCH_EVENT_ACK [i], internal_BRANCH_EVENT_ACK [i]);
    82           }
     77#ifdef SYSTEMCASS_SPECIFIC
     78        constant();
     79#else
     80        log_printf(INFO,Context_State,FUNCTION,_("Method - constant"));
    8381
    84 //      for (uint32_t i=0; i<_param->_nb_decod_unit; i++)
    85 //        {
    86 //          internal_DECOD_EVENT_ACK [i] = 1;
    87 //          PORT_WRITE(out_DECOD_EVENT_ACK [i], internal_DECOD_EVENT_ACK [i]);
    88 //        }
    89 
    90         internal_COMMIT_EVENT_ACK = 1;
    91         PORT_WRITE(out_COMMIT_EVENT_ACK, internal_COMMIT_EVENT_ACK);
    92 
    93         for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
    94           {
    95             internal_BRANCH_COMPLETE_ACK [i] = 1;
    96             PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
    97           }
     82        SC_METHOD (constant);
     83//      dont_initialize ();
     84       
     85# ifdef SYSTEMCASS_SPECIFIC
     86        // List dependency information
     87# endif   
     88#endif
    9889
    9990        log_printf(INFO,Context_State,FUNCTION,_("Method - transition"));
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/include/Front_end_Glue.h

    r119 r131  
    180180                                               
    181181#ifdef SYSTEMC                                 
     182  public  : void        constant                  (void);
    182183  public  : void        transition                (void);
    183184//public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Front_end_Glue/src/Front_end_Glue.cpp

    r123 r131  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
    77         // Constant
    78         if (_param->_have_port_context_id)
    79           for (uint32_t i=0; i<_param->_nb_decod_unit; ++i)
    80             for (uint32_t j=0; j<_param->_decod_unit_nb_context[i]; ++j)
    81               PORT_WRITE(out_IFETCH_DECOD_UNIT_CONTEXT_ID [i][j],j);
    82        
     77#ifdef SYSTEMCASS_SPECIFIC
     78        constant();
     79#else
     80        log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
     81
     82        SC_METHOD (constant);
     83//      dont_initialize ();
     84       
     85# ifdef SYSTEMCASS_SPECIFIC
     86        // List dependency information
     87# endif   
     88#endif
     89
    8390        log_printf(INFO,Front_end_Glue,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
    8491
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/SelfTest/src/test.cpp

    r113 r131  
    2323  morpheo::behavioural::Parameters_Statistics * _parameters_statistics = new morpheo::behavioural::Parameters_Statistics (5,50);
    2424#endif
     25
     26  _model.set_model(MODEL_SYSTEMC, true);
    2527
    2628  Tusage_t _usage = USE_ALL;
     
    180182  TEST(Tcontrol_t, out_EVENT_ACK->read()  , true ); // can receveive an event
    181183
     184#ifdef SELFTEST
    182185  uint32_t        jump      = 7 ;// packet
    183186  uint32_t        nb_packet = 1;
     
    412415
    413416      SC_START(1);
    414      
    415417    }
     418#else
     419  SC_START(100);
     420#endif // SELFTEST
    416421
    417422  /********************************************************
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/include/Address_management.h

    r101 r131  
    167167                                               
    168168#ifdef SYSTEMC                                 
     169  public  : void        constant                  (void);
    169170  public  : void        transition                (void);
    170171  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Address_management/src/Address_management.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         // Affect output constant
    77         internal_EVENT_ACK = 1;
    78         PORT_WRITE(out_EVENT_ACK, internal_EVENT_ACK);
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Address_management,FUNCTION,"Method - constant");
     80
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83       
     84# ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86# endif   
     87#endif
    7988
    8089        log_printf(INFO,Address_management,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/SelfTest/src/test.cpp

    r113 r131  
    107107  ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_STATE                 ,"out_DECOD_BRANCH_STATE                 ",Tbranch_state_t      );
    108108  ALLOC0_SC_SIGNAL(out_DECOD_BRANCH_UPDATE_PREDICTION_ID  ,"out_DECOD_BRANCH_UPDATE_PREDICTION_ID  ",Tprediction_ptr_t    );
    109   ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION                    ,"out_DECOD_EXCEPTION                    ",Tprediction_ptr_t    );
     109  ALLOC0_SC_SIGNAL(out_DECOD_EXCEPTION                    ,"out_DECOD_EXCEPTION                    ",Texception_t         );
    110110  ALLOC0_SC_SIGNAL( in_ICACHE_RSP_VAL                     ," in_ICACHE_RSP_VAL                     ",Tcontrol_t           );
    111111  ALLOC0_SC_SIGNAL(out_ICACHE_RSP_ACK                     ,"out_ICACHE_RSP_ACK                     ",Tcontrol_t           );
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/include/Ifetch_queue.h

    r82 r131  
    145145                                               
    146146#ifdef SYSTEMC                                 
     147  public  : void        constant                  (void);
    147148  public  : void        transition                (void);
    148149  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_queue/src/Ifetch_queue.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         // constant output
    77         internal_ICACHE_RSP_ACK  = 1;
    78         internal_EVENT_RESET_ACK = 1;
     76        log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - constant"),_name.c_str());
    7977
    80         PORT_WRITE(out_ICACHE_RSP_ACK , internal_ICACHE_RSP_ACK );
    81         PORT_WRITE(out_EVENT_RESET_ACK, internal_EVENT_RESET_ACK);
     78        SC_METHOD (constant);
     79//      dont_initialize ();
     80       
     81# ifdef SYSTEMCASS_SPECIFIC
     82        // List dependency information
     83# endif   
    8284
    8385        log_printf(INFO,Ifetch_queue,FUNCTION,_("<%s> Method - transition"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/include/Ifetch_unit_Glue.h

    r85 r131  
    123123                                               
    124124#ifdef SYSTEMC                                 
     125  public  : void        constant                  (void);
    125126# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    126127  public  : void        transition                (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/Ifetch_unit_Glue/src/Ifetch_unit_Glue.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         // Write constant
    77         PORT_WRITE(out_ICACHE_REQ_TYPE,ICACHE_TYPE_LOAD);
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Ifetch_unit_Glue,FUNCTION,"Method - constant");
     80
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83
     84#  ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86#  endif   
     87#endif
    7888
    7989# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Ifetch_unit/src/Ifetch_unit_allocation.cpp

    r112 r131  
    156156    {
    157157      name = _name+"_address_management";
    158       log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
    159      
     158      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
     159   
    160160      _component_address_management = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::address_management::Address_management
    161161        (name.c_str()
     
    165165         ,_param->_param_address_management
    166166         ,_usage);
    167      
     167
    168168      _component->set_component (_component_address_management->_component
    169169#ifdef POSITION
     
    175175    {
    176176      name = _name+"_ifetch_queue";
    177       log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
    178      
     177      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
     178
    179179      _component_ifetch_queue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_queue::Ifetch_queue
    180180        (name.c_str()
     
    184184         ,_param->_param_ifetch_queue
    185185         ,_usage);
    186      
     186
    187187      _component->set_component (_component_ifetch_queue->_component
    188188#ifdef POSITION
     
    194194    {
    195195      name = _name+"_ifetch_unit_glue";
    196       log_printf(Ifetch_unit,Core,FUNCTION,_("Create   : %s"),name.c_str());
    197      
     196      log_printf(INFO,Ifetch_unit,FUNCTION,_("Create   : %s"),name.c_str());
     197
    198198      _component_ifetch_unit_glue = new morpheo::behavioural::core::multi_front_end::front_end::ifetch_unit::ifetch_unit_glue::Ifetch_unit_Glue
    199199        (name.c_str()
     
    203203         ,_param->_param_ifetch_unit_glue
    204204         ,_usage);
    205      
     205
    206206      _component->set_component (_component_ifetch_unit_glue->_component
    207207#ifdef POSITION
     
    219219    {
    220220      src = _name+"_address_management";
    221       log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
     221      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
    222222           
    223223      {
     
    337337    {
    338338      src = _name+"_ifetch_queue";
    339       log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
     339      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
    340340           
    341341      {
     
    459459    {
    460460      src = _name+"_ifetch_unit_glue";
    461       log_printf(INFO,Core,FUNCTION,_("Instance : %s"),src.c_str());
     461      log_printf(INFO,Ifetch_unit,FUNCTION,_("Instance : %s"),src.c_str());
    462462           
    463463      {
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/include/Branch_Target_Buffer_Register.h

    r113 r131  
    150150                                               
    151151#ifdef SYSTEMC                                 
     152  public  : void        constant                  (void);
    152153  public  : void        transition                (void);
    153154  public  : void        genMealy_predict          (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Branch_Target_Buffer/Branch_Target_Buffer_Register/src/Branch_Target_Buffer_Register.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         // Constant
    77         for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    78           {
    79             PORT_WRITE(out_PREDICT_ACK [i],1);
    80           }
    81         for (uint32_t i=0; i<_param->_nb_inst_decod; i++)
    82           {
    83             internal_DECOD_ACK [i] = 1;
    84             PORT_WRITE(out_DECOD_ACK [i], internal_DECOD_ACK [i]);
    85           }
    86         for (uint32_t i=0; i<_param->_nb_inst_update; i++)
    87           {
    88             internal_UPDATE_ACK [i] = 1;
    89             PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
    90           }
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - constant");
     80
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83       
     84# ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86# endif   
     87#endif
    9188
    9289        log_printf(INFO,Branch_Target_Buffer_Register,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/include/Direction_Glue.h

    r112 r131  
    130130                                               
    131131#ifdef SYSTEMC                                 
     132  public  : void        constant                  (void);
    132133# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
    133134  public  : void        transition                (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Direction_Glue/src/Direction_Glue.cpp

    r123 r131  
    8484            // no need update
    8585            need_genmealy_update = false;
    86             for (uint32_t i=0; i<_param->_nb_inst_update; i++)
    87               PORT_WRITE(out_UPDATE_ACK [i], 1);
    8886
    8987            // always ack
    9088            for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    9189              {
    92                 PORT_WRITE(out_PREDICT_ACK [i], 1);
    93                
    9490                // constant direction : never / always
    9591                switch (_param->_predictor_scheme)
     
    9894                    {
    9995                      need_genmealy_predict = false;
    100                       PORT_WRITE(out_PREDICT_DIRECTION [i], 0);
    10196                      break;
    10297                    }
     
    10499                    {
    105100                      need_genmealy_predict = false;
    106                       PORT_WRITE(out_PREDICT_DIRECTION [i], 1);
    107101                      break;
    108102                    }
     
    111105              }
    112106          }
     107
     108#ifdef SYSTEMCASS_SPECIFIC
     109        constant();
     110#else
     111        log_printf(INFO,Direction_Glue,FUNCTION,"Method - constant");
     112       
     113        SC_METHOD (constant);
     114//      dont_initialize ();
     115       
     116#  ifdef SYSTEMCASS_SPECIFIC
     117        // List dependency information
     118#  endif   
     119#endif
    113120
    114121# if defined(STATISTICS) or defined(VHDL_TESTBENCH)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/include/Two_Level_Branch_Predictor.h

    r115 r131  
    129129                                               
    130130#ifdef SYSTEMC                                 
     131  public  : void        constant                  (void);
    131132  public  : void        transition                (void);
    132133  public  : void        genMealy_predict          (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Direction/Meta_Predictor/Two_Level_Branch_Predictor/src/Two_Level_Branch_Predictor.cpp

    r111 r131  
    7272    if (usage_is_set(_usage,USE_SYSTEMC))
    7373      {
    74         // Constants :
    75         for (uint32_t i=0; i<_param->_nb_inst_predict; ++i)
    76           {
    77             internal_PREDICT_ACK [i] = 1;
    78             PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
    79           }
    80         for (uint32_t i=0; i<_param->_nb_inst_update; ++i)
    81           {
    82             internal_UPDATE_ACK [i] = 1;
    83             PORT_WRITE(out_UPDATE_ACK [i], internal_UPDATE_ACK [i]);
    84           }
    85        
     74#ifdef SYSTEMCASS_SPECIFIC
     75        constant();
     76#else
     77        log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
     78
     79        SC_METHOD (constant);
     80//      dont_initialize ();
     81       
     82# ifdef SYSTEMCASS_SPECIFIC
     83        // List dependency information
     84# endif   
     85#endif
    8686
    8787        log_printf(INFO,Two_Level_Branch_Predictor,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/include/Return_Address_Stack.h

    r100 r131  
    143143                                               
    144144#ifdef SYSTEMC                                 
     145  public  : void        constant                  (void);
    145146  public  : void        transition                (void);
    146147  public  : void        genMealy_predict          (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Return_Address_Stack/src/Return_Address_Stack.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         for (uint32_t i=0; i<_param->_nb_inst_predict; i++)
    77           {
    78             internal_PREDICT_ACK [i] = 1;
    79             PORT_WRITE(out_PREDICT_ACK [i], internal_PREDICT_ACK [i]);
    80           }
    81         for (uint32_t i=0; i<_param->_nb_inst_decod  ; i++)
    82           {
    83             internal_DECOD_ACK   [i] = 1;
    84             PORT_WRITE(out_DECOD_ACK   [i], internal_DECOD_ACK   [i]);
    85           }
    86         for (uint32_t i=0; i<_param->_nb_inst_update ; i++)
    87           {
    88             internal_UPDATE_ACK  [i] = 1;
    89             PORT_WRITE(out_UPDATE_ACK  [i], internal_UPDATE_ACK  [i]);
    90           }
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - constant");
    9180
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83       
     84# ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86# endif   
     87#endif
    9288        log_printf(INFO,Return_Address_Stack,FUNCTION,"Method - transition");
    9389
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/include/Update_Prediction_Table.h

    r122 r131  
    254254                                               
    255255#ifdef SYSTEMC                                 
     256  public  : void        constant                  (void);
    256257  public  : void        transition                (void);
    257258  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Update_Prediction_Table/src/Update_Prediction_Table.cpp

    r124 r131  
    7676    if (usage_is_set(_usage,USE_SYSTEMC))
    7777      {
    78         // Constant
    79         for (uint32_t i=0; i<_param->_nb_inst_branch_complete; i++)
    80           {
    81             internal_BRANCH_COMPLETE_ACK [i] = 1;
    82             PORT_WRITE(out_BRANCH_COMPLETE_ACK [i], internal_BRANCH_COMPLETE_ACK [i]);
    83           }
    84         for (uint32_t i=0; i<_param->_nb_context; ++i)
    85           {
    86             internal_EVENT_ACK [i] = 1;
    87             PORT_WRITE(out_EVENT_ACK [i], internal_EVENT_ACK [i]);
    88           }
    89 
     78#ifdef SYSTEMCASS_SPECIFIC
     79        constant();
     80#else
     81        log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - constant");
     82
     83        SC_METHOD (constant);
     84//      dont_initialize ();
     85       
     86# ifdef SYSTEMCASS_SPECIFIC
     87        // List dependency information
     88# endif   
     89#endif
    9090        log_printf(INFO,Update_Prediction_Table,FUNCTION,"Method - transition");
    9191
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/SelfTest/src/test.cpp

    r128 r131  
    6767  sc_signal<Toperation_t         >  ** out_DECOD_OPERATION                ;
    6868  sc_signal<Tcontrol_t           >  ** out_DECOD_NO_EXECUTE               ;
     69  sc_signal<Tcontrol_t           >  ** out_DECOD_LAST_EVENT               ;
    6970  sc_signal<Tcontrol_t           >  ** out_DECOD_IS_DELAY_SLOT            ;
    7071  sc_signal<Tgeneral_data_t      >  ** out_DECOD_ADDRESS                  ;
     
    144145  ALLOC1_SC_SIGNAL(out_DECOD_OPERATION                ,"out_DECOD_OPERATION                ",Toperation_t         ,_param->_sum_inst_decod);
    145146  ALLOC1_SC_SIGNAL(out_DECOD_NO_EXECUTE               ,"out_DECOD_NO_EXECUTE               ",Tcontrol_t           ,_param->_sum_inst_decod);
     147  ALLOC1_SC_SIGNAL(out_DECOD_LAST_EVENT               ,"out_DECOD_LAST_EVENT               ",Tcontrol_t           ,_param->_sum_inst_decod);
    146148  ALLOC1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT            ,"out_DECOD_IS_DELAY_SLOT            ",Tcontrol_t           ,_param->_sum_inst_decod);
    147149  ALLOC1_SC_SIGNAL(out_DECOD_ADDRESS                  ,"out_DECOD_ADDRESS                  ",Tgeneral_data_t      ,_param->_sum_inst_decod);
     
    234236  INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_OPERATION                ,_param->_sum_inst_decod);
    235237  INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_NO_EXECUTE               ,_param->_sum_inst_decod);
     238  INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_LAST_EVENT               ,_param->_sum_inst_decod);
    236239  INSTANCE1_SC_SIGNAL(_Front_end,out_DECOD_IS_DELAY_SLOT            ,_param->_sum_inst_decod);
    237240#ifdef DEBUG
     
    319322  LABEL("Initialisation");
    320323
    321   for (uint32_t i=0; i<_param->_nb_context; ++i)
    322     {
    323       in_ICACHE_REQ_ACK     [i]->write(0);
    324       in_ICACHE_RSP_VAL     [i]->write(0);
    325       in_EVENT_ACK          [i]->write(0);
    326       in_SPR_EVENT_ACK      [i]->write(0);
    327       in_NB_INST_COMMIT_ALL [i]->write(0); // no inst
    328       in_NB_INST_COMMIT_MEM [i]->write(0); // no inst
    329       in_SPR_SR_IEE         [i]->write(0); // interrupt disable
    330       in_SPR_SR_EPH         [i]->write(0); // exception msb = 0
    331       in_INTERRUPT_ENABLE   [i]->write(0); // no interrupt
    332     }
    333   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
    334     in_DECOD_ACK [i]->write(0);
    335   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
    336     in_BRANCH_COMPLETE_VAL [i]->write(0);
    337   in_COMMIT_EVENT_VAL->write(0);
    338 
    339 
    340   for (uint32_t i=0; i<_param->_nb_context; ++i)
    341     {
    342       TEST(Tcontrol_t,out_ICACHE_REQ_VAL      [i]->read(),0);
    343       TEST(Tcontrol_t,out_ICACHE_RSP_ACK      [i]->read(),1); // Can accept a respons
    344       TEST(Tcontrol_t,out_EVENT_VAL           [i]->read(),0);
    345       TEST(Tcontrol_t,out_SPR_EVENT_VAL       [i]->read(),0);
    346       TEST(Tdepth_t  ,out_DEPTH_MIN           [i]->read(),0); // no branch speculated
    347       TEST(Tdepth_t  ,out_DEPTH_MAX           [i]->read(),0); // no branch speculated
    348       TEST(Tdepth_t  ,out_DEPTH_FULL          [i]->read(),0); // no branch speculated
    349     }
    350   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
    351   TEST(Tcontrol_t,out_DECOD_VAL           [i]->read(),0);
    352   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
    353   TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive)
    354   TEST(Tcontrol_t,out_COMMIT_EVENT_ACK       ->read(),1); // can accept
     324//   for (uint32_t i=0; i<_param->_nb_context; ++i)
     325//     {
     326//       in_ICACHE_REQ_ACK     [i]->write(0);
     327//       in_ICACHE_RSP_VAL     [i]->write(0);
     328//       in_EVENT_ACK          [i]->write(0);
     329//       in_SPR_EVENT_ACK      [i]->write(0);
     330//       in_NB_INST_COMMIT_ALL [i]->write(0); // no inst
     331//       in_NB_INST_COMMIT_MEM [i]->write(0); // no inst
     332//       in_SPR_SR_IEE         [i]->write(0); // interrupt disable
     333//       in_SPR_SR_EPH         [i]->write(0); // exception msb = 0
     334//       in_INTERRUPT_ENABLE   [i]->write(0); // no interrupt
     335//     }
     336//   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
     337//     in_DECOD_ACK [i]->write(0);
     338//   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
     339//     in_BRANCH_COMPLETE_VAL [i]->write(0);
     340//   in_COMMIT_EVENT_VAL->write(0);
     341
     342
     343//   for (uint32_t i=0; i<_param->_nb_context; ++i)
     344//     {
     345//       TEST(Tcontrol_t,out_ICACHE_REQ_VAL      [i]->read(),0);
     346//       TEST(Tcontrol_t,out_ICACHE_RSP_ACK      [i]->read(),1); // Can accept a respons
     347//       TEST(Tcontrol_t,out_EVENT_VAL           [i]->read(),0);
     348//       TEST(Tcontrol_t,out_SPR_EVENT_VAL       [i]->read(),0);
     349//       TEST(Tdepth_t  ,out_DEPTH_MIN           [i]->read(),0); // no branch speculated
     350//       TEST(Tdepth_t  ,out_DEPTH_MAX           [i]->read(),0); // no branch speculated
     351//       TEST(Tdepth_t  ,out_DEPTH_FULL          [i]->read(),0); // no branch speculated
     352//     }
     353//   for (uint32_t i=0; i<_param->_sum_inst_decod; ++i)
     354//   TEST(Tcontrol_t,out_DECOD_VAL           [i]->read(),0);
     355//   for (uint32_t i=0; i<_param->_nb_inst_branch_complete; ++i)
     356//   TEST(Tcontrol_t,out_BRANCH_COMPLETE_ACK [i]->read(),0); // can't accept (interactive)
     357//   TEST(Tcontrol_t,out_COMMIT_EVENT_ACK       ->read(),1); // can accept
    355358
    356359  LABEL("Reset");
     
    361364  LABEL("Loop of Test");
    362365
    363   for (uint32_t iteration=0; iteration<NB_ITERATION; iteration ++)
     366  for (uint32_t iteration=0; iteration< NB_ITERATION; iteration ++)
    364367    {
    365368      LABEL("Iteration %d",iteration);
     
    399402  DELETE1_SC_SIGNAL(out_DECOD_OPERATION                ,_param->_sum_inst_decod);
    400403  DELETE1_SC_SIGNAL(out_DECOD_NO_EXECUTE               ,_param->_sum_inst_decod);
     404  DELETE1_SC_SIGNAL(out_DECOD_LAST_EVENT               ,_param->_sum_inst_decod);
    401405  DELETE1_SC_SIGNAL(out_DECOD_IS_DELAY_SLOT            ,_param->_sum_inst_decod);
    402406  DELETE1_SC_SIGNAL(out_DECOD_ADDRESS                  ,_param->_sum_inst_decod);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/include/Commit_unit.h

    r124 r131  
    338338                                               
    339339#ifdef SYSTEMC                                 
     340  public  : void        constant                  (void);
    340341  public  : void        transition                (void);
    341342  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Commit_unit/src/Commit_unit.cpp

    r123 r131  
    7676    if (usage_is_set(_usage,USE_SYSTEMC))
    7777      {
    78         // Constant
    79         for (uint32_t i=0; i<_param->_nb_front_end; i++)
    80           for (uint32_t j=0; j<_param->_nb_context [i]; j++)
    81             {
    82               internal_EVENT_ACK [i][j] = 1;
    83               PORT_WRITE(out_EVENT_ACK [i][j], internal_EVENT_ACK [i][j]);
    84 
    85               internal_RETIRE_EVENT_VAL [i][j] = 1;
    86               PORT_WRITE(out_RETIRE_EVENT_VAL [i][j], internal_RETIRE_EVENT_VAL [i][j]);
    87             }
     78#ifdef SYSTEMCASS_SPECIFIC
     79        constant();
     80#else
     81        log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - constant"),_name.c_str());
     82
     83        SC_METHOD (constant);
     84//      dont_initialize ();
     85       
     86# ifdef SYSTEMCASS_SPECIFIC
     87        // List dependency information
     88# endif   
     89#endif
    8890
    8991        log_printf(INFO,Commit_unit,FUNCTION,_("<%s> Method - transition"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/include/Reexecute_unit.h

    r122 r131  
    199199  private : bool        must_reexecute            (Tspr_address_t address, info_t & info);
    200200
     201  public  : void        constant                  (void);
    201202  public  : void        transition                (void);
    202203  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit.cpp

    r123 r131  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
    77         // Constant
    78         for (uint32_t i=0; i<_param->_nb_inst_reexecute; ++i)
    79           {
    80             if (_param->_have_port_load_queue_ptr)
    81             PORT_WRITE(out_REEXECUTE_LOAD_QUEUE_PTR_WRITE [i],0);
    82             PORT_WRITE(out_REEXECUTE_READ_RA              [i],0);
    83             PORT_WRITE(out_REEXECUTE_NUM_REG_RA           [i],0);
    84             PORT_WRITE(out_REEXECUTE_READ_RB              [i],0);
    85             PORT_WRITE(out_REEXECUTE_NUM_REG_RB           [i],0);
    86             PORT_WRITE(out_REEXECUTE_READ_RC              [i],0);
    87             PORT_WRITE(out_REEXECUTE_NUM_REG_RC           [i],0);
    88             PORT_WRITE(out_REEXECUTE_WRITE_RE             [i],0);
    89             PORT_WRITE(out_REEXECUTE_NUM_REG_RE           [i],0);
    90           }
     77#ifdef SYSTEMCASS_SPECIFIC
     78        constant();
     79#else
     80        log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
    9181
     82        SC_METHOD (constant);
     83//      dont_initialize ();
     84       
     85# ifdef SYSTEMCASS_SPECIFIC
     86        // List dependency information
     87# endif   
     88#endif
    9289
    9390        log_printf(INFO,Reexecute_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_genMealy_commit.cpp

    r123 r131  
    131131    else
    132132      {
     133        for (uint32_t i=0; i<_param->_nb_bank; i++)
     134          internal_QUEUE_PUSH [i] = 0;
     135
    133136#ifdef STATISTICS
    134137        for (uint32_t i=0; i<_param->_nb_inst_commit; ++i)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Reexecute_unit/src/Reexecute_unit_transition.cpp

    r101 r131  
    4949              uint32_t y = internal_QUEUE_NUM_INST_EXECUTE [i];
    5050              uint32_t z = internal_QUEUE_NUM_INST_COMMIT  [i];
    51              
     51
     52              log_printf(TRACE,Reexecute_unit,FUNCTION,"  * EXECUTE_LOOP[%d][%d] - COMMIT[%d]",x,y,z);
     53
    5254              entry->state        = STATE_SPR_ACCESS;
    5355              entry->context_id   = (_param->_have_port_context_id  )?PORT_READ(in_EXECUTE_LOOP_CONTEXT_ID   [x][y]):0;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/include/Load_Store_pointer_unit.h

    r122 r131  
    146146                                               
    147147#ifdef SYSTEMC                                 
     148  public  : void        constant                 (void);
    148149  public  : void        transition                (void);
    149150  public  : void        genMealy_insert           (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Load_Store_pointer_unit/src/Load_Store_pointer_unit.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76 
    77         // Constant : accepted already transaction
    78         for (uint32_t i=0; i<_param->_nb_front_end; ++i)
    79           for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
    80             {
    81               internal_RETIRE_EVENT_ACK [i][j] = 1;
    82              
    83               PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
    84             }
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - constant");
     80
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83       
     84# ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86# endif   
     87#endif
    8588
    8689        log_printf(INFO,Load_Store_pointer_unit,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/include/Register_Address_Translation_unit.h

    r122 r131  
    169169                                               
    170170#ifdef SYSTEMC                                 
     171  public  : void        constant                  (void);
    171172  public  : void        transition                (void);
    172173  public  : void        genMealy_rename           (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_Address_Translation_unit/src/Register_Address_Translation_unit.cpp

    r123 r131  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
    77         // Constant : accepted already transaction
    78         for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    79           {
    80             internal_RENAME_ACK [i] = 1;
    81             internal_INSERT_ACK [i] = 1;
     77#ifdef SYSTEMCASS_SPECIFIC
     78        constant();
     79#else
     80        log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - constant");
    8281
    83             PORT_WRITE(out_RENAME_ACK[i],internal_RENAME_ACK [i]);
    84             PORT_WRITE(out_INSERT_ACK[i],internal_INSERT_ACK [i]);
    85           }
    86 
    87         for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
    88           {
    89             internal_RETIRE_ACK [i] = 1;
    90 
    91             PORT_WRITE(out_RETIRE_ACK[i],internal_RETIRE_ACK [i]);
    92           }
    93 
    94         for (uint32_t i=0; i<_param->_nb_front_end; ++i)
    95           for (uint32_t j=0; j<_param->_nb_context[i]; ++j)
    96             {
    97               internal_RETIRE_EVENT_ACK [i][j] = 1;
    98              
    99               PORT_WRITE(out_RETIRE_EVENT_ACK[i][j],internal_RETIRE_EVENT_ACK [i][j]);
    100             }
     82        SC_METHOD (constant);
     83//      dont_initialize ();
     84       
     85# ifdef SYSTEMCASS_SPECIFIC
     86        // List dependency information
     87# endif   
     88#endif
    10189
    10290        log_printf(INFO,Register_Address_Translation_unit,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Stat_List_unit.h

    r123 r131  
    164164                                               
    165165#ifdef SYSTEMC                                 
     166  public  : void        constant                  (void);
    166167  public  : void        transition                (void);
    167168  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit.cpp

    r123 r131  
    7474    if (usage_is_set(_usage,USE_SYSTEMC))
    7575      {
    76         // Constant
    77         for (uint32_t i=0; i<_param->_nb_inst_insert; i++)
    78           {
    79             internal_INSERT_ACK[i] = 1;
    80             PORT_WRITE(out_INSERT_ACK[i], internal_INSERT_ACK[i]);
    81           }
    82         for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
    83           {
    84             internal_RETIRE_ACK[i] = 1;
    85             PORT_WRITE(out_RETIRE_ACK[i], internal_RETIRE_ACK[i]);
    86           }
     76#ifdef SYSTEMCASS_SPECIFIC
     77        constant();
     78#else
     79        log_printf(INFO,Stat_List_unit,FUNCTION,"Method - constant");
     80
     81        SC_METHOD (constant);
     82//      dont_initialize ();
     83       
     84# ifdef SYSTEMCASS_SPECIFIC
     85        // List dependency information
     86# endif   
     87#endif
    8788
    8889        log_printf(INFO,Stat_List_unit,FUNCTION,"Method - transition");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/SelfTest/src/test.cpp

    r128 r131  
    6161  sc_signal<Toperation_t      > ***  in_RENAME_OPERATION                 ;
    6262  sc_signal<Tcontrol_t        > ***  in_RENAME_NO_EXECUTE                ;
     63  sc_signal<Tcontrol_t        > ***  in_RENAME_LAST_EVENT                ;
    6364  sc_signal<Tcontrol_t        > ***  in_RENAME_IS_DELAY_SLOT             ;
    6465  sc_signal<Taddress_t        > ***  in_RENAME_ADDRESS                   ;
     
    8788  sc_signal<Toperation_t      >  ** out_ISSUE_OPERATION                  ;
    8889  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_STORE_QUEUE_PTR_WRITE      ;
     90  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_STORE_QUEUE_PTR_READ       ;
     91  sc_signal<Tcontrol_t        >  ** out_ISSUE_STORE_QUEUE_EMPTY          ;
    8992  sc_signal<Tlsq_ptr_t        >  ** out_ISSUE_LOAD_QUEUE_PTR_WRITE       ;
    9093  sc_signal<Tcontrol_t        >  ** out_ISSUE_HAS_IMMEDIAT               ;
     
    188191  ALLOC2_SC_SIGNAL( in_RENAME_OPERATION                 ," in_RENAME_OPERATION                 ",Toperation_t      ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    189192  ALLOC2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ," in_RENAME_NO_EXECUTE                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     193  ALLOC2_SC_SIGNAL( in_RENAME_LAST_EVENT                ," in_RENAME_LAST_EVENT                ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    190194  ALLOC2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ," in_RENAME_IS_DELAY_SLOT             ",Tcontrol_t        ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    191195#ifdef DEBUG
     
    216220  ALLOC1_SC_SIGNAL(out_ISSUE_OPERATION                  ,"out_ISSUE_OPERATION                  ",Toperation_t      ,_param->_nb_inst_issue);
    217221  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,"out_ISSUE_STORE_QUEUE_PTR_WRITE      ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
     222  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ       ,"out_ISSUE_STORE_QUEUE_PTR_READ       ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
     223  ALLOC1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY          ,"out_ISSUE_STORE_QUEUE_EMPTY          ",Tcontrol_t        ,_param->_nb_inst_issue);
    218224  ALLOC1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,"out_ISSUE_LOAD_QUEUE_PTR_WRITE       ",Tlsq_ptr_t        ,_param->_nb_inst_issue);
    219225  ALLOC1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,"out_ISSUE_HAS_IMMEDIAT               ",Tcontrol_t        ,_param->_nb_inst_issue);
     
    329335  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    330336  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     337  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    331338  INSTANCE2_SC_SIGNAL(_OOO_Engine, in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    332339#ifdef DEBUG
     
    360367  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
    361368  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
     369  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_PTR_READ       ,_param->_nb_inst_issue);
     370  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_STORE_QUEUE_EMPTY          ,_param->_nb_inst_issue);
    362371  if (_param->_have_port_load_queue_ptr)
    363372  INSTANCE1_SC_SIGNAL(_OOO_Engine,out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
     
    517526  DELETE2_SC_SIGNAL( in_RENAME_OPERATION                 ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    518527  DELETE2_SC_SIGNAL( in_RENAME_NO_EXECUTE                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
     528  DELETE2_SC_SIGNAL( in_RENAME_LAST_EVENT                ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    519529  DELETE2_SC_SIGNAL( in_RENAME_IS_DELAY_SLOT             ,_param->_nb_front_end,_param->_nb_inst_decod[it1]);
    520530#ifdef DEBUG
     
    545555  DELETE1_SC_SIGNAL(out_ISSUE_OPERATION                  ,_param->_nb_inst_issue);
    546556  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_WRITE      ,_param->_nb_inst_issue);
     557  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_PTR_READ       ,_param->_nb_inst_issue);
     558  DELETE1_SC_SIGNAL(out_ISSUE_STORE_QUEUE_EMPTY          ,_param->_nb_inst_issue);
    547559  DELETE1_SC_SIGNAL(out_ISSUE_LOAD_QUEUE_PTR_WRITE       ,_param->_nb_inst_issue);
    548560  DELETE1_SC_SIGNAL(out_ISSUE_HAS_IMMEDIAT               ,_param->_nb_inst_issue);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/include/Special_Register_unit.h

    r88 r131  
    139139                                               
    140140#ifdef SYSTEMC                                 
     141  public  : void        constant                  (void);
    141142  public  : void        transition                (void);
    142143  public  : void        genMoore                  (void);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Special_Register_unit/src/Special_Register_unit.cpp

    r123 r131  
    7575    if (usage_is_set(_usage,USE_SYSTEMC))
    7676      {
    77         // Constant
    78         for (uint32_t i=0; i<_param->_nb_inst_reexecute; i++)
    79           {
    80             internal_SPR_ACCESS_ACK [i] = 1;
    81             PORT_WRITE(out_SPR_ACCESS_ACK [i], internal_SPR_ACCESS_ACK [i]);
    82           }
     77#ifdef SYSTEMCASS_SPECIFIC
     78        constant();
     79#else
     80        log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - constant"),_name.c_str());
    8381
    84         for (uint32_t i=0; i<_param->_nb_front_end; i++)
    85           for (uint32_t j=0; j<_param->_nb_context[i]; j++)
    86             {
    87               internal_SPR_COMMIT_ACK [i][j] = 1;
    88               internal_SPR_EVENT_ACK  [i][j] = 1;
    89               PORT_WRITE(out_SPR_COMMIT_ACK [i][j], internal_SPR_COMMIT_ACK [i][j]);
    90               PORT_WRITE(out_SPR_EVENT_ACK  [i][j], internal_SPR_EVENT_ACK  [i][j]);
    91             }
     82        SC_METHOD (constant);
     83//      dont_initialize ();
     84       
     85# ifdef SYSTEMCASS_SPECIFIC
     86        // List dependency information
     87# endif   
     88#endif
    9289
    9390        log_printf(INFO,Special_Register_unit,FUNCTION,_("<%s> : Method - transition"),_name.c_str());
  • 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
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Makefile.Selftest

    r128 r131  
    2525#MODELTECH_LIBRARY               = $(LIBRARY)
    2626
    27 EXEC_PREFIX                     = $(VALGRIND)
     27EXEC_PREFIX                     =
     28#$(VALGRIND)
    2829EXEC_PARAMS                     = $(SYSTEMC_EXEC_PARAMS_$(SIMULATOR_SYSTEMC))
    2930EXEC_LOG                        = $(patsubst $(DIR_CFG_GEN)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_GEN)/*.cfg))       \
    3031                                  $(patsubst $(DIR_CFG_USER)/%.cfg,$(DIR_LOG)/%.exec.log,$(wildcard $(DIR_CFG_USER)/*.cfg))
    31 EXEC                            = soft
     32BIN                             = Selftest.x
     33EXEC                            = $(DIR_BIN)/$(BIN)
    3234
    3335#-----[ Rules ]--------------------------------------------
     
    4143                                @\
    4244                                $(MAKE) library;\
    43                                 $(MAKE) $(DIR_BIN)/$(EXEC).x;
     45                                $(MAKE) $(EXEC);
    4446
    4547execute_only                    :
     
    170172                                done;
    171173
    172 $(DIR_LOG)/%.exec.log           : %.cfg  $(EXEC).x
     174$(DIR_LOG)/%.exec.log           : %.cfg  $(EXEC)
    173175                                @\
    174176                                $(ECHO) "Execute            : $*";\
    175                                 export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $(DIR_BIN)/$(EXEC).x $(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \
     177                                export SYSTEMC=$(SYSTEMC_$(SIMULATOR_SYSTEMC)); $(EXEC_PREFIX) $(EXEC) $(EXEC_PARAMS) $* `$(CAT) $<` &> $@; \
    176178                                declare timing=`$(GREP) -h "Timing"  $@`;               \
    177179                                $(GREP) -q "Timing"  $@;                                \
     
    224226                                @$(RM)  $(DIR_LOG)              \
    225227                                        $(DIR_CFG_USER)/*~      \
    226                                         $(DIR_BIN)/$(EXEC).x    \
     228                                        $(EXEC)                 \
    227229                                        *.vhdl                  \
    228230                                        *.pos                   \
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Component.h

    r115 r131  
    4242#else
    4343*/
     44
    4445# define PORT_MAP(x,a,b,c,d)                                            \
    4546  do                                                                    \
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Model.h

    r118 r131  
    3131  class Model
    3232  {
    33   private : static const model_type_t default_type  = MODEL_SYSTEMC;
    34   private : static const bool         default_debug = false;
     33  private : model_type_t default_type ;
     34  private : bool         default_debug;
    3535
    3636  private : std::map<std::string,model_t> models;
     
    3838  public  :               Model (void);
    3939  public  :              ~Model (void);
     40  public  : void         set_model (                       model_type_t type, bool debug);
    4041  public  : void         set_model (std::string component, model_type_t type, bool debug);
    4142  public  : model_type_t get_type  (std::string component);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h

    r130 r131  
    1010#define MORPHEO_MAJOR_VERSION "0"
    1111#define MORPHEO_MINOR_VERSION "2"
    12 #define MORPHEO_REVISION      "130"
     12#define MORPHEO_REVISION      "131"
    1313#define MORPHEO_CODENAME      "Castor"
    1414
    15 #define MORPHEO_DATE_DAY      "30
    16 #define MORPHEO_DATE_MONTH    "06"
     15#define MORPHEO_DATE_DAY      "08
     16#define MORPHEO_DATE_MONTH    "07"
    1717#define MORPHEO_DATE_YEAR     "2009"
    1818
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp

    r113 r131  
    5151
    5252    // If all is ok, mapping
    53     log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\"\tlink with \"%s.%s\"")
    54                ,entity_src ->get_name().c_str()
    55                ,signal_src ->get_name().c_str()
    56                ,entity_dest->get_name().c_str()
    57                ,signal_dest->get_name().c_str());
     53    log_printf(TRACE,Behavioural,FUNCTION, _("Signal \"%s.%s\" (0x%x) \tlink with \"%s.%s\" (0x%x)")
     54               ,     entity_src ->get_name().c_str()
     55               ,     signal_src ->get_name().c_str()
     56               ,(int)signal_src ->get_sc_signal()
     57               ,     entity_dest->get_name().c_str()
     58               ,     signal_dest->get_name().c_str()
     59               ,(int)signal_dest->get_sc_signal()
     60               );
    5861
    5962    // need an internal signal ?
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model.cpp

    r129 r131  
    1818//     log_begin(Behavioural,FUNCTION);
    1919
     20    default_type  = MODEL_SYSTEMC;
     21    default_debug = false;
     22
    2023    set_model(NAME_true ,MODEL_SYSTEMC,true );
    2124    set_model(NAME_false,MODEL_SYSTEMC,false);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Model_set_model.cpp

    r129 r131  
    1111namespace morpheo              {
    1212namespace behavioural          {
     13
     14#undef  FUNCTION
     15#define FUNCTION "Model::set_model"
     16  void Model::set_model (model_type_t type, bool debug)
     17  {
     18//     log_begin(Behavioural,FUNCTION);
     19
     20    default_type  = type ;
     21    default_debug = debug;
     22
     23//     log_end(Behavioural,FUNCTION);
     24  }
    1325
    1426#undef  FUNCTION
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_connect.cpp

    r82 r131  
    1818    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    1919
    20 //     log_printf(TRACE,Behavioural,FUNCTION,"Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str());
    21 //     log_printf(ALL,Behavioural,FUNCTION," * source");
    22 //     log_printf(ALL,Behavioural,FUNCTION,"   * direction : %s",toString(_direction).c_str());
    23 //     log_printf(ALL,Behavioural,FUNCTION,"   * sc_signal : %.8x",_sc_signal);
    24 //     log_printf(ALL,Behavioural,FUNCTION,"   * type_info : %s",toString(_type_info).c_str());
    25 //     log_printf(ALL,Behavioural,FUNCTION," * destination");
    26 //     log_printf(ALL,Behavioural,FUNCTION,"   * direction : %s",toString(signal_dest->_direction).c_str());
    27 //     log_printf(ALL,Behavioural,FUNCTION,"   * sc_signal : %.8x",signal_dest->_sc_signal);
    28 //     log_printf(ALL,Behavioural,FUNCTION,"   * type_info : %s",toString(signal_dest->_type_info).c_str());
     20    log_printf(TRACE,Behavioural,FUNCTION,"  * Connection between : %s with %s",get_name().c_str(),signal_dest->get_name().c_str());
     21//     log_printf(ALL,Behavioural,FUNCTION,"    * source");
     22//     log_printf(ALL,Behavioural,FUNCTION,"      * direction : %s",toString(_direction).c_str());
     23//     log_printf(ALL,Behavioural,FUNCTION,"      * sc_signal : %.8x",_sc_signal);
     24//     log_printf(ALL,Behavioural,FUNCTION,"      * type_info : %s",toString(_type_info).c_str());
     25//     log_printf(ALL,Behavioural,FUNCTION,"    * destination");
     26//     log_printf(ALL,Behavioural,FUNCTION,"      * direction : %s",toString(signal_dest->_direction).c_str());
     27//     log_printf(ALL,Behavioural,FUNCTION,"      * sc_signal : %.8x",signal_dest->_sc_signal);
     28//     log_printf(ALL,Behavioural,FUNCTION,"      * type_info : %s",toString(signal_dest->_type_info).c_str());
    2929
    30     TEST_PTR(_sc_signal);
     30    TEST_PTR(             _sc_signal);
    3131    TEST_PTR(signal_dest->_sc_signal);
    3232
    3333    if ((_direction == IN ) and (signal_dest->_direction == IN ))
    34       switch (_type_info)
    35         {
    36         case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
    37         case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
    38         case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
    39         case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
    40         case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
    41         default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    42         }
     34      {
     35        switch (_type_info)
     36          {
     37          case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
     38          case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
     39          case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
     40          case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
     41          case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
     42          default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     43          }
     44      }
    4345    else
    44       if ((_direction == IN ) and (signal_dest->_direction == OUT))
    45         switch (_type_info)
    46           {
    47           case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
    48           case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
    49           case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
    50           case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
    51           case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
    52           default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    53           }
    54       else
    55         if ((_direction == IN ) and (signal_dest->_direction == INTERNAL))
    56           switch (_type_info)
    57             {
    58             case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
    59             case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
    60             case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
    61             case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
    62             case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
    63             default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    64             }
    65         else
     46      {
     47        if ((_direction == IN ) and (signal_dest->_direction == OUT))
     48          {
     49            switch (_type_info)
     50              {
     51              case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
     52              case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
     53              case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
     54              case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
     55              case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
     56              default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     57              }
     58          }
     59        else
     60          {
     61            if ((_direction == IN ) and (signal_dest->_direction == INTERNAL))
     62              {
     63                switch (_type_info)
     64                  {
     65                  case BOOL     : {(*(static_cast<sc_in  <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
     66                  case UINT8_T  : {(*(static_cast<sc_in  <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
     67                  case UINT16_T : {(*(static_cast<sc_in  <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
     68                  case UINT32_T : {(*(static_cast<sc_in  <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
     69                  case UINT64_T : {(*(static_cast<sc_in  <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
     70                  default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     71                  }
     72              }
     73            else
     74              {
    6675#ifdef SYSTEMCASS_SPECIFIC
    67           if ((_direction == OUT) and (signal_dest->_direction == IN ))
    68             switch (_type_info)
    69               {
    70               case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
    71               case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
    72               case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
    73               case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
    74               case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
    75               default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    76               }
    77           else
     76                if ((_direction == OUT) and (signal_dest->_direction == IN ))
     77                  switch (_type_info)
     78                    {
     79                    case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_in  <bool    > *>(signal_dest->_sc_signal))); break;}
     80                    case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_in  <uint8_t > *>(signal_dest->_sc_signal))); break;}
     81                    case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint16_t> *>(signal_dest->_sc_signal))); break;}
     82                    case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint32_t> *>(signal_dest->_sc_signal))); break;}
     83                    case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_in  <uint64_t> *>(signal_dest->_sc_signal))); break;}
     84                    default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     85                    }
     86                else
    7887#endif
    79             if ((_direction == OUT) and (signal_dest->_direction == OUT))
    80               switch (_type_info)
    81                 {
    82                 case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
    83                 case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
    84                 case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
    85                 case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
    86                 case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
    87                 default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    88                 }
    89             else
    90               if ((_direction == OUT) and (signal_dest->_direction == INTERNAL))
    91                 switch (_type_info)
    92                   {
    93                   case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
    94                   case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
    95                   case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
    96                   case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
    97                   case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
    98                   default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    99                   }
     88                  {
     89                    if ((_direction == OUT) and (signal_dest->_direction == OUT))
     90                      {
     91                        switch (_type_info)
     92                          {
     93                          case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_out <bool    > *>(signal_dest->_sc_signal))); break;}
     94                          case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_out <uint8_t > *>(signal_dest->_sc_signal))); break;}
     95                          case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_out <uint16_t> *>(signal_dest->_sc_signal))); break;}
     96                          case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_out <uint32_t> *>(signal_dest->_sc_signal))); break;}
     97                          case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_out <uint64_t> *>(signal_dest->_sc_signal))); break;}
     98                          default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     99                          }
     100                      }
     101                    else
     102                      {
     103                        if ((_direction == OUT) and (signal_dest->_direction == INTERNAL))
     104                          {
     105                            switch (_type_info)
     106                              {
     107                              case BOOL     : {(*(static_cast<sc_out <bool    > *>(_sc_signal))) (*(static_cast<sc_signal<bool    > *>(signal_dest->_sc_signal))); break;}
     108                              case UINT8_T  : {(*(static_cast<sc_out <uint8_t > *>(_sc_signal))) (*(static_cast<sc_signal<uint8_t > *>(signal_dest->_sc_signal))); break;}
     109                              case UINT16_T : {(*(static_cast<sc_out <uint16_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint16_t> *>(signal_dest->_sc_signal))); break;}
     110                              case UINT32_T : {(*(static_cast<sc_out <uint32_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint32_t> *>(signal_dest->_sc_signal))); break;}
     111                              case UINT64_T : {(*(static_cast<sc_out <uint64_t> *>(_sc_signal))) (*(static_cast<sc_signal<uint64_t> *>(signal_dest->_sc_signal))); break;}
     112                              default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
     113                              }
     114                          }
    100115//            else
    101116//              if ((_direction == INTERNAL) and (signal_dest->_direction == IN ))
     
    131146//                      default       : {throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" : type unknow.")); break;}
    132147//                      }
    133                     else
    134                       throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+")."));
     148                        else
     149                          {
     150                            throw (ErrorMorpheo ("<Signal::connect> Signal \""+_name+"\" can't been connected with signal \""+signal_dest->get_name()+"\" : illegal direction ("+toString(_direction)+" with "+toString(signal_dest->_direction)+")."));
     151                          }
     152                      }
     153                  }
     154              }
     155          }
     156      }
    135157
    136158    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_link.cpp

    r129 r131  
    102102    if (not source_have_multi_consumer)
    103103      connect (signal_dest);
     104    else
     105      msgWarning(_("Source have multi consumer !\n"));
    104106
    105107    log_printf(FUNC,Behavioural,FUNCTION,"End");
  • trunk/IPs/systemC/processor/Morpheo/Common/include/Systemc.h

    r113 r131  
    3636
    3737#ifdef MTI_SYSTEMC
    38 # define simulation_run(x) do{ if (x>0) wait(TIME_PERIOD*x,TIME_UNIT); else for (int i=0; i<1000; ++i) wait(SC_ZERO_TIME); } while(0)
     38#  define simulation_run(x) do{ if (x>0) wait(TIME_PERIOD*x,TIME_UNIT); else for (int i=0; i<1000; ++i) wait(SC_ZERO_TIME); } while(0)
    3939#else
    40 # define simulation_run(x) do{ sc_start(x); } while(0)
     40# ifdef SYSTEMCASS_SPECIFIC
     41#  define simulation_run(x) do{ sc_time t (x,TIME_UNIT); sc_start(t); } while(0)
     42# else // systemc
     43#  define simulation_run(x) do{ if(x==0) {sc_start(SC_ZERO_TIME);} else {sc_time t (x,TIME_UNIT); sc_start(t);}} while(0)
     44# endif
    4145#endif
    4246
    4347#define simulation_cycle() sc_simulation_time()/TIME_PERIOD
    44 
     48// #define simulation_cycle() sc_time_stamp()/TIME_PERIOD
    4549};
    4650#endif
  • trunk/IPs/systemC/processor/Morpheo/Common/include/Test.h

    r113 r131  
    119119          TEST_KO("Maximal cycles Reached");                            \
    120120        }                                                               \
    121                                                                         \
     121                                                                        \
    122122      simulation_run(cycle_offset);                                     \
    123123                                                                        \
  • trunk/IPs/systemC/processor/Morpheo/Common/src/Translation.cpp

    r88 r131  
    1212namespace morpheo {
    1313
     14#ifdef TRANSLATION
    1415  static bool translation_initialized;
     16#endif
    1517
    1618  void translation (void)
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w1_4.cfg

    r124 r131  
    6767    <timing type="2"  latence="1" delay="1" />
    6868    <timing type="3"  latence="1" delay="1" />
    69     <timing type="4"  latence="1" delay="1" />
     69    <timing type="4"  latence="3" delay="1" />
    7070    <timing type="6"  latence="1" delay="1" />
    7171    <timing type="7"  latence="1" delay="1" />
     
    8181    <timing type="2"  latence="1" delay="1" />
    8282    <timing type="3"  latence="1" delay="1" />
    83     <timing type="4"  latence="1" delay="1" />
     83    <timing type="4"  latence="3" delay="1" />
    8484    <timing type="6"  latence="1" delay="1" />
    8585    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w2_4.cfg

    r124 r131  
    6767    <timing type="2"  latence="1" delay="1" />
    6868    <timing type="3"  latence="1" delay="1" />
    69     <timing type="4"  latence="1" delay="1" />
     69    <timing type="4"  latence="3" delay="1" />
    7070    <timing type="6"  latence="1" delay="1" />
    7171    <timing type="7"  latence="1" delay="1" />
     
    8181    <timing type="2"  latence="1" delay="1" />
    8282    <timing type="3"  latence="1" delay="1" />
    83     <timing type="4"  latence="1" delay="1" />
     83    <timing type="4"  latence="3" delay="1" />
    8484    <timing type="6"  latence="1" delay="1" />
    8585    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w4_2.cfg

    r124 r131  
    7474    <timing type="2"  latence="1" delay="1" />
    7575    <timing type="3"  latence="1" delay="1" />
    76     <timing type="4"  latence="1" delay="1" />
     76    <timing type="4"  latence="3" delay="1" />
    7777    <timing type="6"  latence="1" delay="1" />
    7878    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x1_w8_2.cfg

    r129 r131  
    8080    <timing type="2"  latence="1" delay="1" />
    8181    <timing type="3"  latence="1" delay="1" />
    82     <timing type="4"  latence="1" delay="1" />
     82    <timing type="4"  latence="3" delay="1" />
    8383    <timing type="6"  latence="1" delay="1" />
    8484    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x4_w8_1.cfg

    r128 r131  
    8080    <timing type="2"  latence="1" delay="1" />
    8181    <timing type="3"  latence="1" delay="1" />
    82     <timing type="4"  latence="1" delay="1" />
     82    <timing type="4"  latence="3" delay="1" />
    8383    <timing type="6"  latence="1" delay="1" />
    8484    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/Instance_x4_w8_2.cfg

    r129 r131  
    8080    <timing type="2"  latence="1" delay="1" />
    8181    <timing type="3"  latence="1" delay="1" />
    82     <timing type="4"  latence="1" delay="1" />
     82    <timing type="4"  latence="3" delay="1" />
    8383    <timing type="6"  latence="1" delay="1" />
    8484    <timing type="7"  latence="1" delay="1" />
  • trunk/IPs/systemC/processor/Morpheo/Files/debug.sim

    r130 r131  
    88  <parameter  name="use_vhdl_testbench_assert"              value="0"       />
    99  <parameter  name="use_position"                           value="0"       />
    10   <parameter  name="use_statistics"                         value="1"       />
     10  <parameter  name="use_statistics"                         value="0"       />
    1111  <parameter  name="use_information"                        value="0"       />
    1212  <parameter  name="use_header"                             value="0"       />
     
    109109
    110110  <component  name="Behavioural"                            model="systemc" debug="1" />
    111   <component  name="Interface"                              model="systemc" debug="0" />
    112   <component  name="Allocation"                             model="systemc" debug="0" />
     111  <component  name="Interface"                              model="systemc" debug="1" />
     112  <component  name="Allocation"                             model="systemc" debug="1" />
    113113
    114114</parameters>
Note: See TracChangeset for help on using the changeset viewer.