Ignore:
Timestamp:
Dec 4, 2007, 2:31:54 PM (17 years ago)
Author:
rosiere
Message:

Modification en profondeur de Component-port_map.
Compilation ok pour Register_unit ... a tester (systemC et vhdl)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Generic/RegisterFile/src/RegisterFile_allocation.cpp

    r53 r62  
    2828    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2929
    30      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param._nb_port_read];
    31     out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];
    32      in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param._nb_port_read];
    33     out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param._nb_port_read];
     30     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
     31    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
     32    if (_param->_have_port_address == true)
     33     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
     34    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
    3435
    35     for (uint32_t i=0; i<_param._nb_port_read; i++)
     36    for (uint32_t i=0; i<_param->_nb_port_read; i++)
    3637      {
    3738        rename =  "in_READ_"+toString(i)+"_VAL"    ;
     
    3940        rename = "out_READ_"+toString(i)+"_ACK"    ;
    4041        out_READ_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
     42        if (_param->_have_port_address == true)
     43          {
    4144        rename =  "in_READ_"+toString(i)+"_ADDRESS";
    4245         in_READ_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
     46          }
    4347        rename = "out_READ_"+toString(i)+"_DATA"   ;
    4448        out_READ_DATA    [i]  = new SC_OUT(Tdata_t   ) (rename.c_str());
     
    4751    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    4852
    49      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param._nb_port_write];
    50     out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];
    51      in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param._nb_port_write];
    52      in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param._nb_port_write];
     53     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
     54    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
     55    if (_param->_have_port_address == true)
     56     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
     57     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
    5358   
    54     for (uint32_t i=0; i<_param._nb_port_write; i++)
     59    for (uint32_t i=0; i<_param->_nb_port_write; i++)
    5560      {
    5661        rename =  "in_WRITE_"+toString(i)+"_VAL"    ;
     
    5863        rename = "out_WRITE_"+toString(i)+"_ACK"    ;
    5964        out_WRITE_ACK     [i]  = new SC_OUT(Tcontrol_t) (rename.c_str());
     65        if (_param->_have_port_address == true)
     66          {
    6067        rename =  "in_WRITE_"+toString(i)+"_ADDRESS";
    6168         in_WRITE_ADDRESS [i]  = new SC_IN (Taddress_t) (rename.c_str());
     69          }
    6270        rename =  "in_WRITE_"+toString(i)+"_DATA"   ;
    6371         in_WRITE_DATA    [i]  = new SC_IN (Tdata_t   ) (rename.c_str());
     
    6573
    6674    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                               
    67     if (_param._instance == instance_RegisterFile_Monolithic)
     75    if (_param->_instance == instance_RegisterFile_Monolithic)
    6876    // =====[ component_RegisterFile_Monolithic ]=========================
    6977      {
     
    7280                                                                                                                                                                               ,_param_statistics
    7381#endif
    74                                                                                                                                                                                ,*(_param._param_registerfile_monolithic)
     82                                                                                                                                                                               ,_param->_param_registerfile_monolithic
    7583                                                                                                                                                                               );
    7684       
     
    8391                                                                                                                                                                                ,_param_statistics
    8492#endif
    85                                                                                                                                                                                 ,*(_param._param_registerfile_multi_banked)
     93                                                                                                                                                                                ,_param->_param_registerfile_multi_banked
    8694                                                                                                                                                                                );
    8795       
     
    8997    // ~~~~~[ Component - Instanciation ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9098
    91     if (_param._instance == instance_RegisterFile_Monolithic)
     99    if (_param->_instance == instance_RegisterFile_Monolithic)
    92100    // =====[ Component_RegisterFile_Monolithic - Instanciation ]=========
    93101      {
     
    95103        (*(component_RegisterFile_Monolithic  ->in_NRESET)) (*(in_NRESET));
    96104       
    97         for (uint32_t i=0; i<_param._nb_port_read; i++)
     105        for (uint32_t i=0; i<_param->_nb_port_read; i++)
    98106          {
    99107            (*(component_RegisterFile_Monolithic  -> in_READ_VAL     [i])) (*( in_READ_VAL     [i]));   
    100108            (*(component_RegisterFile_Monolithic  ->out_READ_ACK     [i])) (*(out_READ_ACK     [i]));
     109            if (_param->_have_port_address == true)
    101110            (*(component_RegisterFile_Monolithic  -> in_READ_ADDRESS [i])) (*( in_READ_ADDRESS [i]));
    102111            (*(component_RegisterFile_Monolithic  ->out_READ_DATA    [i])) (*(out_READ_DATA    [i]));
    103112          }
    104113       
    105         for (uint32_t i=0; i<_param._nb_port_write; i++)
     114        for (uint32_t i=0; i<_param->_nb_port_write; i++)
    106115          {
    107116            (*(component_RegisterFile_Monolithic  -> in_WRITE_VAL     [i])) (*( in_WRITE_VAL     [i]));
    108117            (*(component_RegisterFile_Monolithic  ->out_WRITE_ACK     [i])) (*(out_WRITE_ACK     [i]));
     118            if (_param->_have_port_address == true)
    109119            (*(component_RegisterFile_Monolithic  -> in_WRITE_ADDRESS [i])) (*( in_WRITE_ADDRESS [i]));
    110120            (*(component_RegisterFile_Monolithic  -> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
     
    117127        (*(component_RegisterFile_Multi_Banked->in_NRESET)) (*(in_NRESET));
    118128       
    119         for (uint32_t i=0; i<_param._nb_port_read; i++)
     129        for (uint32_t i=0; i<_param->_nb_port_read; i++)
    120130          {
    121131            (*(component_RegisterFile_Multi_Banked-> in_READ_VAL     [i])) (*( in_READ_VAL     [i]));   
    122132            (*(component_RegisterFile_Multi_Banked->out_READ_ACK     [i])) (*(out_READ_ACK     [i]));
     133            if (_param->_have_port_address == true)
    123134            (*(component_RegisterFile_Multi_Banked-> in_READ_ADDRESS [i])) (*( in_READ_ADDRESS [i]));
    124135            (*(component_RegisterFile_Multi_Banked->out_READ_DATA    [i])) (*(out_READ_DATA    [i]));
    125136          }
    126137       
    127         for (uint32_t i=0; i<_param._nb_port_write; i++)
     138        for (uint32_t i=0; i<_param->_nb_port_write; i++)
    128139          {
    129140            (*(component_RegisterFile_Multi_Banked-> in_WRITE_VAL     [i])) (*( in_WRITE_VAL     [i]));
    130141            (*(component_RegisterFile_Multi_Banked->out_WRITE_ACK     [i])) (*(out_WRITE_ACK     [i]));
     142            if (_param->_have_port_address == true)
    131143            (*(component_RegisterFile_Multi_Banked-> in_WRITE_ADDRESS [i])) (*( in_WRITE_ADDRESS [i]));
    132144            (*(component_RegisterFile_Multi_Banked-> in_WRITE_DATA    [i])) (*( in_WRITE_DATA    [i]));
     
    134146      }
    135147
    136     if (_param._instance == instance_RegisterFile_Monolithic)
     148    if (_param->_instance == instance_RegisterFile_Monolithic)
    137149      _component = component_RegisterFile_Monolithic  ->_component;
    138150    else
Note: See TracChangeset for help on using the changeset viewer.