Ignore:
Timestamp:
Feb 16, 2010, 1:35:48 PM (14 years ago)
Author:
rosiere
Message:

Various modif (add test, and vhdl)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Debug_signal.h

    r129 r137  
    1111# ifdef DEBUG_SIGNAL
    1212
    13 #include <set>
    14 #include "Common/include/Message.h"
     13#include <map>
     14#include <list>
     15#include <string>
    1516
    1617namespace morpheo {
    1718namespace behavioural {
    1819
    19   extern std::set<void *> _debug_signal;
     20  class debug_signal
     21  {
     22  private : std::map <void *,std::string> _signal;
     23  private : std::list<std::string>        _signal_access;
     24
     25  public  : void add       (void *      signal,
     26                            std::string name);
     27  public  : void write     (void *      signal);
     28  public  : void end_cycle (void);
     29  public  : void print     (void);
     30  };
    2031 
    21 #  define DEBUG_SIGNAL_ADD(signal)                                      \
     32  extern debug_signal _debug_signal;
     33 
     34#  define DEBUG_SIGNAL_ADD(signal,name)                                 \
    2235  do                                                                    \
    2336    {                                                                   \
    24       morpheo::behavioural::_debug_signal.insert(static_cast<void *>( signal)); \
     37      morpheo::behavioural::_debug_signal.add(signal,name);            \
    2538    } while(0)
     39
     40  // Test if signal is previously define 
    2641 
    27 #  define DEBUG_SIGNAL_ACCESS(signal)                                   \
     42#  define DEBUG_SIGNAL_WRITE(signal)                                    \
    2843  do                                                                    \
    2944    {                                                                   \
    30       if (morpheo::behavioural::_debug_signal.find(static_cast<void *>(signal)) == morpheo::behavioural::_debug_signal.end()) \
    31         msgError("At file %s, in line %d, invalid signal.\n",__FILE__,__LINE__); \
     45      morpheo::behavioural::_debug_signal.write(signal);                \
    3246    } while(0)
     47
     48#  define DEBUG_SIGNAL_END_CYCLE()                      \
     49  do                                                    \
     50    {                                                   \
     51      morpheo::behavioural::_debug_signal.end_cycle();  \
     52    } while (0)
     53
     54#  define DEBUG_SIGNAL_PRINT()                          \
     55  do                                                    \
     56    {                                                   \
     57      morpheo::behavioural::_debug_signal.print();      \
     58    } while (0)
    3359 
    3460}; // end namespace behavioural         
    3561}; // end namespace morpheo             
    3662# else
    37 #  define DEBUG_SIGNAL_ADD(signal)    do {} while (0)
    38 #  define DEBUG_SIGNAL_ACCESS(signal) do {} while (0)
     63#  define DEBUG_SIGNAL_ADD(signal,name) do {} while (0)
     64#  define DEBUG_SIGNAL_WRITE(signal)    do {} while (0)
     65#  define DEBUG_SIGNAL_END_CYCLE()      do {} while (0)
     66#  define DEBUG_SIGNAL_PRINT()          do {} while (0)
    3967# endif
    4068
Note: See TracChangeset for help on using the changeset viewer.