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

File:
1 edited

Legend:

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