Ignore:
Timestamp:
Mar 27, 2008, 11:04:49 AM (16 years ago)
Author:
rosiere
Message:

Add :

  • Execute_loop (must be test systemC)
  • Prediction
    • Direction : predifined scheme
    • Branch Target Buffer
  • iFetch_unit
    • ifetch_queue
    • pc management
  • Decod_unit
    • coming soon : support for custom operation
  • Rename_unit
    • RAT
    • Free_list
    • Dependence RAW check
    • Load store unit pointer
  • New Environnement (hierarchy_memory will remove in a next version)


Modif :

  • Manage Custom Operation
  • All component in execute_loop to use the new statistics management

Not Finish :

  • Return Address Stack
  • Environnement
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Component_port_map.cpp

    r76 r78  
    2020    log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    2121
     22//     log_printf(NONE,Behavioural,FUNCTION,"Map %s.%s with %s.%s",
     23//             component_src.c_str(),
     24//             port_src.c_str(),
     25//             component_dest.c_str(),
     26//             port_dest.c_str());
     27
    2228    std::string name_entity = _entity->get_name();
    2329
    2430    // First entity
    2531    Entity * entity_dest = find_entity(component_dest);
    26 
    2732
    2833    if (entity_dest == NULL)
     
    5358
    5459    // need an internal signal ?
    55     bool src_is_port  = entity_src  == _entity;
    56     bool dest_is_port = entity_dest == _entity;
     60    bool src_is_port  = (entity_src  == _entity);
     61    bool dest_is_port = (entity_dest == _entity);
    5762
    5863    if (src_is_port == true)
     
    6772        //       
    6873        // Interface      Component
    69         //    |          |         
     74        //    |              |     
    7075        //  ----> (IN)     --X-> (IN)
    71         //    |          |         
     76        //    |              |     
    7277        //  <-X-- (OUT)    <---- (OUT)
    7378        //    |              |       
     
    8994          }
    9095
     96        // Create internal signal
    9197        signal_dest= signal_internal (entity_productor, signal_productor);
    9298        signal_dest->set_size_max(signal_src->get_size());
    93 
    94         dest_is_port = false;
    9599      }
    96100   
     
    111115  };
    112116
    113   void Component::port_map (std::string component_src ,
    114                             std::string port_src      )
    115   {
    116     log_printf(FUNC,Behavioural,FUNCTION,"Begin");
    117    
    118     Entity * entity_src = find_entity(component_src);
    119    
    120     if (entity_src == NULL)
    121       throw (ErrorMorpheo ("<Component::port_map> in component \""+_entity->get_name()+"\", port map with unknow component \""+component_src+"\"."));
    122    
    123     Signal * signal_src = entity_src->find_signal (port_src);
    124    
    125     if (signal_src == NULL)
    126       throw (ErrorMorpheo ("<Component::port_map> in component \""+_entity->get_name()+"\", port map with component \""+component_src+"\" and a unknow signal \""+port_src+"\"."));
    127    
    128     // need an internal signal ?
    129    
    130     if (entity_src == _entity)
    131       throw (ErrorMorpheo ("<Component::port_map> src can't be an interface's port of the top level."));
    132    
    133     if (signal_src->get_direction() != OUT)
    134       throw (ErrorMorpheo ("<Component::port_map> the direction of the signal '"+signal_src->get_name()+"' must be OUT."));
    135 
    136     Signal * signal_dest;
    137 
    138     signal_dest= signal_internal (entity_src, signal_src);
    139     signal_dest->set_size_max(signal_src->get_size());
    140    
    141     try
    142       {
    143         signal_src->link(signal_dest,
    144                          false);
    145       }
    146     catch (morpheo::ErrorMorpheo & error)
    147       {
    148         throw (ErrorMorpheo ("<Component::port_map> Error in mapping "+entity_src ->get_name()+"."+signal_src ->get_name()+" :\n"+error.what ()));
    149       }
    150     //catch (...)
    151     //  {
    152     //  }
    153 
    154     log_printf(FUNC,Behavioural,FUNCTION,"End");
    155   };
    156 
    157117}; // end namespace behavioural         
    158118}; // end namespace morpheo             
    159119
     120
Note: See TracChangeset for help on using the changeset viewer.