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/Multi_Execute_loop/Execute_loop
Files:
2 added
17 edited

Legend:

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