Ignore:
Timestamp:
Jun 5, 2007, 11:06:46 PM (17 years ago)
Author:
rosiere
Message:

Interface et Signal, c'est deux classes enregistres la valeurs des signaux à chaque cycle ... étape préparatoire avan le changement de la classe Vhdl_Testbench

Location:
trunk/IPs/systemC/processor/Morpheo/Behavioural/src
Files:
6 added
17 edited

Legend:

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

    r38 r40  
    2020    log_printf(FUNC,Behavioural,"Interface","Begin");
    2121
    22     _comment     = "";
    23     _list_signal = new (list<Signal*>);
     22    _comment       = "";
     23    _list_signal   = new (list<Signal*>);
    2424
    2525#ifdef POSITION
    26      _is_map        = false;
    27      _entity_map    = NULL;
    28      _interface_map = NULL;
     26    _is_map        = false;
     27    _entity_map    = NULL;
     28    _interface_map = NULL;
     29#endif
     30
     31#ifdef VHDL_TESTBENCH
     32    _list_cycle    = new list<string>;
    2933#endif
    3034
     
    4549    _interface_map = interface._interface_map;
    4650#endif
     51#ifdef VHDL_TESTBENCH
     52    _list_cycle    = interface._list_cycle;
     53#endif
     54
    4755    log_printf(FUNC,Behavioural,"Interface (copy)","End");
    4856  };
     
    5462    if (_list_signal->empty()== false)
    5563      {
    56         list<Signal*>::iterator i     = _list_signal->begin();
     64        list<Signal*>::iterator i = _list_signal->begin();
    5765
    5866        while (i != _list_signal->end())
     
    6472
    6573    delete _list_signal;
     74
     75#ifdef VHDL_TESTBENCH
     76    delete _list_cycle ;
     77#endif
     78
    6679    log_printf(FUNC,Behavioural,"~Interface","End");
    6780  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_get_signal.cpp

    r38 r40  
    1515  {
    1616    log_printf(FUNC,Behavioural,"get_signal","Begin");
     17
    1718    uint32_t               depth          = 0;
    1819    string                 separator      = ",\n";
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_print.cpp

    r38 r40  
    1919    output_stream << x.get_comment() << endl;
    2020    output_stream << x.get_signal () << endl;
     21
     22#ifdef VHDL_TESTBENCH
     23    if (x._list_cycle->empty()== false)
     24      {
     25        list<string>::iterator i = x._list_cycle->begin();
     26
     27        while (i != x._list_cycle->end())
     28          {
     29            output_stream << "\n\t" << *i ;
     30            ++i;
     31          }
     32      }
     33#endif
     34
    2135    log_printf(FUNC,Behavioural,"operator<<","End");
    2236    return output_stream;
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_port.cpp

    r38 r40  
    1 #ifdef VHDL
    21/*
    32 * $Id$
     
    1312namespace behavioural          {
    1413
     14#ifdef VHDL
    1515  void Interface::set_port (Vhdl * & vhdl)
    1616  {
     
    3131    log_printf(FUNC,Behavioural,"set_port (Vhdl)","End");
    3232  };
     33#endif
    3334
     35#ifdef VHDL_TESTBENCH
    3436  void Interface::set_port (Vhdl_Testbench * & vhdl_testbench)
    3537  {
     
    5052    log_printf(FUNC,Behavioural,"set_port (Testbench)","End");
    5153  };
    52 
     54#endif
    5355}; // end namespace behavioural         
    5456}; // end namespace morpheo             
    55 #endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_set_signal.cpp

    r38 r40  
    66 */
    77
    8 #include "Include/ChangeCase.h"
    98#include "Behavioural/include/Interface.h"
    109
     
    1817  {
    1918    log_printf(FUNC,Behavioural,"set_signal","Begin");
    20     string str_direction =  toString(direction);
    21     string str_interface = _name;
    22     string str_signal    =  name;
    2319
    24     LowerCase(str_direction);   
    25     UpperCase(str_interface);
    26     UpperCase(str_signal   );
    27    
    28     string signame = str_direction;
    29     if (_name != "")
    30       signame += "_"+str_interface;
    31     if (name  != "")
    32       signame += "_"+str_signal;
     20    string signame = signal_name(_name, name, direction);
    3321
    3422    Signal * sig = new Signal (signame      ,
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interface_testbench.cpp

    r38 r40  
    1212namespace morpheo              {
    1313namespace behavioural          {
     14
     15  void Interface::testbench_cycle (void)
     16  {
     17    // note : if defined(VHDL_TESTBENCH) then defined(SYSTEMC)
     18    _list_cycle->push_back(toString(sc_simulation_time()));
     19  }
    1420
    1521  void Interface::testbench (Vhdl_Testbench * & vhdl_testbench)
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces.cpp

    r38 r40  
    1414  {
    1515    log_printf(FUNC,Behavioural,"Interfaces","Begin");
    16     _list_interface = new list<Interface*>;
     16    _list_interface = new list<Interface_fifo*>;
    1717    log_printf(FUNC,Behavioural,"Interfaces","End");
    1818  };
     
    3131    if (_list_interface->empty()== false)
    3232      {
    33         list<Interface*>::iterator i     = _list_interface->begin();
     33        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    3434
    3535        while (i != _list_interface->end())
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_find_interface.cpp

    r38 r40  
    1111namespace behavioural          {
    1212
    13   Interface * Interfaces::find_interface (string name)
     13  Interface_fifo * Interfaces::find_interface (string name)
    1414  {
    1515    if (_list_interface->empty()== false)
    1616      {
    17         list<Interface*>::iterator i     = _list_interface->begin();
     17        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    1818
    1919        while (i != _list_interface->end())
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_get_interface.cpp

    r38 r40  
    1818    bool                   last_separator = false;
    1919
    20     list<Interface*>::iterator i  = _list_interface->begin();
     20    list<Interface_fifo*>::iterator i  = _list_interface->begin();
    2121    bool                   empty = _list_interface->empty();
    2222
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_set_interface.cpp

    r38 r40  
    1111namespace behavioural          {
    1212
    13   Interface * Interfaces::set_interface (string         name        ,
     13  Interface_fifo * Interfaces::set_interface (string         name        ,
    1414                                         direction_t    direction   ,
    1515                                         localisation_t localisation)
    1616  {
    17     Interface * interface = new Interface (name, direction, localisation);
     17    Interface_fifo * interface = new Interface_fifo (name, direction, localisation);
    1818   
    1919    _list_interface->push_back (interface);
     
    2222  };
    2323
    24   Interface * Interfaces::set_interface (string         name        ,
     24  Interface_fifo * Interfaces::set_interface (string         name        ,
    2525                                         direction_t    direction   ,
    2626                                         localisation_t localisation,
    2727                                         string         comment     )
    2828  {
    29     Interface * interface = set_interface(name, direction, localisation);
     29    Interface_fifo * interface = set_interface(name, direction, localisation);
    3030   
    3131    interface->set_comment (comment);
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_set_port.cpp

    r38 r40  
    1 #ifdef VHDL
    21/*
    32 * $Id$
     
    1312namespace behavioural          {
    1413
     14#ifdef VHDL
    1515  void Interfaces::set_port (Vhdl * & vhdl)
    1616  {
    1717    if (not _list_interface->empty())
    1818      {
    19         list<Interface*>::iterator i     = _list_interface->begin();
     19        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    2020       
    2121        while (i != _list_interface->end())
     
    2626      }
    2727  };
     28#endif
    2829
     30
     31#ifdef VHDL_TESTBENCH
    2932  void Interfaces::set_port (Vhdl_Testbench * & vhdl_testbench)
    3033  {
    3134    if (not _list_interface->empty())
    3235      {
    33         list<Interface*>::iterator i     = _list_interface->begin();
     36        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    3437       
    3538        while (i != _list_interface->end())
     
    4043      }
    4144  };
     45#endif
    4246
    4347}; // end namespace behavioural         
    4448}; // end namespace morpheo             
    45 #endif
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_testbench.cpp

    r38 r40  
    1919    if (_list_interface->empty()== false)
    2020      {
    21         list<Interface*>::iterator i     = _list_interface->begin();
     21        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    2222
    2323        while (i != _list_interface->end())
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Interfaces_toXML.cpp

    r38 r40  
    1717    if (_list_interface->empty()== false)
    1818      {
    19         list<Interface*>::iterator i     = _list_interface->begin();
     19        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    2020
    2121        while (i != _list_interface->end())
     
    3636    if (_list_interface->empty()== false)
    3737      {
    38         list<Interface*>::iterator i     = _list_interface->begin();
     38        list<Interface_fifo*>::iterator i     = _list_interface->begin();
    3939
    4040        while (i != _list_interface->end())
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal.cpp

    r38 r40  
    2222    log_printf(FUNC,Behavioural,"Signal","Begin");
    2323#ifdef VHDL_TESTBENCH
    24     _signal    = NULL;
    25     _type_info = UNKNOW;
     24    _signal     = NULL;
     25    _type_info  = UNKNOW;
     26    _list_value = new list<string>;
    2627#endif
    2728    log_printf(FUNC,Behavioural,"Signal","End");
     
    3637    log_printf(FUNC,Behavioural,"Signal (copy)","Begin");
    3738#ifdef VHDL_TESTBENCH
    38     _signal    = signal._signal   ;
    39     _type_info = signal._type_info;
     39    _signal     = signal._signal    ;
     40    _type_info  = signal._type_info ;
     41    _list_value = signal._list_value;
    4042#endif
    4143    log_printf(FUNC,Behavioural,"Signal (copy)","End");
     
    4547  {
    4648    log_printf(FUNC,Behavioural,"~Signal","Begin");
     49#ifdef VHDL_TESTBENCH
     50    delete _list_value;
     51#endif
    4752    log_printf(FUNC,Behavioural,"~Signal","End");
    4853  };
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_print.cpp

    r38 r40  
    99
    1010namespace morpheo              {
    11 
    12  
    13 
    1411namespace behavioural          {
    1512
     
    2219    output_stream << "\t{" << x._size << "}\t"
    2320                  << toString(x._direction)    << "\t"
    24                   << toString(x._presence_port)<< endl;
     21                  << toString(x._presence_port);
     22
     23// #ifdef VHDL_TESTBENCH
     24//     if (x._list_value->empty()== false)
     25//       {
     26//      list<string>::iterator i = x._list_value->begin();
     27
     28//      while (i != x._list_value->end())
     29//        {
     30//          output_stream << "\n\t" << *i ;
     31//          ++i;
     32//        }
     33//       }
     34// #endif
    2535
    2636    log_printf(FUNC,Behavioural,"operator<<","End");
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Signal_testbench.cpp

    r38 r40  
    2020        (_presence_port == PORT_VHDL_NO_TESTBENCH_YES))
    2121      {
     22        string str;
     23
    2224        switch (_type_info)
    2325          {
    2426          case BOOL     :
    2527            {
     28              bool value = read <bool> ();
     29
    2630              switch (_direction)
    2731                {
    28                 case IN    : {vhdl_testbench->add_input (static_cast<sc_in  <bool    > *>(_signal)->read()); break; }
    29                 case OUT   : {vhdl_testbench->add_output(static_cast<sc_out <bool    > *>(_signal)->read()); break; }
     32                case IN    : {vhdl_testbench->add_input (value);
     33                              str =             toBase2 (value); break;}
     34                case OUT   : {vhdl_testbench->add_output(value);
     35                              str =             toBase2 (value); break;}
    3036                case INOUT : {break;}
    3137                }
     
    3440          case UINT8_T  :
    3541            {
     42              uint8_t value = read <uint8_t> ();
     43
    3644              switch (_direction)
    3745                {
    38                 case IN    : {vhdl_testbench->add_input (static_cast<sc_in  <uint8_t > *>(_signal)->read()); break; }
    39                 case OUT   : {vhdl_testbench->add_output(static_cast<sc_out <uint8_t > *>(_signal)->read()); break; }
     46                case IN    : {vhdl_testbench->add_input (value);
     47                              str =             toBase2 (value,_size); break;}
     48                case OUT   : {vhdl_testbench->add_output(value);
     49                              str =             toBase2 (value,_size); break;}
    4050                case INOUT : {break;}
    4151                }
     
    4454          case UINT16_T :
    4555            {
     56              uint16_t value = read <uint16_t> ();
     57
    4658              switch (_direction)
    4759                {
    48                 case IN    : {vhdl_testbench->add_input (static_cast<sc_in  <uint16_t> *>(_signal)->read()); break; }
    49                 case OUT   : {vhdl_testbench->add_output(static_cast<sc_out <uint16_t> *>(_signal)->read()); break; }
    50                 case INOUT : {break;}
     60                case IN    : {vhdl_testbench->add_input (value);
     61                              str =             toBase2 (value,_size); break;}
     62                case OUT   : {vhdl_testbench->add_output(value);
     63                              str =             toBase2 (value,_size); break;}
     64                case INOUT : {break;}           
    5165                }
    5266              break;
     
    5468          case UINT32_T :
    5569            {
     70              uint32_t value = read <uint32_t> ();
     71
    5672              switch (_direction)
    5773                {
    58                 case IN    : {vhdl_testbench->add_input (static_cast<sc_in  <uint32_t> *>(_signal)->read()); break; }
    59                 case OUT   : {vhdl_testbench->add_output(static_cast<sc_out <uint32_t> *>(_signal)->read()); break; }
     74                case IN    : {vhdl_testbench->add_input (value);
     75                              str =             toBase2 (value,_size); break;}
     76                case OUT   : {vhdl_testbench->add_output(value);
     77                              str =             toBase2 (value,_size); break;}
    6078                case INOUT : {break;}
    6179                }
     
    6482          case UINT64_T :
    6583            {
     84              uint64_t value = read <uint64_t> ();
     85
    6686              switch (_direction)
    6787                {
    68                 case IN    : {vhdl_testbench->add_input (static_cast<sc_in  <uint64_t> *>(_signal)->read()); break; }
    69                 case OUT   : {vhdl_testbench->add_output(static_cast<sc_out <uint64_t> *>(_signal)->read()); break; }
     88                case IN    : {vhdl_testbench->add_input (value);
     89                              str =             toBase2 (value,_size); break;}
     90                case OUT   : {vhdl_testbench->add_output(value);
     91                              str =             toBase2 (value,_size); break;}
    7092                case INOUT : {break;}
    7193                }
     
    7698          }
    7799
     100        _list_value->push_back(str);
    78101      }
    79102
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/src/Vhdl_Testbench.cpp

    r2 r40  
    1313namespace behavioural          {
    1414
    15   Vhdl_Testbench::Vhdl_Testbench  (string   name       ):
    16     _name        (name       )
     15  Vhdl_Testbench::Vhdl_Testbench  (string   name       ,
     16                                   bool     exhaustive ):
     17    _name        (name       ),
     18    _exhaustive  (exhaustive )
    1719  {
    1820    _vhdl = new Vhdl (_name + "_Testbench");
     
    2628  Vhdl_Testbench::~Vhdl_Testbench ()
    2729  {
     30    delete _vhdl;
    2831  };
    2932 
Note: See TracChangeset for help on using the changeset viewer.