Ignore:
Timestamp:
Dec 31, 2008, 11:18:08 AM (16 years ago)
Author:
rosiere
Message:

1) Fix bug (read unit, RAT -> write in R0, SPR desallocation ...)
2) Change VHDL Execute_queue -> use Generic/Queue?
3) Complete document on VHDL generation
4) Add soc test

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Front_end/Front_end/Prediction_unit/Prediction_unit_Glue/src/Prediction_unit_Glue_genMealy_update.cpp

    r88 r98  
    2323  {
    2424    log_begin(Prediction_unit_Glue,FUNCTION);
     25    log_function(Prediction_unit_Glue,FUNCTION,_name.c_str());
    2526
    26 //     for (uint32_t i=0; i<_param->_nb_inst_branch_update; i++)
    27 //       {
    28 //      Tcontrol_t btb_ack     = PORT_READ(in_UPDATE_BTB_ACK [i]);
    29 //      Tcontrol_t dir_ack     = PORT_READ(in_UPDATE_DIR_ACK [i]);
    30 //      Tcontrol_t ras_ack     = PORT_READ(in_UPDATE_RAS_ACK [i]);
    31 //      Tcontrol_t upt_val     = PORT_READ(in_UPDATE_UPT_VAL [i]);
     27    for (uint32_t i=0; i<_param->_nb_inst_branch_update; i++)
     28      {
     29        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"  * UPDATE [%d]",i);
     30        Tcontrol_t btb_ack = PORT_READ(in_UPDATE_BTB_ACK [i]);
     31        Tcontrol_t dir_ack = PORT_READ(in_UPDATE_DIR_ACK [i]);
     32        Tcontrol_t ras_ack = PORT_READ(in_UPDATE_RAS_ACK [i]);
     33        Tcontrol_t upt_val = PORT_READ(in_UPDATE_UPT_VAL [i]);
    3234
    33 //      Tcontrol_t need_btb = PORT_READ(in_UPDATE_UPT_BTB_VAL [i]);
    34 //      Tcontrol_t need_dir = PORT_READ(in_UPDATE_UPT_DIR_VAL [i]);
    35 //      Tcontrol_t need_ras = PORT_READ(in_UPDATE_UPT_RAS_VAL [i]);
     35        Tcontrol_t upt_btb_val = PORT_READ(in_UPDATE_UPT_BTB_VAL [i]);
     36        Tcontrol_t upt_dir_val = PORT_READ(in_UPDATE_UPT_DIR_VAL [i]);
     37        Tcontrol_t upt_ras_val = PORT_READ(in_UPDATE_UPT_RAS_VAL [i]);
    3638       
    37 //      PORT_WRITE(out_UPDATE_BTB_VAL [i], (upt_val and need_btb and
    38 //                                          (not need_dir or (need_dir and dir_ack)) and
    39 //                                          (not need_ras or (need_ras and ras_ack))));
     39        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    * upt_val               : %d",upt_val);
     40        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    * upt_btb_val - btb_ack : %d - %d",upt_btb_val, btb_ack);
     41        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    * upt_dir_val - dir_ack : %d - %d",upt_dir_val, dir_ack);
     42        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    * upt_ras_val - ras_ack : %d - %d",upt_ras_val, ras_ack);
    4043
    41 //      PORT_WRITE(out_UPDATE_DIR_VAL [i], (upt_val and need_dir and
    42 //                                          (not need_btb or (need_btb and btb_ack)) and
    43 //                                          (not need_ras or (need_ras and ras_ack))));
     44        Tcontrol_t btb_val = (upt_val  and
     45                              upt_btb_val and
     46//                            upt_dir_val and
     47//                            upt_ras_val and
     48//                            (not upt_btb_val or (upt_btb_val and btb_ack)) and
     49                              (not upt_dir_val or (upt_dir_val and dir_ack)) and
     50                              (not upt_ras_val or (upt_ras_val and ras_ack))
     51                              );
    4452
    45 //      PORT_WRITE(out_UPDATE_RAS_VAL [i], (upt_val and need_ras and
    46 //                                          (not need_btb or (need_btb and btb_ack)) and
    47 //                                          (not need_dir or (need_dir and dir_ack))));
     53        Tcontrol_t dir_val = (upt_val and
     54//                            upt_btb_val and
     55                              upt_dir_val and
     56//                            upt_ras_val and
     57                              (not upt_btb_val or (upt_btb_val and btb_ack)) and
     58//                            (not upt_dir_val or (upt_dir_val and dir_ack)) and
     59                              (not upt_ras_val or (upt_ras_val and ras_ack))
     60                              );
    4861
    49 //      PORT_WRITE(out_UPDATE_UPT_ACK [i], ((not need_btb or (need_btb and btb_ack)) and
    50 //                                          (not need_dir or (need_dir and dir_ack)) and
    51 //                                          (not need_ras or (need_ras and ras_ack))));
    52 //       }
     62        Tcontrol_t ras_val = (upt_val  and
     63//                            upt_btb_val and
     64//                            upt_dir_val and
     65                              upt_ras_val and
     66                              (not upt_btb_val or (upt_btb_val and btb_ack)) and
     67                              (not upt_dir_val or (upt_dir_val and dir_ack))//  and
     68//                            (not upt_ras_val or (upt_ras_val and ras_ack))
     69                              );
     70
     71        Tcontrol_t upt_ack = (
     72//                            upt_val  and
     73//                            upt_btb_val and
     74//                            upt_dir_val and
     75//                            upt_ras_val and
     76                              (not upt_btb_val or (upt_btb_val and btb_ack)) and
     77                              (not upt_dir_val or (upt_dir_val and dir_ack)) and
     78                              (not upt_ras_val or (upt_ras_val and ras_ack))
     79                              );
     80
     81        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    *     btb_val           : %d",btb_val);
     82        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    *     dir_val           : %d",dir_val);
     83        log_printf(TRACE,Prediction_unit_Glue,FUNCTION,"    *     ras_val           : %d",ras_val);
     84
     85        PORT_WRITE(out_UPDATE_BTB_VAL [i], btb_val);
     86        PORT_WRITE(out_UPDATE_DIR_VAL [i], dir_val);
     87        PORT_WRITE(out_UPDATE_RAS_VAL [i], ras_val);
     88        PORT_WRITE(out_UPDATE_UPT_ACK [i], upt_ack);
     89      }
    5390
    5491    log_end(Prediction_unit_Glue,FUNCTION);
Note: See TracChangeset for help on using the changeset viewer.