Ignore:
Timestamp:
Dec 12, 2007, 5:02:47 PM (17 years ago)
Author:
rosiere
Message:

Station de reservation : systemC et VHDL ok

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/Core/Multi_Execute_loop/Execute_loop/Multi_Read_unit/Read_unit/Reservation_station/src/Reservation_station_vhdl_declaration.cpp

    r55 r69  
    2424  {
    2525    log_printf(FUNC,Reservation_station,FUNCTION,"Begin");
     26
     27    vhdl->set_type ("Tcontrol        ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(1));
     28    if (_param->_have_port_context_id)           
     29    vhdl->set_type ("Tcontext_id     ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_context_id));
     30    if (_param->_have_port_front_end_id)         
     31    vhdl->set_type ("Tfront_end_id   ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_front_end_id));
     32    if (_param->_have_port_ooo_engine_id)         
     33    vhdl->set_type ("Tooo_engine_id  ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_ooo_engine_id));
     34    if (_param->_have_port_rob_id)               
     35    vhdl->set_type ("Trob_id         ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_rob_id));
     36    vhdl->set_type ("Toperation      ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_operation));
     37    vhdl->set_type ("Ttype           ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_type));
     38    vhdl->set_type ("Tgeneral_data   ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_general_data));
     39    vhdl->set_type ("Tspecial_data   ","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_special_data));   
     40    vhdl->set_type ("Tgeneral_address","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_general_register));
     41    vhdl->set_type ("Tspecial_address","array (" + toString(_param->_size_queue-1) + " downto 0) of " + std_logic(_param->_size_special_register));   
     42
     43    vhdl->set_signal("reg_VAL                     ","Tcontrol");
     44    if (_param->_have_port_context_id)           
     45    vhdl->set_signal("reg_CONTEXT_ID              ","Tcontext_id");
     46    if (_param->_have_port_front_end_id)         
     47    vhdl->set_signal("reg_FRONT_END_ID            ","Tfront_end_id");
     48    if (_param->_have_port_ooo_engine_id)         
     49    vhdl->set_signal("reg_OOO_ENGINE_ID           ","Tooo_engine_id");
     50    if (_param->_have_port_rob_id)               
     51    vhdl->set_signal("reg_ROB_ID                  ","Trob_id");
     52    vhdl->set_signal("reg_OPERATION               ","Toperation");
     53    vhdl->set_signal("reg_TYPE                    ","Ttype");
     54    vhdl->set_signal("reg_HAS_IMMEDIAT            ","Tcontrol");
     55    vhdl->set_signal("reg_IMMEDIAT                ","Tgeneral_data");
     56    vhdl->set_signal("reg_NUM_REG_RA              ","Tgeneral_address");
     57    vhdl->set_signal("reg_DATA_RA_VAL             ","Tcontrol");
     58    vhdl->set_signal("reg_DATA_RA                 ","Tgeneral_data");
     59    vhdl->set_signal("reg_NUM_REG_RB              ","Tgeneral_address");
     60    vhdl->set_signal("reg_DATA_RB_VAL             ","Tcontrol");
     61    vhdl->set_signal("reg_DATA_RB                 ","Tgeneral_data");
     62    vhdl->set_signal("reg_NUM_REG_RC              ","Tspecial_address");
     63    vhdl->set_signal("reg_DATA_RC_VAL             ","Tcontrol");
     64    vhdl->set_signal("reg_DATA_RC                 ","Tspecial_data");
     65    vhdl->set_signal("reg_WRITE_RD                ","Tcontrol");
     66    vhdl->set_signal("reg_NUM_REG_RD              ","Tgeneral_address");
     67    vhdl->set_signal("reg_WRITE_RE                ","Tcontrol");
     68    vhdl->set_signal("reg_NUM_REG_RE              ","Tspecial_address");
     69
     70    if (_param->_size_queue == 1)
     71      vhdl->set_alias(" internal_FULL               ",1,"internal_INSERT_SLOT","");
     72    else
     73      vhdl->set_alias(" internal_FULL               ",1,"internal_INSERT_SLOT","("+toString(log2(_param->_size_queue))+")");
     74//  vhdl->set_signal("internal_EMPTY              ",1);
     75
     76    vhdl->set_signal("internal_INSERT_TRANSACTION ",1);
     77    vhdl->set_signal("internal_INSERT_SLOT        ",log2(_param->_size_queue)+1);
     78
     79   
     80    for (uint32_t i=0; i<_param->_nb_inst_retire; i++)
     81      {
     82        vhdl->set_signal("internal_RETIRE_TRANSACTION_"+toString(i),1);
     83        vhdl->set_signal("internal_RETIRE_SLOT_"+toString(i)+"      ",log2(_param->_size_queue)+1);
     84      }
    2685    log_printf(FUNC,Reservation_station,FUNCTION,"End");
    2786  };
     
    3392}; // end namespace multi_execute_loop
    3493}; // end namespace core
    35 
    3694}; // end namespace behavioural
    3795}; // end namespace morpheo             
Note: See TracChangeset for help on using the changeset viewer.