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

1) add constant method
2) test with systemc 2.2.0

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core
Files:
19 added
58 edited

Legend:

Unmodified
Added
Removed
  • 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());
Note: See TracChangeset for help on using the changeset viewer.