Ignore:
Timestamp:
Sep 28, 2007, 2:58:08 PM (17 years ago)
Author:
rosiere
Message:
  • VHDL - RegisterFile_Multi_Banked (only partial_crossbar)
  • SystemC - modif Component, interface and co -> ajout du type Tusage_T pour instancier un coposant mais ne demander que le VHDL ou le systemC.
  • Séminaire interne
File:
1 edited

Legend:

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

    r53 r57  
    4848    // ~~~~~[ Interface : "read" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    4949
    50      in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param._nb_port_read];
    51     out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param._nb_port_read];
    52      in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param._nb_port_read];
    53     out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param._nb_port_read];
     50     in_READ_VAL         = new SC_IN (Tcontrol_t) * [_param->_nb_port_read];
     51    out_READ_ACK         = new SC_OUT(Tcontrol_t) * [_param->_nb_port_read];
     52     in_READ_ADDRESS     = new SC_IN (Taddress_t) * [_param->_nb_port_read];
     53    out_READ_DATA        = new SC_OUT(Tdata_t   ) * [_param->_nb_port_read];
    5454
    55     for (uint32_t i=0; i<_param._nb_port_read; i++)
     55    for (uint32_t i=0; i<_param->_nb_port_read; i++)
    5656      {
    5757        Interface_fifo * interface = _interfaces->set_interface("read_"+toString(i)
     
    6565         in_READ_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
    6666        out_READ_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
    67          in_READ_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param._nb_word)));
    68         out_READ_DATA    [i]  = interface->set_signal_out <Tdata_t   > ("data"   , _param._size_word);
     67         in_READ_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param->_nb_word)));
     68        out_READ_DATA    [i]  = interface->set_signal_out <Tdata_t   > ("data"   , _param->_size_word);
    6969      }
    7070
    7171    // ~~~~~[ Interface : "write" ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    7272
    73      in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param._nb_port_write];
    74     out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param._nb_port_write];
    75      in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param._nb_port_write];
    76      in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param._nb_port_write];
     73     in_WRITE_VAL        = new SC_IN (Tcontrol_t) * [_param->_nb_port_write];
     74    out_WRITE_ACK        = new SC_OUT(Tcontrol_t) * [_param->_nb_port_write];
     75     in_WRITE_ADDRESS    = new SC_IN (Taddress_t) * [_param->_nb_port_write];
     76     in_WRITE_DATA       = new SC_IN (Tdata_t   ) * [_param->_nb_port_write];
    7777   
    78     for (uint32_t i=0; i<_param._nb_port_write; i++)
     78    for (uint32_t i=0; i<_param->_nb_port_write; i++)
    7979      {
    8080        Interface_fifo * interface = _interfaces->set_interface("write_"+toString(i)
     
    8888         in_WRITE_VAL     [i]  = interface->set_signal_valack_in        ("val"    , VAL);
    8989        out_WRITE_ACK     [i]  = interface->set_signal_valack_out       ("ack"    , ACK);
    90          in_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param._nb_word)));
    91          in_WRITE_DATA    [i]  = interface->set_signal_in  <Tdata_t   > ("data"   , _param._size_word);
     90         in_WRITE_ADDRESS [i]  = interface->set_signal_in  <Taddress_t> ("address", static_cast<uint32_t>(log2(_param->_nb_word)));
     91         in_WRITE_DATA    [i]  = interface->set_signal_in  <Tdata_t   > ("data"   , _param->_size_word);
    9292      }
    9393
    9494    // ~~~~~[ Registers ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    9595
    96     reg_DATA = new SC_REGISTER (Tdata_t) ** [_param._nb_bank];
     96    reg_DATA = new SC_REGISTER (Tdata_t) ** [_param->_nb_bank];
    9797
    98     for (uint32_t i=0; i<_param._nb_bank; i++)
     98    for (uint32_t i=0; i<_param->_nb_bank; i++)
    9999      {
    100         reg_DATA [i] = new SC_REGISTER (Tdata_t) * [_param._nb_word];
     100        reg_DATA [i] = new SC_REGISTER (Tdata_t) * [_param->_nb_word];
    101101       
    102         for (uint32_t j=0; j<_param._nb_word; j++)
     102        for (uint32_t j=0; j<_param->_nb_word; j++)
    103103          {
    104104            string rename = "reg_DATA_"  + toString(i) + "_"  + toString(j);
     
    108108
    109109    // ~~~~~[ Internal ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    110     internal_WRITE_VAL     = new bool       [_param._nb_port_write];
    111     internal_WRITE_BANK    = new Taddress_t [_param._nb_port_write];
    112     internal_WRITE_NUM_REG = new Taddress_t [_param._nb_port_write];
     110    internal_WRITE_VAL     = new bool       [_param->_nb_port_write];
     111    internal_WRITE_BANK    = new Taddress_t [_param->_nb_port_write];
     112    internal_WRITE_NUM_REG = new Taddress_t [_param->_nb_port_write];
    113113
    114114    // ~~~~~[ Component ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~   
Note: See TracChangeset for help on using the changeset viewer.