Ignore:
Timestamp:
May 16, 2009, 4:42:39 PM (15 years ago)
Author:
rosiere
Message:

1) Platforms : add new organization for test
2) Load_Store_Unit : add array to count nb_check in store_queue
3) Issue_queue and Core_Glue : rewrite the issue network
4) Special_Register_Unit : add reset value to register CID
5) Softwares : add multicontext test
6) Softwares : add SPECINT
7) Softwares : add MiBench?
7) Read_queue : inhib access for r0
8) Change Core_Glue (network) - dont yet support priority and load balancing scheme

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/SelfTest/src/test.cpp

    r98 r117  
    7979  ALLOC1_SC_SIGNAL( in_INSERT_DEPENDENCY_CHECKING_NUM_REG_RE_PHY_NEW," in_INSERT_DEPENDENCY_CHECKING_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_nb_inst_insert);
    8080
    81   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,"out_INSERT_STAT_LIST_READ_RA                     ",Tcontrol_t        ,_param->_nb_inst_insert);
    82   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ",Tgeneral_address_t,_param->_nb_inst_insert);
    83   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,"out_INSERT_STAT_LIST_READ_RB                     ",Tcontrol_t        ,_param->_nb_inst_insert);
    84   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ",Tgeneral_address_t,_param->_nb_inst_insert);
    85   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,"out_INSERT_STAT_LIST_READ_RC                     ",Tcontrol_t        ,_param->_nb_inst_insert);
    86   ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ",Tspecial_address_t,_param->_nb_inst_insert);
     81//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,"out_INSERT_STAT_LIST_READ_RA                     ",Tcontrol_t        ,_param->_nb_inst_insert);
     82//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ",Tgeneral_address_t,_param->_nb_inst_insert);
     83//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,"out_INSERT_STAT_LIST_READ_RB                     ",Tcontrol_t        ,_param->_nb_inst_insert);
     84//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ",Tgeneral_address_t,_param->_nb_inst_insert);
     85//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,"out_INSERT_STAT_LIST_READ_RC                     ",Tcontrol_t        ,_param->_nb_inst_insert);
     86//ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,"out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ",Tspecial_address_t,_param->_nb_inst_insert);
    8787  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_WRITE_RD                    ,"out_INSERT_STAT_LIST_WRITE_RD                    ",Tcontrol_t        ,_param->_nb_inst_insert);
     88  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ,"out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ",Tgeneral_address_t,_param->_nb_inst_insert);
    8889  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ,"out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ",Tgeneral_address_t,_param->_nb_inst_insert);
    8990  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_WRITE_RE                    ,"out_INSERT_STAT_LIST_WRITE_RE                    ",Tcontrol_t        ,_param->_nb_inst_insert);
     91  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ,"out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ",Tspecial_address_t,_param->_nb_inst_insert);
    9092  ALLOC1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ,"out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ",Tspecial_address_t,_param->_nb_inst_insert);
    9193
     
    157159  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue, in_INSERT_DEPENDENCY_CHECKING_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert);
    158160
    159   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert);
    160   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert);
    161   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert);
    162   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert);
    163   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert);
    164   INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert);
     161//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert);
     162//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert);
     163//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert);
     164//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert);
     165//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert);
     166//INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert);
    165167  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_WRITE_RD                    ,_param->_nb_inst_insert);
     168  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ,_param->_nb_inst_insert);
    166169  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ,_param->_nb_inst_insert);
    167170  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_WRITE_RE                    ,_param->_nb_inst_insert);
     171  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ,_param->_nb_inst_insert);
    168172  INSTANCE1_SC_SIGNAL(_Register_translation_unit_Glue,out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ,_param->_nb_inst_insert);
    169173
     
    331335  DELETE1_SC_SIGNAL( in_INSERT_DEPENDENCY_CHECKING_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert);
    332336
    333   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert);
    334   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert);
    335   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert);
    336   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert);
    337   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert);
    338   DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert);
     337//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert);
     338//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert);
     339//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert);
     340//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert);
     341//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert);
     342//DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert);
    339343  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_WRITE_RD                    ,_param->_nb_inst_insert);
     344  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ,_param->_nb_inst_insert);
    340345  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ,_param->_nb_inst_insert);
    341346  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_WRITE_RE                    ,_param->_nb_inst_insert);
     347  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ,_param->_nb_inst_insert);
    342348  DELETE1_SC_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ,_param->_nb_inst_insert);
    343349
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/include/Register_translation_unit_Glue.h

    r110 r117  
    108108  public    : SC_OUT(Tspecial_address_t)   ** out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ;//[nb_inst_insert]
    109109  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_STAT_LIST_WRITE_RD                    ;//[nb_inst_insert]
     110  public    : SC_OUT(Tgeneral_address_t)   ** out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ;//[nb_inst_insert]
    110111  public    : SC_OUT(Tgeneral_address_t)   ** out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ;//[nb_inst_insert]
    111112  public    : SC_OUT(Tcontrol_t        )   ** out_INSERT_STAT_LIST_WRITE_RE                    ;//[nb_inst_insert]
     113  public    : SC_OUT(Tspecial_address_t)   ** out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ;//[nb_inst_insert]
    112114  public    : SC_OUT(Tspecial_address_t)   ** out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ;//[nb_inst_insert]
    113115
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_allocation.cpp

    r112 r117  
    9797      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,"STAT_LIST_NUM_REG_RC_PHY"              ,Tspecial_address_t,_param->_size_special_register      );
    9898      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_WRITE_RD                    ,"STAT_LIST_WRITE_RD"                    ,Tcontrol_t        ,1);
     99      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ,"STAT_LIST_NUM_REG_RD_PHY_OLD"          ,Tgeneral_address_t,_param->_size_general_register      );
    99100      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ,"STAT_LIST_NUM_REG_RD_PHY_NEW"          ,Tgeneral_address_t,_param->_size_general_register      );
    100101      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_WRITE_RE                    ,"STAT_LIST_WRITE_RE"                    ,Tcontrol_t        ,1);
     102      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ,"STAT_LIST_NUM_REG_RE_PHY_OLD"          ,Tspecial_address_t,_param->_size_special_register      );
    101103      ALLOC1_SIGNAL_OUT(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ,"STAT_LIST_NUM_REG_RE_PHY_NEW"          ,Tspecial_address_t,_param->_size_special_register      );
    102104
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_deallocation.cpp

    r110 r117  
    5959        DELETE1_SIGNAL( in_INSERT_DEPENDENCY_CHECKING_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register      );
    6060       
    61         DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert,1);
    62         DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert,_param->_size_general_register      );
    63         DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert,1);
    64         DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert,_param->_size_general_register      );
    65         DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert,1);
    66         DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert,_param->_size_special_register      );
     61        DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RA                     ,_param->_nb_inst_insert,1);
     62        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RA_PHY              ,_param->_nb_inst_insert,_param->_size_general_register      );
     63        DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RB                     ,_param->_nb_inst_insert,1);
     64        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RB_PHY              ,_param->_nb_inst_insert,_param->_size_general_register      );
     65        DELETE1_SIGNAL(out_INSERT_STAT_LIST_READ_RC                     ,_param->_nb_inst_insert,1);
     66        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RC_PHY              ,_param->_nb_inst_insert,_param->_size_special_register      );
    6767        DELETE1_SIGNAL(out_INSERT_STAT_LIST_WRITE_RD                    ,_param->_nb_inst_insert,1);
     68        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD          ,_param->_nb_inst_insert,_param->_size_general_register      );
    6869        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW          ,_param->_nb_inst_insert,_param->_size_general_register      );
    6970        DELETE1_SIGNAL(out_INSERT_STAT_LIST_WRITE_RE                    ,_param->_nb_inst_insert,1);
     71        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD          ,_param->_nb_inst_insert,_param->_size_special_register      );
    7072        DELETE1_SIGNAL(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW          ,_param->_nb_inst_insert,_param->_size_special_register      );
    7173       
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Register_translation_unit_Glue/src/Register_translation_unit_Glue_genMealy_insert.cpp

    r101 r117  
    4949        PORT_WRITE(out_INSERT_FREE_LIST_SPR_VAL            [i], WRITE_RE          );
    5050
    51         PORT_WRITE(out_INSERT_STAT_LIST_READ_RA            [i], READ_RA           );
    52         PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RA_PHY     [i], NUM_REG_RA_PHY    );
    53         PORT_WRITE(out_INSERT_STAT_LIST_READ_RB            [i], READ_RB           );
    54         PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RB_PHY     [i], NUM_REG_RB_PHY    );
    55         PORT_WRITE(out_INSERT_STAT_LIST_READ_RC            [i], READ_RC           );
    56         PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RC_PHY     [i], NUM_REG_RC_PHY    );
     51        PORT_WRITE(out_INSERT_STAT_LIST_READ_RA            [i], READ_RA           );
     52        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RA_PHY     [i], NUM_REG_RA_PHY    );
     53        PORT_WRITE(out_INSERT_STAT_LIST_READ_RB            [i], READ_RB           );
     54        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RB_PHY     [i], NUM_REG_RB_PHY    );
     55        PORT_WRITE(out_INSERT_STAT_LIST_READ_RC            [i], READ_RC           );
     56        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RC_PHY     [i], NUM_REG_RC_PHY    );
    5757        PORT_WRITE(out_INSERT_STAT_LIST_WRITE_RD           [i], WRITE_RD          );
     58        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_OLD [i], NUM_REG_RD_PHY_OLD);
    5859        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RD_PHY_NEW [i], NUM_REG_RD_PHY_NEW);
    5960        PORT_WRITE(out_INSERT_STAT_LIST_WRITE_RE           [i], WRITE_RE          );
     61        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_OLD [i], NUM_REG_RE_PHY_OLD);
    6062        PORT_WRITE(out_INSERT_STAT_LIST_NUM_REG_RE_PHY_NEW [i], NUM_REG_RE_PHY_NEW);
    6163       
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/SelfTest/src/test.cpp

    r113 r117  
    6363  sc_signal<Tcontrol_t        >   **  in_INSERT_VAL               ;//[nb_inst_insert]
    6464  sc_signal<Tcontrol_t        >   ** out_INSERT_ACK               ;//[nb_inst_insert]
    65   sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RA           ;//[nb_inst_insert]
    66   sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RA_PHY    ;//[nb_inst_insert]
    67   sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RB           ;//[nb_inst_insert]
    68   sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RB_PHY    ;//[nb_inst_insert]
    69   sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RC           ;//[nb_inst_insert]
    70   sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RC_PHY    ;//[nb_inst_insert]
     65//sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RA           ;//[nb_inst_insert]
     66//sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RA_PHY    ;//[nb_inst_insert]
     67//sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RB           ;//[nb_inst_insert]
     68//sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RB_PHY    ;//[nb_inst_insert]
     69//sc_signal<Tcontrol_t        >   **  in_INSERT_READ_RC           ;//[nb_inst_insert]
     70//sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RC_PHY    ;//[nb_inst_insert]
    7171  sc_signal<Tcontrol_t        >   **  in_INSERT_WRITE_RD          ;//[nb_inst_insert]
     72  sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RD_PHY_OLD;//[nb_inst_insert]
    7273  sc_signal<Tgeneral_address_t>   **  in_INSERT_NUM_REG_RD_PHY_NEW;//[nb_inst_insert]
    7374  sc_signal<Tcontrol_t        >   **  in_INSERT_WRITE_RE          ;//[nb_inst_insert]
     75  sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RE_PHY_OLD;//[nb_inst_insert]
    7476  sc_signal<Tspecial_address_t>   **  in_INSERT_NUM_REG_RE_PHY_NEW;//[nb_inst_insert]
    7577  sc_signal<Tcontrol_t        >   **  in_RETIRE_VAL               ;//[nb_inst_retire]
    7678  sc_signal<Tcontrol_t        >   ** out_RETIRE_ACK               ;//[nb_inst_retire]
    7779  sc_signal<Tcontrol_t        >   **  in_RETIRE_RESTORE           ;//[nb_inst_retire]
    78   sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
    79   sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
    80   sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
    81   sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
    82   sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
    83   sc_signal<Tspecial_address_t>   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
     80//sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RA           ;//[nb_inst_retire]
     81//sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RA_PHY    ;//[nb_inst_retire]
     82//sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RB           ;//[nb_inst_retire]
     83//sc_signal<Tgeneral_address_t>   **  in_RETIRE_NUM_REG_RB_PHY    ;//[nb_inst_retire]
     84//sc_signal<Tcontrol_t        >   **  in_RETIRE_READ_RC           ;//[nb_inst_retire]
     85//sc_signal<Tspecial_address_t>   **  in_RETIRE_NUM_REG_RC_PHY    ;//[nb_inst_retire]
    8486  sc_signal<Tcontrol_t        >   **  in_RETIRE_WRITE_RD          ;//[nb_inst_retire]
    8587  sc_signal<Tcontrol_t        >   **  in_RETIRE_RESTORE_RD_PHY_OLD;//[nb_inst_retire]
     
    99101  ALLOC1_SC_SIGNAL( in_INSERT_VAL               ," in_INSERT_VAL               ",Tcontrol_t        ,_param->_nb_inst_insert);
    100102  ALLOC1_SC_SIGNAL(out_INSERT_ACK               ,"out_INSERT_ACK               ",Tcontrol_t        ,_param->_nb_inst_insert);
    101   ALLOC1_SC_SIGNAL( in_INSERT_READ_RA           ," in_INSERT_READ_RA           ",Tcontrol_t        ,_param->_nb_inst_insert);
    102   ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RA_PHY    ," in_INSERT_NUM_REG_RA_PHY    ",Tgeneral_address_t,_param->_nb_inst_insert);
    103   ALLOC1_SC_SIGNAL( in_INSERT_READ_RB           ," in_INSERT_READ_RB           ",Tcontrol_t        ,_param->_nb_inst_insert);
    104   ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RB_PHY    ," in_INSERT_NUM_REG_RB_PHY    ",Tgeneral_address_t,_param->_nb_inst_insert);
    105   ALLOC1_SC_SIGNAL( in_INSERT_READ_RC           ," in_INSERT_READ_RC           ",Tcontrol_t        ,_param->_nb_inst_insert);
    106   ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RC_PHY    ," in_INSERT_NUM_REG_RC_PHY    ",Tspecial_address_t,_param->_nb_inst_insert);
     103//ALLOC1_SC_SIGNAL( in_INSERT_READ_RA           ," in_INSERT_READ_RA           ",Tcontrol_t        ,_param->_nb_inst_insert);
     104//ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RA_PHY    ," in_INSERT_NUM_REG_RA_PHY    ",Tgeneral_address_t,_param->_nb_inst_insert);
     105//ALLOC1_SC_SIGNAL( in_INSERT_READ_RB           ," in_INSERT_READ_RB           ",Tcontrol_t        ,_param->_nb_inst_insert);
     106//ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RB_PHY    ," in_INSERT_NUM_REG_RB_PHY    ",Tgeneral_address_t,_param->_nb_inst_insert);
     107//ALLOC1_SC_SIGNAL( in_INSERT_READ_RC           ," in_INSERT_READ_RC           ",Tcontrol_t        ,_param->_nb_inst_insert);
     108//ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RC_PHY    ," in_INSERT_NUM_REG_RC_PHY    ",Tspecial_address_t,_param->_nb_inst_insert);
    107109  ALLOC1_SC_SIGNAL( in_INSERT_WRITE_RD          ," in_INSERT_WRITE_RD          ",Tcontrol_t        ,_param->_nb_inst_insert);
     110  ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_OLD," in_INSERT_NUM_REG_RD_PHY_OLD",Tgeneral_address_t,_param->_nb_inst_insert);
    108111  ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RD_PHY_NEW," in_INSERT_NUM_REG_RD_PHY_NEW",Tgeneral_address_t,_param->_nb_inst_insert);
    109112  ALLOC1_SC_SIGNAL( in_INSERT_WRITE_RE          ," in_INSERT_WRITE_RE          ",Tcontrol_t        ,_param->_nb_inst_insert);
     113  ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_OLD," in_INSERT_NUM_REG_RE_PHY_OLD",Tspecial_address_t,_param->_nb_inst_insert);
    110114  ALLOC1_SC_SIGNAL( in_INSERT_NUM_REG_RE_PHY_NEW," in_INSERT_NUM_REG_RE_PHY_NEW",Tspecial_address_t,_param->_nb_inst_insert);
    111115  ALLOC1_SC_SIGNAL( in_RETIRE_VAL               ," in_RETIRE_VAL               ",Tcontrol_t        ,_param->_nb_inst_retire);
    112116  ALLOC1_SC_SIGNAL(out_RETIRE_ACK               ,"out_RETIRE_ACK               ",Tcontrol_t        ,_param->_nb_inst_retire);
    113117  ALLOC1_SC_SIGNAL( in_RETIRE_RESTORE           ," in_RETIRE_RESTORE           ",Tcontrol_t        ,_param->_nb_inst_retire);
    114   ALLOC1_SC_SIGNAL( in_RETIRE_READ_RA           ," in_RETIRE_READ_RA           ",Tcontrol_t        ,_param->_nb_inst_retire);
    115   ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RA_PHY    ," in_RETIRE_NUM_REG_RA_PHY    ",Tgeneral_address_t,_param->_nb_inst_retire);
    116   ALLOC1_SC_SIGNAL( in_RETIRE_READ_RB           ," in_RETIRE_READ_RB           ",Tcontrol_t        ,_param->_nb_inst_retire);
    117   ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RB_PHY    ," in_RETIRE_NUM_REG_RB_PHY    ",Tgeneral_address_t,_param->_nb_inst_retire);
    118   ALLOC1_SC_SIGNAL( in_RETIRE_READ_RC           ," in_RETIRE_READ_RC           ",Tcontrol_t        ,_param->_nb_inst_retire);
    119   ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RC_PHY    ," in_RETIRE_NUM_REG_RC_PHY    ",Tspecial_address_t,_param->_nb_inst_retire);
     118//ALLOC1_SC_SIGNAL( in_RETIRE_READ_RA           ," in_RETIRE_READ_RA           ",Tcontrol_t        ,_param->_nb_inst_retire);
     119//ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RA_PHY    ," in_RETIRE_NUM_REG_RA_PHY    ",Tgeneral_address_t,_param->_nb_inst_retire);
     120//ALLOC1_SC_SIGNAL( in_RETIRE_READ_RB           ," in_RETIRE_READ_RB           ",Tcontrol_t        ,_param->_nb_inst_retire);
     121//ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RB_PHY    ," in_RETIRE_NUM_REG_RB_PHY    ",Tgeneral_address_t,_param->_nb_inst_retire);
     122//ALLOC1_SC_SIGNAL( in_RETIRE_READ_RC           ," in_RETIRE_READ_RC           ",Tcontrol_t        ,_param->_nb_inst_retire);
     123//ALLOC1_SC_SIGNAL( in_RETIRE_NUM_REG_RC_PHY    ," in_RETIRE_NUM_REG_RC_PHY    ",Tspecial_address_t,_param->_nb_inst_retire);
    120124  ALLOC1_SC_SIGNAL( in_RETIRE_WRITE_RD          ," in_RETIRE_WRITE_RD          ",Tcontrol_t        ,_param->_nb_inst_retire);
    121125  ALLOC1_SC_SIGNAL( in_RETIRE_RESTORE_RD_PHY_OLD," in_RETIRE_RESTORE_RD_PHY_OLD",Tcontrol_t        ,_param->_nb_inst_retire);
     
    145149  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_VAL               ,_param->_nb_inst_insert);
    146150  INSTANCE1_SC_SIGNAL(_Stat_List_unit,out_INSERT_ACK               ,_param->_nb_inst_insert);
    147   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RA           ,_param->_nb_inst_insert);
    148   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RA_PHY    ,_param->_nb_inst_insert);
    149   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RB           ,_param->_nb_inst_insert);
    150   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RB_PHY    ,_param->_nb_inst_insert);
    151   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RC           ,_param->_nb_inst_insert);
    152   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert);
     151//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RA           ,_param->_nb_inst_insert);
     152//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RA_PHY    ,_param->_nb_inst_insert);
     153//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RB           ,_param->_nb_inst_insert);
     154//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RB_PHY    ,_param->_nb_inst_insert);
     155//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_READ_RC           ,_param->_nb_inst_insert);
     156//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert);
    153157  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_WRITE_RD          ,_param->_nb_inst_insert);
     158  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert);
    154159  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert);
    155160  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_WRITE_RE          ,_param->_nb_inst_insert);
     161  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert);
    156162  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert);
    157163
     
    159165  INSTANCE1_SC_SIGNAL(_Stat_List_unit,out_RETIRE_ACK               ,_param->_nb_inst_retire);
    160166  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_RESTORE           ,_param->_nb_inst_retire);
    161   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RA           ,_param->_nb_inst_retire);
    162   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RA_PHY    ,_param->_nb_inst_retire);
    163   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RB           ,_param->_nb_inst_retire);
    164   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RB_PHY    ,_param->_nb_inst_retire);
    165   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RC           ,_param->_nb_inst_retire);
    166   INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RC_PHY    ,_param->_nb_inst_retire);
     167//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RA           ,_param->_nb_inst_retire);
     168//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RA_PHY    ,_param->_nb_inst_retire);
     169//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RB           ,_param->_nb_inst_retire);
     170//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RB_PHY    ,_param->_nb_inst_retire);
     171//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_READ_RC           ,_param->_nb_inst_retire);
     172//INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_NUM_REG_RC_PHY    ,_param->_nb_inst_retire);
    167173  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_WRITE_RD          ,_param->_nb_inst_retire);
    168174  INSTANCE1_SC_SIGNAL(_Stat_List_unit, in_RETIRE_RESTORE_RD_PHY_OLD,_param->_nb_inst_retire);
     
    348354
    349355              in_INSERT_VAL                [i]->write((rand()%100) < percent_transaction_insert);
    350               in_INSERT_READ_RA            [i]->write(read_ra );
    351               in_INSERT_NUM_REG_RA_PHY     [i]->write(ra);
    352               in_INSERT_READ_RB            [i]->write(read_rb );
    353               in_INSERT_NUM_REG_RB_PHY     [i]->write(rb);
    354               in_INSERT_READ_RC            [i]->write(read_rc );
    355               in_INSERT_NUM_REG_RC_PHY     [i]->write(rc);
     356//            in_INSERT_READ_RA            [i]->write(read_ra );
     357//            in_INSERT_NUM_REG_RA_PHY     [i]->write(ra);
     358//            in_INSERT_READ_RB            [i]->write(read_rb );
     359//            in_INSERT_NUM_REG_RB_PHY     [i]->write(rb);
     360//            in_INSERT_READ_RC            [i]->write(read_rc );
     361//            in_INSERT_NUM_REG_RC_PHY     [i]->write(rc);
    356362              in_INSERT_WRITE_RD           [i]->write(write_rd);
    357363              in_INSERT_NUM_REG_RD_PHY_NEW [i]->write(rd);
     
    394400
    395401              in_RETIRE_VAL                [i]->write((rand()%100) < percent_transaction_retire);
    396               in_RETIRE_READ_RA            [i]->write(read_ra );
    397               in_RETIRE_RESTORE            [i]->write(0);
    398               in_RETIRE_NUM_REG_RA_PHY     [i]->write(ra);
    399               in_RETIRE_READ_RB            [i]->write(read_rb );
    400               in_RETIRE_NUM_REG_RB_PHY     [i]->write(rb);
    401               in_RETIRE_READ_RC            [i]->write(read_rc );
    402               in_RETIRE_NUM_REG_RC_PHY     [i]->write(rc);
     402//            in_RETIRE_READ_RA            [i]->write(read_ra );
     403//            in_RETIRE_RESTORE            [i]->write(0);
     404//            in_RETIRE_NUM_REG_RA_PHY     [i]->write(ra);
     405//            in_RETIRE_READ_RB            [i]->write(read_rb );
     406//            in_RETIRE_NUM_REG_RB_PHY     [i]->write(rb);
     407//            in_RETIRE_READ_RC            [i]->write(read_rc );
     408//            in_RETIRE_NUM_REG_RC_PHY     [i]->write(rc);
    403409              in_RETIRE_WRITE_RD           [i]->write(write_rd);
    404410              in_RETIRE_RESTORE_RD_PHY_OLD [i]->write(0);
     
    454460              if (in_INSERT_VAL [i]->read() and out_INSERT_ACK [i]->read())
    455461                {
    456                   Tcontrol_t         read_ra  = in_INSERT_READ_RA            [i]->read();
    457                   Tgeneral_address_t ra       = in_INSERT_NUM_REG_RA_PHY     [i]->read();
    458                   Tcontrol_t         read_rb  = in_INSERT_READ_RB            [i]->read();
    459                   Tgeneral_address_t rb       = in_INSERT_NUM_REG_RB_PHY     [i]->read();
    460                   Tcontrol_t         read_rc  = in_INSERT_READ_RC            [i]->read();
    461                   Tspecial_address_t rc       = in_INSERT_NUM_REG_RC_PHY     [i]->read();
     462//                Tcontrol_t         read_ra  = in_INSERT_READ_RA            [i]->read();
     463//                Tgeneral_address_t ra       = in_INSERT_NUM_REG_RA_PHY     [i]->read();
     464//                Tcontrol_t         read_rb  = in_INSERT_READ_RB            [i]->read();
     465//                Tgeneral_address_t rb       = in_INSERT_NUM_REG_RB_PHY     [i]->read();
     466//                Tcontrol_t         read_rc  = in_INSERT_READ_RC            [i]->read();
     467//                Tspecial_address_t rc       = in_INSERT_NUM_REG_RC_PHY     [i]->read();
    462468                  Tgeneral_address_t rd_new   = in_INSERT_NUM_REG_RD_PHY_NEW [i]->read();
    463469                  Tspecial_address_t re_new   = in_INSERT_NUM_REG_RE_PHY_NEW [i]->read();               
    464470                 
    465471                  LABEL("INSERT [%d] - Accepted",i);
    466                   LABEL(" * read_ra          : %d",read_ra );
    467                   LABEL(" * reg_ra           : %d",ra      );
    468                   LABEL("   * status[%d]._is_free  : %d",ra,spr_status[ra]._is_free );
    469                   LABEL("   * status[%d]._is_link  : %d",ra,spr_status[ra]._is_link );
    470                   LABEL("   * status[%d]._is_valid : %d",ra,spr_status[ra]._is_valid);
    471                   LABEL("   * status[%d]._counter  : %d",ra,spr_status[ra]._counter );
    472                   LABEL(" * read_rb          : %d",read_rb );
    473                   LABEL(" * reg_rb           : %d",rb      );
    474                   LABEL("   * status[%d]._is_free  : %d",rb,spr_status[rb]._is_free );
    475                   LABEL("   * status[%d]._is_link  : %d",rb,spr_status[rb]._is_link );
    476                   LABEL("   * status[%d]._is_valid : %d",rb,spr_status[rb]._is_valid);
    477                   LABEL("   * status[%d]._counter  : %d",rb,spr_status[rb]._counter );
    478                   LABEL(" * read_rc          : %d",read_rc );
    479                   LABEL(" * reg_rc           : %d",rc      );
    480                   LABEL("   * status[%d]._is_free  : %d",rc,spr_status[rc]._is_free );
    481                   LABEL("   * status[%d]._is_link  : %d",rc,spr_status[rc]._is_link );
    482                   LABEL("   * status[%d]._is_valid : %d",rc,spr_status[rc]._is_valid);
    483                   LABEL("   * status[%d]._counter  : %d",rc,spr_status[rc]._counter );
     472//                LABEL(" * read_ra          : %d",read_ra );
     473//                LABEL(" * reg_ra           : %d",ra      );
     474//                LABEL("   * status[%d]._is_free  : %d",ra,spr_status[ra]._is_free );
     475//                LABEL("   * status[%d]._is_link  : %d",ra,spr_status[ra]._is_link );
     476//                LABEL("   * status[%d]._is_valid : %d",ra,spr_status[ra]._is_valid);
     477//                LABEL("   * status[%d]._counter  : %d",ra,spr_status[ra]._counter );
     478//                LABEL(" * read_rb          : %d",read_rb );
     479//                LABEL(" * reg_rb           : %d",rb      );
     480//                LABEL("   * status[%d]._is_free  : %d",rb,spr_status[rb]._is_free );
     481//                LABEL("   * status[%d]._is_link  : %d",rb,spr_status[rb]._is_link );
     482//                LABEL("   * status[%d]._is_valid : %d",rb,spr_status[rb]._is_valid);
     483//                LABEL("   * status[%d]._counter  : %d",rb,spr_status[rb]._counter );
     484//                LABEL(" * read_rc          : %d",read_rc );
     485//                LABEL(" * reg_rc           : %d",rc      );
     486//                LABEL("   * status[%d]._is_free  : %d",rc,spr_status[rc]._is_free );
     487//                LABEL("   * status[%d]._is_link  : %d",rc,spr_status[rc]._is_link );
     488//                LABEL("   * status[%d]._is_valid : %d",rc,spr_status[rc]._is_valid);
     489//                LABEL("   * status[%d]._counter  : %d",rc,spr_status[rc]._counter );
    484490                  LABEL(" * read_rd          : %d",write_rd);
    485491                  LABEL(" * reg_rd_new       : %d",rd_new  );
     
    495501                  LABEL("   * status[%d]._counter  : %d",re_new,spr_status[re_new]._counter );
    496502                 
    497                   if (read_ra)
    498                     {
    499                       gpr_status[ra]._counter ++;
    500                     }
    501                   if (read_rb)
    502                     {
    503                       gpr_status[rb]._counter ++;
    504                     }
    505                   if (read_rc)
    506                     {
    507                       spr_status[rc]._counter ++;
    508                     }
     503//                if (read_ra)
     504//                  {
     505//                    gpr_status[ra]._counter ++;
     506//                  }
     507//                if (read_rb)
     508//                  {
     509//                    gpr_status[rb]._counter ++;
     510//                  }
     511//                if (read_rc)
     512//                  {
     513//                    spr_status[rc]._counter ++;
     514//                  }
    509515                  if (write_rd)
    510516                    {
     
    544550              {
    545551                Tcontrol_t         restore        = in_RETIRE_RESTORE            [i]->read();
    546                 Tcontrol_t         read_ra        = in_RETIRE_READ_RA            [i]->read();
    547                 Tgeneral_address_t ra             = in_RETIRE_NUM_REG_RA_PHY     [i]->read();
    548                 Tcontrol_t         read_rb        = in_RETIRE_READ_RB            [i]->read();
    549                 Tgeneral_address_t rb             = in_RETIRE_NUM_REG_RB_PHY     [i]->read();
    550                 Tcontrol_t         read_rc        = in_RETIRE_READ_RC            [i]->read();
    551                 Tspecial_address_t rc             = in_RETIRE_NUM_REG_RC_PHY     [i]->read();
     552//              Tcontrol_t         read_ra        = in_RETIRE_READ_RA            [i]->read();
     553//              Tgeneral_address_t ra             = in_RETIRE_NUM_REG_RA_PHY     [i]->read();
     554//              Tcontrol_t         read_rb        = in_RETIRE_READ_RB            [i]->read();
     555//              Tgeneral_address_t rb             = in_RETIRE_NUM_REG_RB_PHY     [i]->read();
     556//              Tcontrol_t         read_rc        = in_RETIRE_READ_RC            [i]->read();
     557//              Tspecial_address_t rc             = in_RETIRE_NUM_REG_RC_PHY     [i]->read();
    552558                Tcontrol_t         write_rd       = in_RETIRE_WRITE_RD           [i]->read();
    553559                Tcontrol_t         restore_rd_old = in_RETIRE_RESTORE_RD_PHY_OLD [i]->read();
     
    561567                LABEL("RETIRE [%d] - Accepted",i);
    562568                LABEL(" * restore          : %d",restore);
    563                 LABEL(" * read_ra          : %d",read_ra );
    564                 LABEL(" * reg_ra           : %d",ra      );
    565                 LABEL("   * status[%d]._is_free  : %d",ra,spr_status[ra]._is_free );
    566                 LABEL("   * status[%d]._is_link  : %d",ra,spr_status[ra]._is_link );
    567                 LABEL("   * status[%d]._is_valid : %d",ra,spr_status[ra]._is_valid);
    568                 LABEL("   * status[%d]._counter  : %d",ra,spr_status[ra]._counter );
    569                 LABEL(" * read_rb          : %d",read_rb );
    570                 LABEL(" * reg_rb           : %d",rb      );
    571                 LABEL("   * status[%d]._is_free  : %d",rb,spr_status[rb]._is_free );
    572                 LABEL("   * status[%d]._is_link  : %d",rb,spr_status[rb]._is_link );
    573                 LABEL("   * status[%d]._is_valid : %d",rb,spr_status[rb]._is_valid);
    574                 LABEL("   * status[%d]._counter  : %d",rb,spr_status[rb]._counter );
    575                 LABEL(" * read_rc          : %d",read_rc );
    576                 LABEL(" * reg_rc           : %d",rc      );
    577                 LABEL("   * status[%d]._is_free  : %d",rc,spr_status[rc]._is_free );
    578                 LABEL("   * status[%d]._is_link  : %d",rc,spr_status[rc]._is_link );
    579                 LABEL("   * status[%d]._is_valid : %d",rc,spr_status[rc]._is_valid);
    580                 LABEL("   * status[%d]._counter  : %d",rc,spr_status[rc]._counter );
     569//              LABEL(" * read_ra          : %d",read_ra );
     570//              LABEL(" * reg_ra           : %d",ra      );
     571//              LABEL("   * status[%d]._is_free  : %d",ra,spr_status[ra]._is_free );
     572//              LABEL("   * status[%d]._is_link  : %d",ra,spr_status[ra]._is_link );
     573//              LABEL("   * status[%d]._is_valid : %d",ra,spr_status[ra]._is_valid);
     574//              LABEL("   * status[%d]._counter  : %d",ra,spr_status[ra]._counter );
     575//              LABEL(" * read_rb          : %d",read_rb );
     576//              LABEL(" * reg_rb           : %d",rb      );
     577//              LABEL("   * status[%d]._is_free  : %d",rb,spr_status[rb]._is_free );
     578//              LABEL("   * status[%d]._is_link  : %d",rb,spr_status[rb]._is_link );
     579//              LABEL("   * status[%d]._is_valid : %d",rb,spr_status[rb]._is_valid);
     580//              LABEL("   * status[%d]._counter  : %d",rb,spr_status[rb]._counter );
     581//              LABEL(" * read_rc          : %d",read_rc );
     582//              LABEL(" * reg_rc           : %d",rc      );
     583//              LABEL("   * status[%d]._is_free  : %d",rc,spr_status[rc]._is_free );
     584//              LABEL("   * status[%d]._is_link  : %d",rc,spr_status[rc]._is_link );
     585//              LABEL("   * status[%d]._is_valid : %d",rc,spr_status[rc]._is_valid);
     586//              LABEL("   * status[%d]._counter  : %d",rc,spr_status[rc]._counter );
    581587                LABEL(" * read_rd          : %d",write_rd);
    582588                LABEL(" * restore_rd_old   : %d",restore_rd_old);
     
    604610                LABEL("   * status[%d]._counter  : %d",re_new,spr_status[re_new]._counter );
    605611
    606                 if (read_ra)
    607                   {
    608                     gpr_status[ra]._counter --;
    609                   }
    610                 if (read_rb)
    611                   {
    612                     gpr_status[rb]._counter --;
    613                   }
    614                 if (read_rc)
    615                   {
    616                     spr_status[rc]._counter --;
    617                   }
     612//              if (read_ra)
     613//                {
     614//                  gpr_status[ra]._counter --;
     615//                }
     616//              if (read_rb)
     617//                {
     618//                  gpr_status[rb]._counter --;
     619//                }
     620//              if (read_rc)
     621//                {
     622//                  spr_status[rc]._counter --;
     623//                }
    618624                if (write_rd)
    619625                  {
     
    721727  delete []  in_INSERT_VAL               ;
    722728  delete [] out_INSERT_ACK               ;
    723   delete []  in_INSERT_READ_RA           ;
    724   delete []  in_INSERT_NUM_REG_RA_PHY    ;
    725   delete []  in_INSERT_READ_RB           ;
    726   delete []  in_INSERT_NUM_REG_RB_PHY    ;
    727   delete []  in_INSERT_READ_RC           ;
    728   delete []  in_INSERT_NUM_REG_RC_PHY    ;
     729//delete []  in_INSERT_READ_RA           ;
     730//delete []  in_INSERT_NUM_REG_RA_PHY    ;
     731//delete []  in_INSERT_READ_RB           ;
     732//delete []  in_INSERT_NUM_REG_RB_PHY    ;
     733//delete []  in_INSERT_READ_RC           ;
     734//delete []  in_INSERT_NUM_REG_RC_PHY    ;
    729735  delete []  in_INSERT_WRITE_RD          ;
     736  delete []  in_INSERT_NUM_REG_RD_PHY_OLD;
    730737  delete []  in_INSERT_NUM_REG_RD_PHY_NEW;
    731738  delete []  in_INSERT_WRITE_RE          ;
     739  delete []  in_INSERT_NUM_REG_RE_PHY_OLD;
    732740  delete []  in_INSERT_NUM_REG_RE_PHY_NEW;
    733741  delete []  in_RETIRE_VAL               ;
    734742  delete [] out_RETIRE_ACK               ;
    735743  delete []  in_RETIRE_RESTORE           ;
    736   delete []  in_RETIRE_READ_RA           ;
    737   delete []  in_RETIRE_NUM_REG_RA_PHY    ;
    738   delete []  in_RETIRE_READ_RB           ;
    739   delete []  in_RETIRE_NUM_REG_RB_PHY    ;
    740   delete []  in_RETIRE_READ_RC           ;
    741   delete []  in_RETIRE_NUM_REG_RC_PHY    ;
     744//delete []  in_RETIRE_READ_RA           ;
     745//delete []  in_RETIRE_NUM_REG_RA_PHY    ;
     746//delete []  in_RETIRE_READ_RB           ;
     747//delete []  in_RETIRE_NUM_REG_RB_PHY    ;
     748//delete []  in_RETIRE_READ_RC           ;
     749//delete []  in_RETIRE_NUM_REG_RC_PHY    ;
    742750  delete []  in_RETIRE_WRITE_RD          ;
    743751  delete []  in_RETIRE_RESTORE_RD_PHY_OLD;
  • 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

    r112 r117  
    7272  public    : SC_IN (Tspecial_address_t)   **  in_INSERT_NUM_REG_RC_PHY    ;//[nb_inst_insert]
    7373  public    : SC_IN (Tcontrol_t        )   **  in_INSERT_WRITE_RD          ;//[nb_inst_insert]
     74  public    : SC_IN (Tgeneral_address_t)   **  in_INSERT_NUM_REG_RD_PHY_OLD;//[nb_inst_insert]
    7475  public    : SC_IN (Tgeneral_address_t)   **  in_INSERT_NUM_REG_RD_PHY_NEW;//[nb_inst_insert]
    7576  public    : SC_IN (Tcontrol_t        )   **  in_INSERT_WRITE_RE          ;//[nb_inst_insert]
     77  public    : SC_IN (Tspecial_address_t)   **  in_INSERT_NUM_REG_RE_PHY_OLD;//[nb_inst_insert]
    7678  public    : SC_IN (Tspecial_address_t)   **  in_INSERT_NUM_REG_RE_PHY_NEW;//[nb_inst_insert]
    77 
     79 
    7880    // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7981  public    : SC_IN (Tcontrol_t        )   **  in_RETIRE_VAL               ;//[nb_inst_retire]
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/include/Types.h

    r112 r117  
    2323  class stat_list_entry_t
    2424  {
    25   public : bool     _is_free ; // set = is present in free list
    26   public : bool     _is_link ; // set = is present in rat
    27 //public : bool     _is_valid; // set = an instruction have write in this register
    28 //public : uint32_t _counter ; // number of register that must read this register
     25  public : bool     _is_free      ; // set = is present in free list
     26  public : bool     _is_link      ; // set = is present in rat
     27  public : bool     _is_use       ; // set = is present in ROB (used by an instruction as destination)
     28                                    // not necesseray in single thread mode : because an thread can't rename when they have an event
     29                                    // in multi thread, the renaming continue and an old register can be reused
    2930
    3031  public :  stat_list_entry_t (void) {};
     
    3536      _is_free  = 0;
    3637      _is_link  = is_link;
    37 //    _is_valid = 1;
    38 //    _counter  = 0;
     38      _is_use   = is_link;
    3939    }
    4040
    41 //   public : void insert_read (void)
    42 //     {
    43 //    _counter ++;
    44 //     }
     41  public : void insert_write_old (void)
     42    {
     43      // old is not in the rat, but is already used (if miss prediction or event)
     44      _is_link  = 0;
     45    }
    4546
    46   public : void insert_write (void)
     47  public : void insert_write_new (void)
    4748    {
    4849      _is_free  = 0;
    4950      _is_link  = 1;
    50 //    _is_valid = 0;
     51      _is_use   = 1;
    5152    }
    52 
    53 //   public : void retire_read (void)
    54 //     {
    55 //    _counter --;
    56 //     }
    5753
    5854  public : void retire_write_old (bool restore, bool restore_old)
     
    6258      // 1       0           0       - event and previous update
    6359      // 1       1           1       - event and first update
    64      
    65       _is_link = restore and restore_old;
     60   
     61      if (restore and restore_old)
     62        {
     63          _is_link = 1;
     64//        _is_use  = 1; // already set
     65        }
     66      else
     67        {
     68//        _is_link = 0; // already unset
     69          _is_use  = 0;
     70        }
     71       
    6672    }
    6773
     
    7379
    7480      if (restore)
    75         _is_link = 0;
     81        {
     82          // test if is the actual mapping (in RAT)
     83          if (_is_link)
     84            _is_use = 0;
    7685
    77       // in all case
    78 //    _is_valid = 1;
     86          _is_link = 0;
     87        }
    7988    }
    8089
     
    8493    }
    8594
    86 //   public : bool can_insert_read (uint32_t max_reader)
    87 //     {
    88 //    return ((_counter+1) < max_reader);
    89 //     }
    90 
    9195  public : bool can_free (void)
    9296    {
    9397      return ((_is_free  == 0) and
    94               (_is_link  == 0) // and
    95 //            (_is_valid == 1) and // if is_link <- 0, then retire_write_old or reset
    96 //            (_counter  == 0)
    97               );
     98              (_is_link  == 0) and
     99              (_is_use   == 0));
    98100    }
    99101
     
    102104    {
    103105      output << x._is_free  << " "
    104              << x._is_link  // << " "
    105 //           << x._is_valid  << " "
    106 //              << x._counter
    107         ;
     106             << x._is_link  << " "
     107             << x._is_use ;
    108108     
    109109      return output;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_allocation.cpp

    r112 r117  
    6969       ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RC_PHY    ,"num_reg_rc_phy"    ,Tspecial_address_t,_param->_size_special_register);
    7070       ALLOC1_SIGNAL_IN ( in_INSERT_WRITE_RD          ,"write_rd"          ,Tcontrol_t        ,1                             );
     71       ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RD_PHY_OLD,"num_reg_rd_phy_old",Tgeneral_address_t,_param->_size_general_register);
    7172       ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RD_PHY_NEW,"num_reg_rd_phy_new",Tgeneral_address_t,_param->_size_general_register);
    7273       ALLOC1_SIGNAL_IN ( in_INSERT_WRITE_RE          ,"write_re"          ,Tcontrol_t        ,1                             );
     74       ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RE_PHY_OLD,"num_reg_re_phy_old",Tspecial_address_t,_param->_size_special_register);
    7375       ALLOC1_SIGNAL_IN ( in_INSERT_NUM_REG_RE_PHY_NEW,"num_reg_re_phy_new",Tspecial_address_t,_param->_size_special_register);
    74 
     76 
    7577       ALLOC1_INTERFACE_END(_param->_nb_inst_insert);
    7678     }
    77 
     79 
    7880     // ~~~~~[ Interface "retire" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7981     {
    8082       ALLOC1_INTERFACE_BEGIN("retire",IN,NORTH,_("Retire a renaming result"),_param->_nb_inst_retire);
    81 
     83 
    8284       ALLOC1_VALACK_IN ( in_RETIRE_VAL               ,VAL);
    8385       ALLOC1_VALACK_OUT(out_RETIRE_ACK               ,ACK);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_deallocation.cpp

    r112 r117  
    3939        DELETE1_SIGNAL( in_INSERT_NUM_REG_RC_PHY    ,_param->_nb_inst_insert,_param->_size_special_register);
    4040        DELETE1_SIGNAL( in_INSERT_WRITE_RD          ,_param->_nb_inst_insert,1                             );
     41        DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_PHY_OLD,_param->_nb_inst_insert,_param->_size_general_register);
    4142        DELETE1_SIGNAL( in_INSERT_NUM_REG_RD_PHY_NEW,_param->_nb_inst_insert,_param->_size_general_register);
    4243        DELETE1_SIGNAL( in_INSERT_WRITE_RE          ,_param->_nb_inst_insert,1                             );
     44        DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_PHY_OLD,_param->_nb_inst_insert,_param->_size_special_register);
    4345        DELETE1_SIGNAL( in_INSERT_NUM_REG_RE_PHY_NEW,_param->_nb_inst_insert,_param->_size_special_register);
    44 
     46 
    4547        DELETE1_SIGNAL( in_RETIRE_VAL               ,_param->_nb_inst_retire,1);
    4648        DELETE1_SIGNAL(out_RETIRE_ACK               ,_param->_nb_inst_retire,1);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/Stat_List_unit/src/Stat_List_unit_transition.cpp

    r112 r117  
    8686              if (PORT_READ(in_INSERT_WRITE_RD [i]))
    8787                {
    88                   Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RD_PHY_NEW [i]);
    89 
    90                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg new : %d",num_reg);
    91 
    92                   uint32_t bank = num_reg >> _param->_shift_gpr;
    93                   uint32_t reg  = num_reg  & _param->_mask_gpr ;
    94                   gpr_stat_list [bank][reg].insert_write();
     88                  {
     89                    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RD_PHY_OLD [i]);
     90                   
     91                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg old : %d",num_reg);
     92                   
     93                    uint32_t bank = num_reg >> _param->_shift_gpr;
     94                    uint32_t reg  = num_reg  & _param->_mask_gpr ;
     95                    gpr_stat_list [bank][reg].insert_write_old();
     96                  }
     97                  {
     98                    Tgeneral_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RD_PHY_NEW [i]);
     99                   
     100                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RD - num_reg new : %d",num_reg);
     101                   
     102                    uint32_t bank = num_reg >> _param->_shift_gpr;
     103                    uint32_t reg  = num_reg  & _param->_mask_gpr ;
     104                    gpr_stat_list [bank][reg].insert_write_new();
     105                  }
    95106                }
    96107
    97108              if (PORT_READ(in_INSERT_WRITE_RE [i]))
    98109                {
    99                   Tspecial_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RE_PHY_NEW [i]);
    100 
    101                   log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg new : %d",num_reg);
    102 
    103                   uint32_t bank = num_reg >> _param->_shift_spr;
    104                   uint32_t reg  = num_reg  & _param->_mask_spr ;
    105                   spr_stat_list [bank][reg].insert_write();
    106                 }
     110                  {
     111                    Tspecial_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RE_PHY_OLD [i]);
     112                   
     113                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg old : %d",num_reg);
     114                   
     115                    uint32_t bank = num_reg >> _param->_shift_spr;
     116                    uint32_t reg  = num_reg  & _param->_mask_spr ;
     117                    spr_stat_list [bank][reg].insert_write_old();
     118                  }
     119                  {
     120                    Tspecial_address_t num_reg = PORT_READ(in_INSERT_NUM_REG_RE_PHY_NEW [i]);
     121                   
     122                    log_printf(TRACE,Stat_List_unit,FUNCTION,"    * WRITE_RE - num_reg new : %d",num_reg);
     123                   
     124                    uint32_t bank = num_reg >> _param->_shift_spr;
     125                    uint32_t reg  = num_reg  & _param->_mask_spr ;
     126                    spr_stat_list [bank][reg].insert_write_new();
     127                  }
     128                }
    107129            }
    108130
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_OOO_Engine/OOO_Engine/Rename_unit/Register_translation_unit/src/Register_translation_unit_allocation.cpp

    r112 r117  
    638638          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_WRITE_RD"          ,
    639639                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_WRITE_RD"          );
     640          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_NUM_REG_RD_PHY_OLD",
     641                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_NUM_REG_RD_PHY_OLD");
    640642          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_NUM_REG_RD_PHY_NEW",
    641643                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_NUM_REG_RD_PHY_NEW");
    642644          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_WRITE_RE"          ,
    643645                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_WRITE_RE"          );
     646          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_NUM_REG_RE_PHY_OLD",
     647                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_NUM_REG_RE_PHY_OLD");
    644648          COMPONENT_MAP(_component,src , "in_INSERT_"+toString(i)+"_NUM_REG_RE_PHY_NEW",
    645649                                   dest,"out_INSERT_"+toString(i)+"_STAT_LIST_NUM_REG_RE_PHY_NEW");
Note: See TracChangeset for help on using the changeset viewer.