Ignore:
Timestamp:
Sep 24, 2007, 2:00:35 PM (17 years ago)
Author:
rosiere
Message:

Ajout SystemC read_queue et reservation_station
Ajout port au bloc registerfile_monolithic (à ajouter également au bloc registerfile et registerfile_multi_banked)
Modif param : passage de pointeur (attention, tous les composants n'ont pas été tous modifier)

File:
1 edited

Legend:

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

    r53 r55  
    4343    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    4444
    45      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param._nb_port_read];
    46     out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];
    47      in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param._nb_port_read];
    48     out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param._nb_port_read];
     45     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
     46    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
     47     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
     48    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
    4949
    50     for (uint32_t i=0; i<_param._nb_port_read; i++)
     50    for (uint32_t i=0; i<_param->_nb_port_read; i++)
    5151      {
    5252        Interface_fifo * interface = _interfaces->set_interface("read_"+toString(i)
     
    6060         in_READ_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
    6161        out_READ_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
    62          in_READ_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", _param._size_address);
    63         out_READ_DATA    [i]  = interface->set_signal_out <Tdata_t   > ("data"   , _param._size_word);
     62         in_READ_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", _param->_size_address);
     63        out_READ_DATA    [i]  = interface->set_signal_out <Tdata_t   > ("data"   , _param->_size_word);
    6464      }
    6565
    6666    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    6767
    68      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param._nb_port_write];
    69     out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];
    70      in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param._nb_port_write];
    71      in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param._nb_port_write];
     68     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
     69    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
     70     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
     71     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
    7272   
    73     for (uint32_t i=0; i<_param._nb_port_write; i++)
     73    for (uint32_t i=0; i<_param->_nb_port_write; i++)
    7474      {
    7575        Interface_fifo * interface = _interfaces->set_interface("write_"+toString(i)
     
    8383         in_WRITE_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
    8484        out_WRITE_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
    85          in_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", _param._size_address);
    86          in_WRITE_DATA    [i]  = interface->set_signal_in  <Tdata_t   > ("data"   , _param._size_word);
     85         in_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", _param->_size_address);
     86         in_WRITE_DATA    [i]  = interface->set_signal_in  <Tdata_t   > ("data"   , _param->_size_word);
     87      }
     88
     89    // ~~~~~[ Interface : "read_write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     90
     91     in_READ_WRITE_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read_write];
     92    out_READ_WRITE_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read_write];
     93     in_READ_WRITE_RW          = new SC_IN (Tcontrol_t) * [_param->_nb_port_read_write];
     94     in_READ_WRITE_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read_write];
     95     in_READ_WRITE_WDATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_read_write];
     96    out_READ_WRITE_RDATA       = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read_write];
     97
     98    for (uint32_t i=0; i<_param->_nb_port_read_write; i++)
     99      {
     100        Interface_fifo * interface = _interfaces->set_interface("read_write_"+toString(i)
     101#ifdef POSITION
     102                                                                , IN 
     103                                                                ,WEST
     104                                                                , "Interface Read_Write"
     105#endif
     106                                                                );
     107
     108         in_READ_WRITE_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
     109        out_READ_WRITE_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
     110         in_READ_WRITE_RW      [i]  = interface->set_signal_valack_in        ("rw"     , VAL);
     111         in_READ_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", _param->_size_address);
     112         in_READ_WRITE_WDATA   [i]  = interface->set_signal_in  <Tdata_t   > ("wdata"  , _param->_size_word);
     113        out_READ_WRITE_RDATA   [i]  = interface->set_signal_out <Tdata_t   > ("rdata"  , _param->_size_word);
    87114      }
    88115
    89116    // ----- Register
    90     reg_DATA = new SC_REGISTER (Tdata_t) * [_param._nb_word];
     117    reg_DATA = new SC_REGISTER (Tdata_t) * [_param->_nb_word];
    91118   
    92     for (uint32_t i=0; i<_param._nb_word; i++)
     119    for (uint32_t i=0; i<_param->_nb_word; i++)
    93120      {
    94121        string rename = "reg_DATA["  + toString(i) + "]";
Note: See TracChangeset for help on using the changeset viewer.