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_vhdl_body.cpp

    r41 r55  
    1919    vhdl->set_body ("");
    2020    vhdl->set_body ("-----------------------------------------------------------------------------");
     21    vhdl->set_body ("-- Ackitement");
     22    vhdl->set_body ("-----------------------------------------------------------------------------");
     23    vhdl->set_body ("");
     24
     25    for (uint32_t i = 0; i < _param->_nb_port_read; i++)
     26      vhdl->set_body ("out_READ_"+toString(i)+"_ACK  <= '1';");
     27    for (uint32_t i = 0; i < _param->_nb_port_write; i++)
     28      vhdl->set_body ("out_WRITE_"+toString(i)+"_ACK <= '1';");
     29    for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
     30      vhdl->set_body ("out_READ_WRITE_"+toString(i)+"_ACK  <= '1';");
     31
     32    vhdl->set_body ("");
     33    vhdl->set_body ("-----------------------------------------------------------------------------");
    2134    vhdl->set_body ("-- Read RegisterFile");
    2235    vhdl->set_body ("-----------------------------------------------------------------------------");
    2336    vhdl->set_body ("");
    2437   
    25     for (uint32_t i = 0; i < _param._nb_port_read; i++)
    26       {
    27         vhdl->set_body ("out_READ_"+toString(i)+"_ACK  <= '1';");
    28         vhdl->set_body ("out_READ_"+toString(i)+"_DATA <= reg_DATA (conv_integer(in_READ_"+toString(i)+"_ADDRESS)) when in_READ_"+toString(i)+"_VAL = '1' else "+std_logic_others(_param._size_word,0)+";");
    29       }
     38    for (uint32_t i = 0; i < _param->_nb_port_read; i++)
     39        vhdl->set_body ("out_READ_"+toString(i)+"_DATA <= reg_DATA (conv_integer(in_READ_"+toString(i)+"_ADDRESS)) when in_READ_"+toString(i)+"_VAL = '1' else "+std_logic_others(_param->_size_word,0)+";");
     40
     41    for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
     42      vhdl->set_body ("out_READ_WRITE_"+toString(i)+"_RDATA <= reg_DATA (conv_integer(in_READ_WRITE_"+toString(i)+"_ADDRESS)) when in_READ_WRITE_"+toString(i)+"_VAL = '1' and in_READ_WRITE_"+toString(i)+"_RW = '"+toString(RW_READ)+"' else "+std_logic_others(_param->_size_word,0)+";");
    3043
    3144    vhdl->set_body ("");
     
    3952    vhdl->set_body ("\tif in_CLOCK'event and in_CLOCK = '1' then");
    4053   
    41     for (uint32_t i = 0; i < _param._nb_port_write; i++)
     54    for (uint32_t i = 0; i < _param->_nb_port_write; i++)
    4255      {
    4356      vhdl->set_body ("\t\tif (in_WRITE_"+toString(i)+"_VAL = '1') then");
     
    4558      vhdl->set_body ("\t\tend if;");
    4659      }
     60    for (uint32_t i = 0; i < _param->_nb_port_read_write; i++)
     61      {
     62      vhdl->set_body ("\t\tif (in_READ_WRITE_"+toString(i)+"_VAL = '1' and in_READ_WRITE_"+toString(i)+"_RW = '"+toString(RW_WRITE)+"') then");
     63      vhdl->set_body ("\t\t\treg_DATA(conv_integer(in_READ_WRITE_"+toString(i)+"_ADDRESS)) <= in_READ_WRITE_"+toString(i)+"_WDATA;");
     64      vhdl->set_body ("\t\tend if;");
     65      }
    4766
    4867    vhdl->set_body ("\tend if;");
    4968    vhdl->set_body ("end process RegisterFile_write;");
    50 
    51     for (uint32_t i = 0; i < _param._nb_port_write; i++)
    52       vhdl->set_body ("out_WRITE_"+toString(i)+"_ACK <= '1';");
    5369  };
    5470
Note: See TracChangeset for help on using the changeset viewer.