Ignore:
Timestamp:
May 31, 2007, 11:22:29 PM (17 years ago)
Author:
rosiere
Message:

Interface et vhdl_testbench : l'appel aux fonction add_input et add_ouput est maintenant réalisé par la classe Interface (et autre).

2 remarques :

  • tester avec des sous composants (en particulier les sorties d'un est directement relié au sortie d'un autre)
  • Signal_testbench.cpp -> l'optimisé (par exemple pointeur de fonction afin d'éviter le test et le switch)
Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/src
Files:
3 added
22 edited

Legend:

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

    r31 r38  
    1919    _schema     (schema    )
    2020  {
     21    log_printf(FUNC,Behavioural,"Entity","Begin");
    2122    _is_map = false;
     23    log_printf(FUNC,Behavioural,"Entity","End");
    2224  };
    2325
     
    2729    _schema     (entity._schema    )
    2830  {
     31    log_printf(FUNC,Behavioural,"Entity (copy)","Begin");
    2932    _is_map     = entity._is_map    ;
    3033    _interfaces = entity._interfaces;
    3134    _comment    = entity._comment   ;
     35    log_printf(FUNC,Behavioural,"Entity (copy)","End");
    3236  };
    3337 
    3438  Entity::~Entity ()
    3539  {
     40    log_printf(FUNC,Behavioural,"~Entity","Begin");
    3641    delete _interfaces;
     42    log_printf(FUNC,Behavioural,"~Entity","End");
    3743  };
    3844 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Entity_map.cpp

    r31 r38  
    1313namespace behavioural          {
    1414
    15   void Entity::mapping (uint32_t size_x,
    16                         uint32_t size_y,
    17                         uint32_t pos_x ,
    18                         uint32_t pos_y )
     15  void Entity::mapping (uint32_t pos_x,
     16                        uint32_t pos_y,
     17                        uint32_t size_x ,
     18                        uint32_t size_y )
    1919  {
    2020    if (_is_map != false)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface.cpp

    r31 r38  
    1818    _localisation (localisation)
    1919  {
    20     _list_signal = new list<Signal>;
     20    log_printf(FUNC,Behavioural,"Interface","Begin");
     21
     22    _comment     = "";
     23    _list_signal = new (list<Signal*>);
     24
    2125#ifdef POSITION
    22     _is_map      = false;
     26     _is_map        = false;
     27     _entity_map    = NULL;
     28     _interface_map = NULL;
    2329#endif
     30
     31    log_printf(FUNC,Behavioural,"Interface","End");
    2432  };
    2533
     
    2937    _localisation (interface._localisation)
    3038  {
    31     _comment     = interface._comment    ;
    32     _list_signal = interface._list_signal;
     39    log_printf(FUNC,Behavioural,"Interface (copy)","Begin");
     40    _comment       = interface._comment    ;
     41    _list_signal   = interface._list_signal;
    3342#ifdef POSITION
    34     _is_map      = interface._is_map     ;
     43    _is_map        = interface._is_map     ;
     44    _entity_map    = interface._entity_map   ;
     45    _interface_map = interface._interface_map;
    3546#endif
     47    log_printf(FUNC,Behavioural,"Interface (copy)","End");
    3648  };
    3749 
    3850  Interface::~Interface ()
    3951  {
     52    log_printf(FUNC,Behavioural,"~Interface","Begin");
     53
     54    if (_list_signal->empty()== false)
     55      {
     56        list<Signal*>::iterator i     = _list_signal->begin();
     57
     58        while (i != _list_signal->end())
     59          {
     60            delete (*i);
     61            ++i;
     62          }
     63      }
     64
    4065    delete _list_signal;
     66    log_printf(FUNC,Behavioural,"~Interface","End");
    4167  };
    4268 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_get_comment.cpp

    r29 r38  
    1414  string Interface::get_comment (void)
    1515  {
    16     return _comment;
     16    log_printf(FUNC,Behavioural,"get_comment","Begin");
     17    string res = _comment;
     18    log_printf(FUNC,Behavioural,"get_comment","End");
     19    return res;
    1720  };
    1821
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_get_signal.cpp

    r31 r38  
    1414  string Interface::get_signal (void)
    1515  {
     16    log_printf(FUNC,Behavioural,"get_signal","Begin");
    1617    uint32_t               depth          = 0;
    1718    string                 separator      = ",\n";
     
    1920
    2021
    21     list<Signal>::iterator i     = _list_signal->begin();
     22    list<Signal*>::iterator i    = _list_signal->begin();
    2223    bool                   empty = _list_signal->empty();
    2324
     
    3031        if (i != _list_signal->end())
    3132          {
    32             text << tab << *i;
     33            text << tab << **i;
    3334            ++i;
    3435          }
     
    3738          {
    3839            text << separator;
    39             text << tab << *i;
     40            text << tab << **i;
    4041            ++i;
    4142          }
    42        
    4343        if (last_separator)
    4444          text << separator;
    4545      }
     46
     47    log_printf(FUNC,Behavioural,"get_signal","End");
    4648
    4749    return text.str();
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_port_map.cpp

    r31 r38  
    1616                            void * interface)
    1717  {
     18    log_printf(FUNC,Behavioural,"port_map","Begin");
    1819    _is_map        = true     ;
    1920    _entity_map    = entity   ;
    2021    _interface_map = interface;
    21 
     22    log_printf(FUNC,Behavioural,"port_map","End");
    2223  };
    2324
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_print.cpp

    r29 r38  
    1515                       morpheo::behavioural::Interface & x)
    1616  {
     17    log_printf(FUNC,Behavioural,"operator<<","Begin");
    1718    output_stream << x._name + "\t"+toString(x._localisation)+"\t"+toString(x._direction) << endl;
    1819    output_stream << x.get_comment() << endl;
    1920    output_stream << x.get_signal () << endl;
     21    log_printf(FUNC,Behavioural,"operator<<","End");
    2022    return output_stream;
    2123  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_comment.cpp

    r29 r38  
    1414  void Interface::set_comment (string comment)
    1515  {
     16    log_printf(FUNC,Behavioural,"set_comment","Begin");
    1617    _comment = _comment + comment;
     18    log_printf(FUNC,Behavioural,"set_comment","End");
    1719  };
    1820
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_port.cpp

    r31 r38  
    1515  void Interface::set_port (Vhdl * & vhdl)
    1616  {
     17    log_printf(FUNC,Behavioural,"set_port (Vhdl)","Begin");
    1718    if (not _list_signal->empty())
    1819      {
    19         list<Signal>::iterator i     = _list_signal->begin();
     20        list<Signal*>::iterator i     = _list_signal->begin();
    2021       
    2122        while (i != _list_signal->end())
    2223          {
    23             presence_port_t p = (*i)._presence_port;
     24            presence_port_t p = (*i)->_presence_port;
    2425            if ((p == PORT_VHDL_YES_TESTBENCH_YES) or
    2526                (p == PORT_VHDL_YES_TESTBENCH_NO ) )
    26               vhdl->set_port ((*i)._name,(*i)._direction,(*i)._size);
     27              vhdl->set_port ((*i)->_name,(*i)->_direction,(*i)->_size);
    2728            ++i;
    2829          }
    2930      }
     31    log_printf(FUNC,Behavioural,"set_port (Vhdl)","End");
    3032  };
    3133
    3234  void Interface::set_port (Vhdl_Testbench * & vhdl_testbench)
    3335  {
     36    log_printf(FUNC,Behavioural,"set_port (Testbench)","Begin");
    3437    if (not _list_signal->empty())
    3538      {
    36         list<Signal>::iterator i     = _list_signal->begin();
     39        list<Signal*>::iterator i     = _list_signal->begin();
    3740       
    3841        while (i != _list_signal->end())
    3942          {
    40             presence_port_t p = (*i)._presence_port;
     43            presence_port_t p = (*i)->_presence_port;
    4144            if ((p == PORT_VHDL_YES_TESTBENCH_YES) or
    4245                (p == PORT_VHDL_NO_TESTBENCH_YES ) )
    43               vhdl_testbench->set_port ((*i)._name,(*i)._direction,(*i)._size);
     46              vhdl_testbench->set_port ((*i)->_name,(*i)->_direction,(*i)->_size);
    4447            ++i;
    4548          }
    4649      }
     50    log_printf(FUNC,Behavioural,"set_port (Testbench)","End");
    4751  };
    4852
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_signal.cpp

    r31 r38  
    1212namespace behavioural          {
    1313
    14 //   string Interface::set_signal (Signal signal)
    15 //   {
    16 //     return set_signal(signal._name     ,
    17 //                    signal._direction,
    18 //                    signal._size     );
    19 //   };
    20 
    2114  Signal * Interface::set_signal (string          name     ,
    2215                                  direction_t     direction,
     
    2417                                  presence_port_t presence_port)
    2518  {
     19    log_printf(FUNC,Behavioural,"set_signal","Begin");
    2620    string str_direction =  toString(direction);
    2721    string str_interface = _name;
     
    3731    if (name  != "")
    3832      signame += "_"+str_signal;
    39    
     33
    4034    Signal * sig = new Signal (signame      ,
    4135                               direction    ,
    4236                               size         ,
    4337                               presence_port);
    44     _list_signal->push_back (*sig);
     38
     39    _list_signal->push_back (sig);
     40
     41    log_printf(FUNC,Behavioural,"set_signal","End");
    4542
    4643    return sig;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_toXML.cpp

    r31 r38  
    1414  XML Interface::toXML (void)
    1515  {
     16    log_printf(FUNC,Behavioural,"toXML","Begin");
     17
    1618    XML xml ("interface");
    1719   
     
    2527    if (_list_signal->empty()== false)
    2628      {
    27         list<Signal>::iterator i     = _list_signal->begin();
     29        list<Signal*>::iterator i     = _list_signal->begin();
    2830
    2931        while (i != _list_signal->end())
    3032          {
    31             xml.  insert_XML ((*i).toXML());
     33            xml.  insert_XML ((*i)->toXML());
    3234            ++i;
    3335          }
     
    3537
    3638    xml.balise_close      ();
    37      
     39
     40    log_printf(FUNC,Behavioural,"toXML","End");
     41   
    3842    return xml;
    3943  };
     
    4246  XML Interface::toXML_mapping (void)
    4347  {
     48    log_printf(FUNC,Behavioural,"toXML_mapping","Begin");
     49
    4450    if (_is_map != true)
    4551      throw (ErrorMorpheo ("Interface \""+_name+"\" is never mapped"));
     
    5258    xml.  attribut      ("port"     ,(static_cast<Interface *>(_interface_map))->_name);
    5359    xml.singleton_end   ();
     60
     61    log_printf(FUNC,Behavioural,"toXML_mapping","End");
    5462     
    5563    return xml;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces.cpp

    r31 r38  
    1313  Interfaces::Interfaces  (void)
    1414  {
    15     _list_interface = new list<Interface>;
     15    log_printf(FUNC,Behavioural,"Interfaces","Begin");
     16    _list_interface = new list<Interface*>;
     17    log_printf(FUNC,Behavioural,"Interfaces","End");
    1618  };
    1719
    1820  Interfaces::Interfaces  (const Interfaces & interfaces)
    1921  {
     22    log_printf(FUNC,Behavioural,"Interfaces (copy)","Begin");
    2023    _list_interface = interfaces._list_interface;
     24    log_printf(FUNC,Behavioural,"Interfaces (copy)","End");
    2125  };
    2226 
    2327  Interfaces::~Interfaces ()
    2428  {
     29    log_printf(FUNC,Behavioural,"~Interfaces","Begin");
     30
     31    if (_list_interface->empty()== false)
     32      {
     33        list<Interface*>::iterator i     = _list_interface->begin();
     34
     35        while (i != _list_interface->end())
     36          {
     37            delete (*i);
     38            ++i;
     39          }
     40      }
     41
    2542    delete _list_interface;
     43    log_printf(FUNC,Behavioural,"~Interfaces","End");
    2644  };
    2745 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_find_interface.cpp

    r31 r38  
    1515    if (_list_interface->empty()== false)
    1616      {
    17         list<Interface>::iterator i     = _list_interface->begin();
     17        list<Interface*>::iterator i     = _list_interface->begin();
    1818
    1919        while (i != _list_interface->end())
    2020          {
    21             if ((*i)._name == name)
    22               return &(*i);
     21            if ((*i)->_name == name)
     22              return (*i);
    2323            ++i;
    2424          }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_get_interface.cpp

    r31 r38  
    1818    bool                   last_separator = false;
    1919
    20     list<Interface>::iterator i  = _list_interface->begin();
     20    list<Interface*>::iterator i  = _list_interface->begin();
    2121    bool                   empty = _list_interface->empty();
    2222
     
    2929        if (i != _list_interface->end())
    3030          {
    31             text << tab << *i;
     31            text << tab << **i;
    3232            ++i;
    3333          }
     
    3636          {
    3737            text << separator;
    38             text << tab << *i;
     38            text << tab << **i;
    3939            ++i;
    4040          }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_set_interface.cpp

    r31 r38  
    1717    Interface * interface = new Interface (name, direction, localisation);
    1818   
    19     _list_interface->push_back (*interface);
     19    _list_interface->push_back (interface);
    2020
    21     return interface;
     21     return interface;
    2222  };
    2323
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_set_port.cpp

    r31 r38  
    1717    if (not _list_interface->empty())
    1818      {
    19         list<Interface>::iterator i     = _list_interface->begin();
     19        list<Interface*>::iterator i     = _list_interface->begin();
    2020       
    2121        while (i != _list_interface->end())
    2222          {
    23             (*i).set_port (vhdl);
     23            (*i)->set_port (vhdl);
    2424            ++i;
    2525          }
     
    3131    if (not _list_interface->empty())
    3232      {
    33         list<Interface>::iterator i     = _list_interface->begin();
     33        list<Interface*>::iterator i     = _list_interface->begin();
    3434       
    3535        while (i != _list_interface->end())
    3636          {
    37             (*i).set_port (vhdl_testbench);
     37            (*i)->set_port (vhdl_testbench);
    3838            ++i;
    3939          }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_toXML.cpp

    r31 r38  
    1717    if (_list_interface->empty()== false)
    1818      {
    19         list<Interface>::iterator i     = _list_interface->begin();
     19        list<Interface*>::iterator i     = _list_interface->begin();
    2020
    2121        while (i != _list_interface->end())
    2222          {
    23             xml.  insert_XML ((*i).toXML());
     23            xml.  insert_XML ((*i)->toXML());
    2424            ++i;
    2525          }
     
    3636    if (_list_interface->empty()== false)
    3737      {
    38         list<Interface>::iterator i     = _list_interface->begin();
     38        list<Interface*>::iterator i     = _list_interface->begin();
    3939
    4040        while (i != _list_interface->end())
    4141          {
    42             xml.  insert_XML ((*i).toXML_mapping());
     42            xml.  insert_XML ((*i)->toXML_mapping());
    4343            ++i;
    4444          }
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Position.cpp

    r31 r38  
    1414  Position::Position  (void)
    1515  {
     16    log_printf(FUNC,Behavioural,"Position","Begin");
    1617    _list_component = new list<Entity *>;
     18    log_printf(FUNC,Behavioural,"Position","End");
    1719  };
    1820
    1921  Position::Position  (const Position & position)
    2022  {
     23    log_printf(FUNC,Behavioural,"Position (copy)","Begin");
    2124    _entity         = position._entity        ;
    2225    _list_component = position._list_component;
     26    log_printf(FUNC,Behavioural,"Position (copy)","End");
    2327  };
    2428 
    2529  Position::~Position ()
    2630  {
     31    log_printf(FUNC,Behavioural,"~Position","Begin");
    2732    delete _entity;
     33
     34//     if (_list_component->empty()== false)
     35//       {
     36//      list<Entity *>::iterator i = _list_component->begin();
     37
     38//      while (i != _list_component->end())
     39//        {
     40//          delete (*i);
     41//          ++i;
     42//        }
     43//       }
     44
    2845    delete _list_component;
     46    log_printf(FUNC,Behavioural,"~Position","End");
    2947  };
    3048 
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Position_set_component.cpp

    r31 r38  
    1212namespace behavioural          {
    1313
    14   void Position::set_component (Entity * entity,
    15                                 uint32_t size_x,
    16                                 uint32_t size_y,
    17                                 uint32_t pos_x ,
    18                                 uint32_t pos_y )
     14  void Position::set_component (Position * position,
     15                                uint32_t   pos_x  ,
     16                                uint32_t   pos_y  ,
     17                                uint32_t   size_x ,
     18                                uint32_t   size_y )
    1919  {
     20    Entity * entity = position->_entity;
     21
    2022    _list_component->push_back(entity);
    2123
    22     entity->mapping(size_x, size_y, pos_x, pos_y);
     24    entity->mapping( pos_x, pos_y, size_x, size_y);
    2325  };
    2426
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal.cpp

    r31 r38  
    2020    _presence_port (presence_port)
    2121  {
     22    log_printf(FUNC,Behavioural,"Signal","Begin");
     23#ifdef VHDL_TESTBENCH
     24    _signal    = NULL;
     25    _type_info = UNKNOW;
     26#endif
     27    log_printf(FUNC,Behavioural,"Signal","End");
    2228  };
    2329
     
    2834    _presence_port (signal._presence_port)
    2935  {
     36    log_printf(FUNC,Behavioural,"Signal (copy)","Begin");
     37#ifdef VHDL_TESTBENCH
     38    _signal    = signal._signal   ;
     39    _type_info = signal._type_info;
     40#endif
     41    log_printf(FUNC,Behavioural,"Signal (copy)","End");
    3042  };
    3143
    3244  Signal::~Signal ()
    3345  {
     46    log_printf(FUNC,Behavioural,"~Signal","Begin");
     47    log_printf(FUNC,Behavioural,"~Signal","End");
    3448  };
    3549
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_print.cpp

    r29 r38  
    1717                       morpheo::behavioural::Signal & x)
    1818  {
    19     output_stream << x._name + "\t{"+toString(x._size)+"}\t"+toString(x._direction) +"\t"+toString(x._presence_port);
     19    log_printf(FUNC,Behavioural,"operator<<","Begin");
     20
     21    output_stream << x._name ;
     22    output_stream << "\t{" << x._size << "}\t"
     23                  << toString(x._direction)    << "\t"
     24                  << toString(x._presence_port)<< endl;
     25
     26    log_printf(FUNC,Behavioural,"operator<<","End");
    2027
    2128    return output_stream;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_toXML.cpp

    r29 r38  
    1313  XML Signal::toXML (void)
    1414  {
     15    log_printf(FUNC,Behavioural,"toXML","Begin");
     16
    1517    XML xml ("signal");
    1618   
     
    2022    xml.attribut        ("size"     ,toString(_size     ));
    2123    xml.singleton_end   ();
    22      
     24 
     25    log_printf(FUNC,Behavioural,"toXML","End");
     26   
    2327    return xml;
    2428  };
Note: See TracChangeset for help on using the changeset viewer.