Index: sources/test_regression/02052006/Makefile
===================================================================
--- sources/test_regression/02052006/Makefile	(revision 54)
+++ sources/test_regression/02052006/Makefile	(revision 55)
@@ -1,59 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) --p > $(LOG_SCASS) 2> /dev/null ;
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+       echo -e "$(OK)" ; \
+    else \
+       echo -e "$(KO)" ; \
+    fi ;
 
-.SECONDARY:
-
-main : $(EXE)
-
-test : main
-	@./system_systemcass.x --p || eval ${failcom}
-	
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
-%_socview.x : %_socview.o  $(SOCVIEW_LIB)
-	$(CXX) -o $@ $*_socview.o $(LFLAGS_SOCVIEW)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_socview.cpp : %.cpp 
-	ln -s $*.cpp $*_socview.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -DCHECK_MULTIWRITE -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -DCHECK_MULTIWRITE -c $*_systemcass.cpp -o $*_systemcass.o
-
-%_socview.o : %_socview.cpp
-	$(CXX) $(CFLAGS_SOCVIEW) -MM $*_socview.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SOCVIEW) -c $*_socview.cpp -o $*_socview.o
-
-clean :
-	-rm -f Makefile.deps
-	-rm -f gmon.out *~
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	
Index: sources/test_regression/02052006/system.cpp
===================================================================
--- sources/test_regression/02052006/system.cpp	(revision 54)
+++ sources/test_regression/02052006/system.cpp	(revision 55)
@@ -1,115 +1,150 @@
+
 #include <systemc.h>
+#include <typeinfo>
 
-#define ASSERT(x) \
-  { \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (1); \
-    } \
-  }
+#include "test.h"
+
+
+// Tests deactivated (not supported in SystemCass):
+// - sc_signal applied to float values (QM)
+// Tests failing:
+// - sc_int<X> with X different from 16, 32 and 64
+
 
 using namespace std;
 
 struct test : sc_module {
-  int32_t                         reg;
-  sc_signal<bool>                 reg_bool;
-  sc_signal<int>                  reg_int;
-  sc_signal<unsigned int>         reg_unsigned_int;
-  sc_signal<char>                 reg_char;
-  sc_signal<double>               reg_double;
-  sc_signal<long>                 reg_long;
-  sc_signal<sc_uint<32> >         reg_ui32;
-  sc_signal<sc_uint<16> >         reg_ui16;
-  sc_signal<sc_uint<6> >          reg_ui6;
-  sc_signal<sc_int<32> >          reg_i32;
-  sc_signal<sc_int<16> >          reg_i16;
-  sc_signal<sc_int<6> >           reg_i6;
- 
-  sc_in_clk                       clk;
-  sc_in<bool>                     resetn;
+    int32_t                  reg;
+    sc_signal<bool>          reg_bool;
+    sc_signal<int>           reg_int;
+    sc_signal<unsigned int>  reg_unsigned_int;
+    sc_signal<char>          reg_char;
+#ifdef ALL_TESTS
+    sc_signal<float>         reg_float;
+    sc_signal<double>        reg_double;
+#endif
+    sc_signal<long>          reg_long;
+    sc_signal< sc_uint<32> > reg_ui32;
+    sc_signal< sc_uint<16> > reg_ui16;
+    sc_signal< sc_uint<6> >  reg_ui6;
+    sc_signal< sc_int<32> >  reg_i32;
+    sc_signal< sc_int<16> >  reg_i16;
+    sc_signal< sc_int<6> >   reg_i6;
+    sc_in<bool> clk;
+    sc_in<bool> resetn;
 
-  void trans ()
-  {
-    if (resetn.read() == true)
-    {
-      ASSERT(((reg & 1))            == reg_bool  .read());
-      ASSERT(((int)   reg)          == reg_int   .read());
-      ASSERT(((unsigned int)reg)    == reg_unsigned_int   .read());
-      ASSERT(((char)  reg)        == reg_char  .read());
-#if 0
-      cout << (double)reg << " " << reg_double.read() << endl;
-      cout << sizeof (double) << " " << sizeof (reg_double.read()) << endl;
+    void trans() {
+        if (resetn.read() == true) {
+            //ASSERT(((reg & 1)) == reg_bool.read());
+            //ASSERT(((int) reg) == reg_int.read());
+            //ASSERT(((unsigned int) reg) == reg_unsigned_int.read());
+            //ASSERT(((char) reg) == reg_char.read());
+#ifdef ALL_TEST
+            //ASSERT(((float) reg) == reg_float.read());
+            //ASSERT(((double) reg) == reg_double.read());
 #endif
-      ASSERT(((double)reg)          == reg_double.read());
-      ASSERT(((long)  reg)          == reg_long  .read());
-      ASSERT(((unsigned int) reg & 0xFFFFFFFF) == (unsigned int) (reg_ui32 .read()));
-      ASSERT(((unsigned int) reg & 0x0000FFFF) == (unsigned int) (reg_ui16 .read()));
-#if 0
-      cerr << reg_ui6.read() << " " << (reg & 0x0000003F) << endl;
+            //ASSERT(((long) reg) == reg_long.read());
+            //ASSERT(((unsigned int) reg & 0xFFFFFFFF) == (unsigned int) (reg_ui32.read()));
+            //ASSERT(((unsigned int) reg & 0x0000FFFF) == (unsigned int) (reg_ui16.read()));
+            //ASSERT(((unsigned int) reg & 0x0000003F) == (unsigned int) (reg_ui6.read()));
+            //ASSERT(((signed int) (reg & 0xFFFFFFFF)) == (signed int) (reg_i32.read()));
+            //ASSERT(((signed int) (reg & 0x0000FFFF)) == (signed int) (reg_i16.read()));
+            //cout << "reg & 0x3F : " << (signed int) (reg & 0x3F) << endl;
+            //cout << "reg_i6 : " << reg_i6.read() << endl;
+            //ASSERT(((reg & 0x3F) < 32 && ((signed int) (reg & 0x3F)) == (signed int) (reg_i6.read())) || ((reg & 0x3F) >= 32 && (signed int) (reg & 0x3F) != (signed int) (reg_i6.read())));
+            cout << "reg_bool : " << reg_bool << endl;
+            cout << "reg_int : " << reg_int << endl;
+            cout << "reg_unsigned_int : " << reg_unsigned_int << endl;
+            cout << "reg_char : " << (unsigned int) reg_char << endl;
+#ifdef ALL_TESTS
+            cout << "reg_float : " << reg_float << endl;
+            cout << "reg_double : " << reg_double << endl;
 #endif
-      ASSERT(((unsigned int) reg & 0x0000003F)  == (unsigned int) (reg_ui6  .read()));
-      ASSERT(((signed int) reg & 0xFFFFFFFF) == (signed int) (reg_i32 .read()));
-      ASSERT(((signed int) reg & 0x0000FFFF) == (signed int) (reg_i16 .read()));
-      ASSERT(((signed int) reg & 0x0000003F) == (signed int) (reg_i6  .read()));
-      reg        = reg + 1;
-      reg_bool   = reg & 1;
-      reg_int    = reg;
-      reg_unsigned_int = reg;
-      reg_char   = reg;
-      reg_double .write(reg);
-      reg_long   = reg;
-      reg_ui32   = reg;
-      reg_ui16   = reg;
-      reg_ui6    = reg;
-      reg_i32    = reg;
-      reg_i16    = reg;
-      reg_i6     = reg;
-    } else {
-      reg        = 0;
-      reg_bool   = 0;
-      reg_int    = 0;
-      reg_unsigned_int = 0;
-      reg_char   = 0;
-      reg_double = 0;
-      reg_long   = 0;
-      reg_ui32   = 0;
-      reg_ui16   = 0;
-      reg_ui6    = 0;
-      reg_i32    = 0;
-      reg_i16    = 0;
-      reg_i6     = 0;
+            cout << "reg_long : " << reg_long << endl;
+            cout << "reg_ui32 : " << reg_ui32 << endl;
+            cout << "reg_ui16 : " << reg_ui16 << endl;
+            cout << "reg_ui6 : " << reg_ui6 << endl;
+            cout << "reg_i32 : " << reg_i32 << endl;
+            cout << "reg_i16 : " << reg_i16 << endl;
+            cout << "reg_i6 : " << reg_i6 << endl;
+
+            reg = reg + 1;
+            reg_bool = reg & 1;
+            reg_int = reg;
+            reg_unsigned_int = reg;
+            reg_char = reg;
+#ifdef ALL_TESTS
+            reg_float.write(reg);
+            reg_double.write(reg);
+#endif
+            reg_long = reg;
+            reg_ui32 = reg;
+            reg_ui16 = reg;
+            reg_ui6 = reg;
+            reg_i32 = reg;
+            reg_i16 = reg;
+            reg_i6  = reg;
+        }
+        else {
+            reg = 0;
+            reg_bool = 0;
+            reg_int = 0;
+            reg_unsigned_int = 0;
+            reg_char = 0;
+#ifdef ALL_TESTS
+            reg_float = 0;
+            reg_double = 0;
+#endif
+            reg_long = 0;
+            reg_ui32 = 0;
+            reg_ui16 = 0;
+            reg_ui6 = 0;
+            reg_i32 = 0;
+            reg_i16 = 0;
+            reg_i6 = 0;
+        }
     }
-  }
 
-  SC_HAS_PROCESS(test);
-    test (sc_module_name n) : sc_module (n),
-    clk("clk")
-  {
-    SC_METHOD(trans);
-    sensitive << clk.pos();
-    dont_initialize();
-  };
+    SC_HAS_PROCESS(test);
+    test(sc_module_name n) : sc_module (n),
+    clk("clk") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-  sc_clock        signal_clk("my_clock",1, 0.5);
-  sc_signal<bool> resetn("resetn");
 
-  test test1("test1");
-  test1.clk    (signal_clk);
-  test1.resetn (resetn);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock", sc_time(1, sc_core::SC_NS));
+    sc_signal<bool> resetn("resetn");
 
-  // Init & run
-  sc_start (0);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.resetn(resetn);
 
-  resetn = false;
-  sc_start (4);
-  resetn = true;
-  sc_start (100);
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  return EXIT_SUCCESS;
+    resetn = false;
+    sc_start(sc_time(4, sc_core::SC_NS));
+    resetn = true;
+    sc_start(sc_time(100, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
 }
 
 #undef sc_inout
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/04052005/Makefile
===================================================================
--- sources/test_regression/04052005/Makefile	(revision 54)
+++ sources/test_regression/04052005/Makefile	(revision 55)
@@ -1,54 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-.SECONDARY:
 
-main : $(EXE) 
-
-test : ${EXE}
-	./system_systemcass.x || eval ${failcom}
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	-rm -rf generated_by_systemcass
-	
Index: sources/test_regression/04052005/system.cpp
===================================================================
--- sources/test_regression/04052005/system.cpp	(revision 54)
+++ sources/test_regression/04052005/system.cpp	(revision 55)
@@ -1,102 +1,85 @@
-#include "systemc.h"
+
 #include <iostream>
 
+#include "systemc.h"
+#include "test.h"
 
 using namespace std;
 
 
-int
-sc_main (int argc, char ** argv)
-{
-  int errnum = 0;
- 
-  sc_uint<32> a;
-  sc_uint<3>  b;
-  sc_uint<2>  c;
-  sc_uint<5>  d;
-  sc_uint<8>  e;
-  sc_uint<10> f;
+int sc_main (int argc, char ** argv) {
 
-  a = 0xCFFFFFFF;
-  b = 0x7;
-  c = 0x3;
-  d = 0xA0;
-  e = 0x11;
-  f = 0x1A0;
- 
-  cerr << "a = 0x" << hex << (unsigned int)a << " = " << a.to_string (SC_BIN) << "\n";
-  if (a.to_string (SC_BIN) != "0b011001111111111111111111111111111")
-    exit (errnum);
-  errnum++;
+    sc_uint<32> a;
+    sc_uint<3>  b;
+    sc_uint<2>  c;
+    sc_uint<5>  d;
+    sc_uint<8>  e;
+    sc_uint<10> f;
 
-  cerr << "b = 0x" << hex << (unsigned int)b << " = " << b.to_string (SC_BIN) << "\n";
-  if (b.to_string (SC_BIN) != "0b0111")
-    exit (errnum);
-  errnum++;
+    a = 0xCFFFFFFF;
+    b = 0x7;
+    c = 0x3;
+    d = 0xA0;
+    e = 0x11;
+    f = 0x1A0;
 
-  cerr << "c = 0x" << hex << (unsigned int)c << " = " << c.to_string (SC_BIN) << "\n";
-  if (c.to_string (SC_BIN) != "0b011")
-    exit (errnum);
-  errnum++;
+    cout << "a = 0x" << hex << (unsigned int) a << " = " << a.to_string(SC_BIN) << "\n";
+    ASSERT(a.to_string (SC_BIN) == "0b011001111111111111111111111111111");
 
-  cerr << "d = 0x" << hex << (unsigned int)d << " = " << d.to_string (SC_BIN) << "\n";
-  if (d.to_string (SC_BIN) != "0b000000")
-    exit (errnum);
-  errnum++;
+    cout << "b = 0x" << hex << (unsigned int) b << " = " << b.to_string(SC_BIN) << "\n";
+    ASSERT(b.to_string (SC_BIN) == "0b0111");
 
-  cerr << "e = 0x" << hex << (unsigned int)e << " = " << e.to_string (SC_BIN) << "\n";
-  if (e.to_string (SC_BIN) != "0b000010001")
-    exit (errnum);
-  errnum++;
+    cout << "c = 0x" << hex << (unsigned int) c << " = " << c.to_string(SC_BIN) << "\n";
+    ASSERT(c.to_string (SC_BIN) == "0b011");
 
-  cerr << "f = 0x" << hex << (unsigned int)f << " = " << f.to_string (SC_BIN) << "\n";
-  if (f.to_string (SC_BIN) != "0b00110100000")
-    exit (errnum);
-  errnum++;
+    cout << "d = 0x" << hex << (unsigned int) d << " = " << d.to_string(SC_BIN) << "\n";
+    ASSERT(d.to_string (SC_BIN) == "0b000000");
+
+    cout << "e = 0x" << hex << (unsigned int) e << " = " << e.to_string(SC_BIN) << "\n";
+    ASSERT(e.to_string (SC_BIN) == "0b000010001");
+
+    cout << "f = 0x" << hex << (unsigned int) f << " = " << f.to_string(SC_BIN) << "\n";
+    ASSERT(f.to_string (SC_BIN) == "0b00110100000");
+
+    cout << "b,e = 0x" << hex << (unsigned int) (b,e) << " = " << (b, e).to_string(SC_BIN) << "\n";
+    ASSERT((b, e).to_string (SC_BIN) == "0b011100010001");
+
+    cout << "b,c,d,e,f = 0x" << hex << (unsigned int) (b, c, d, e, f) << " = " << (b, c, d, e, f).to_string (SC_BIN) << "\n";
+    ASSERT((b, c, d, e, f).to_string (SC_BIN) == "0b01111100000000100010110100000");
+
+    a = b,c,d,e,f;
+    cout << "a = b,c,d,e,f; a = 0x" << hex << (unsigned int) a << " = " << a.to_string (SC_BIN) << "\n";
+    ASSERT(a.to_string (SC_BIN) == "0b000000000000000000000000000000111");
+
+    sc_uint<3> tb = b.range (2, 0);
+    cout << "b.range (2,0) = 0x" << hex << (unsigned int) tb << " = " << tb.to_string (SC_BIN) << "\n";
+    ASSERT(tb.to_string (SC_BIN) == "0b0111");
+
+    sc_uint<5> te = e.range(5, 1);
+    cout << "e.range (5,1) = 0x" << hex << (unsigned int) te << " = " << te.to_string(SC_BIN) << "\n";
+    ASSERT(te.to_string(SC_BIN) == "0b001000");
+
+    sc_uint<5> tf = f.range(9, 5);
+    cout << "f.range (9,5) = 0x" << hex << (unsigned int) tf << " = " << tf.to_string (SC_BIN) << "\n";
+    ASSERT(tf.to_string (SC_BIN) == "0b001101");
+
+    sc_uint<5> tf2 = f.range(8, 4);
+    a = (tf2, b, c, d, e, f);
+    cout << "a = f.range (7,3),b,c,d,e,f; a = 0x" << hex << (unsigned int) a << " = " << a.to_string (SC_BIN) << "\n";
+    ASSERT(a.to_string (SC_BIN) == "0b010101111100000000100010110100000");
+
+    return 0;
+}
 
 
-  cerr << "b,e = 0x" << hex << (unsigned int)(b,e) << " = " << (b,e).to_string (SC_BIN) << "\n";
-  if ((b,e).to_string (SC_BIN) != "0b011100010001")
-    exit (errnum);
-  errnum++;
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
 
-
-  cerr << "b,c,d,e,f = 0x" << hex << (unsigned int)(b,c,d,e,f) << " = " << (b,c,d,e,f).to_string (SC_BIN) << "\n";
-  if ((b,c,d,e,f).to_string (SC_BIN) != "0b01111100000000100010110100000")
-    exit (errnum);
-  errnum++;
-
-  a = b,c,d,e,f;
-  cerr << "a = b,c,d,e,f; a = 0x" << hex << (unsigned int) a << " = " << a.to_string (SC_BIN) << "\n";
-  if (a.to_string (SC_BIN) != "0b000000000000000000000000000000111")
-    exit (errnum);
-  errnum++;
-
-  sc_uint<3> tb = b.range (2,0);
-  cerr << "b.range (2,0) = 0x" << hex << (unsigned int) tb << " = " << tb.to_string (SC_BIN) << "\n";
-  if (tb.to_string (SC_BIN) != "0b0111")
-    exit (errnum);
-  errnum++;
-
-  sc_uint<5> te = e.range (5,1);
-  cerr << "e.range (5,1) = 0x" << hex << (unsigned int) te << " = " << te.to_string (SC_BIN) << "\n";
-  if (te.to_string (SC_BIN) != "0b001000")
-    exit (errnum);
-  errnum++;
-  
-  sc_uint<5> tf = f.range (9,5);
-  cerr << "f.range (9,5) = 0x" << hex << (unsigned int) tf << " = " << tf.to_string (SC_BIN) << "\n";
-  if (tf.to_string (SC_BIN) != "0b001101")
-    exit (errnum);
-  errnum++;
-
-  sc_uint<5> tf2 = f.range (8,4);
-  a = (tf2,b,c,d,e,f);
-  cerr << "a = f.range (7,3),b,c,d,e,f; a = 0x" << hex << (unsigned int) a << " = " << a.to_string (SC_BIN) << "\n";
-  if (a.to_string (SC_BIN) != "0b010101111100000000100010110100000")
-    exit (errnum);
-  errnum++;
-
-  return 0;
-}
-
Index: sources/test_regression/05092005/Makefile
===================================================================
--- sources/test_regression/05092005/Makefile	(revision 54)
+++ sources/test_regression/05092005/Makefile	(revision 55)
@@ -1,59 +1,11 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
 
-.SECONDARY:
+test: $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$< 2> /dev/null ;
+	@if [ $$? -eq 0 ] ; then echo "KO" ; else echo "OK" ; fi ;
 
-main : $(EXE) 
 
-test : $(EXE_SCASS)
-	@for i in ${EXE_SCASS} ; do \
-    echo Testing $$i... ; \
-    $$i ; \
-    if [ $$? -ne 77 ] ; then eval $${failcom} ; fi ; \
-    echo Bug detection OK ; \
-  done;
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	-rm -rf generated_by_systemcass
-	
Index: sources/test_regression/05092005/system.cpp
===================================================================
--- sources/test_regression/05092005/system.cpp	(revision 54)
+++ sources/test_regression/05092005/system.cpp	(revision 55)
@@ -1,41 +1,44 @@
+
 #include "systemc.h"
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "test.h"
 
 using namespace std;
 
-struct hard : sc_module
-{
-  sc_in <bool> i;
-  sc_out<bool> o;
-  SC_HAS_PROCESS(hard);
-  hard(sc_module_name)
-  {
-  }
+struct hard : sc_module {
+    sc_in<bool> i;
+    sc_out<bool> o;
+    SC_HAS_PROCESS(hard);
+    hard(sc_module_name) {}
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  sc_signal<bool> s[5];
-  hard a("a");
-  hard b("b");
-  a.i (s[0]);
-  a.o (s[1]);
-  b.i (s[5]); // Wrong array index. This BUG should be detected.
-  b.o (s[2]);
 
-  sc_initialize ();
-  sc_start (1);
+int sc_main (int argc, char ** argv) {
+    sc_clock signal_clk("my_clock", sc_time(1, sc_core::SC_NS));
+    sc_signal<bool> s[5];
+    hard a("a");
+    hard b("b");
+    a.i(s[0]);
+    a.o(s[1]);
+    b.i(s[5]); // Wrong array index. This BUG should be detected.
+    b.o(s[2]);
 
-  cerr << "Test KO.\n";
-  return 0;
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07052005/Makefile
===================================================================
--- sources/test_regression/07052005/Makefile	(revision 54)
+++ sources/test_regression/07052005/Makefile	(revision 55)
@@ -1,58 +1,13 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null ;
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-.SECONDARY:
-
-main : $(EXE) 
-
-test : ${LOG}
-	@echo Test OK.
-
-%.log : %_systemcass.x %_systemc.x
-	./$*_systemcass.x
-	touch $*.log
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	-rm -rf generated_by_systemcass
-	
Index: sources/test_regression/07052005/system.cpp
===================================================================
--- sources/test_regression/07052005/system.cpp	(revision 54)
+++ sources/test_regression/07052005/system.cpp	(revision 55)
@@ -1,4 +1,8 @@
-#include <systemc.h>
+
+
 #include <iostream>
+
+#include "systemc.h"
+#include "test.h"
 
 
@@ -6,59 +10,54 @@
 
 
-int
-sc_main (int argc, char ** argv)
-{
-  int errnum = 0;
- 
-  sc_uint<17> a;
-  sc_uint<3>  b;
-  sc_uint<2>  c1;
-  sc_uint<2>  c2;
-  sc_uint<5>  d;
-  sc_uint<7>  e;
-  sc_uint<1>  f;
-  sc_uint<16> g;
-  sc_uint<8>  h;
+int sc_main (int argc, char ** argv) {
 
-  b  = 0x7;
-  c1 = 0x3;
-  c2 = 0x1;
-  d  = 0xA0;
-  e  = 0x11;
-  g  = 0xabcd;
+    sc_uint<17> a;
+    sc_uint<3>  b;
+    sc_uint<2>  c1;
+    sc_uint<2>  c2;
+    sc_uint<5>  d;
+    sc_uint<7>  e;
+    sc_uint<1>  f;
+    sc_uint<16> g;
+    sc_uint<8>  h;
 
-  // bit vector concatenation and boolean concatenation
-  a = (b,
-       (c1 | c2),
-       d & (b,c1),
-       e);
-  
-  f = b.range (0,0);
+    b  = 0x7;
+    c1 = 0x3;
+    c2 = 0x1;
+    d  = 0xA0;
+    e  = 0x11;
+    g  = 0xabcd;
 
-  h = g.range (11,4);
+    // bit vector concatenation and boolean concatenation
+    a = (b, (c1 | c2), d & (b, c1), e);
 
-  errnum++;
-  cerr << "a = 0x" << hex << (unsigned int)a << " = " << a.to_string (SC_BIN) << "\n";
-  if (a.to_string (SC_BIN) != "0b000000111100010001")
-  {
-    exit (errnum);
-  }
+    f = b.range (0, 0);
 
-  errnum++;
-  cerr << "f = 0x" << hex << (unsigned int)f << " = " << f.to_string (SC_BIN) << "\n";
-  if (f.to_string (SC_BIN) != "0b01")
-  {
-    exit (errnum);
-  }
+    h = g.range (11, 4);
 
-  errnum++;
-  cerr << "h = 0x" << hex << (unsigned int)h << " = " << h.to_string (SC_BIN) << "\n";
-  if (h.to_string (SC_BIN) != "0b010111100")
-  {
-    exit (errnum);
-  }
+    cout << "a = 0x" << hex << (unsigned int) a << " = " << a.to_string(SC_BIN) << "\n";
+    //ASSERT(a.to_string(SC_BIN) == "0b000000111100010001");
 
-  cerr << "Test OK.\n";
-  return 0;
+    cout << "f = 0x" << hex << (unsigned int) f << " = " << f.to_string(SC_BIN) << "\n";
+    //ASSERT(f.to_string(SC_BIN) == "0b01");
+
+    cout << "h = 0x" << hex << (unsigned int) h << " = " << h.to_string(SC_BIN) << "\n";
+    //ASSERT(h.to_string(SC_BIN) == "0b010111100");
+
+    cout << "Test OK.\n";
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07122006a/Makefile
===================================================================
--- sources/test_regression/07122006a/Makefile	(revision 55)
+++ sources/test_regression/07122006a/Makefile	(revision 55)
@@ -0,0 +1,16 @@
+
+include ../env.mk
+SRC = system_gen_moore.cpp system_gen_mealy.cpp system_transition.cpp
+include ../Makefile.common
+
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./system_systemcass.x > $(LOG_SCASS) 2> /dev/null
+	@./system_systemc.x > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+	
+
Index: sources/test_regression/07122006a/struct_test.h
===================================================================
--- sources/test_regression/07122006a/struct_test.h	(revision 55)
+++ sources/test_regression/07122006a/struct_test.h	(revision 55)
@@ -0,0 +1,35 @@
+
+#ifndef _STRUCT_TEST_H_
+#define _STRUCT_TEST_H_
+
+#include "systemc.h"
+
+
+struct test : public sc_module {
+    sc_in<bool> clk;
+    sc_in<bool> resetn;
+    sc_out<int> o;
+    sc_in <int> i;
+    sc_signal<int> reg;
+
+    void transition();
+    void gen_moore();
+    void gen_mealy();
+
+    SC_CTOR(test) {
+        SC_METHOD(transition);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore);
+        sensitive << clk.neg();
+        dont_initialize();
+        
+        SC_METHOD(gen_mealy);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+    }
+};
+
+#endif
+
Index: sources/test_regression/07122006a/system.cpp
===================================================================
--- sources/test_regression/07122006a/system.cpp	(revision 55)
+++ sources/test_regression/07122006a/system.cpp	(revision 55)
@@ -0,0 +1,49 @@
+
+
+#include <signal.h>
+#include <iostream>
+#include <fstream>
+
+#include "systemc.h"
+#include "test.h"
+
+#include "struct_test.h"
+
+
+using namespace std;
+
+
+int sc_main(int argc, char * argv[]) {
+    sc_clock clk("clk");
+    sc_signal<bool> resetn("resetn");
+    sc_signal<int>  in ("in");
+    sc_signal<int>  out("out");
+
+    test test("test");
+    test.clk(clk);
+    test.resetn(resetn);
+
+    test.i(in);
+    test.o(out);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    resetn = false;
+    sc_start(sc_time(3, sc_core::SC_NS));
+    resetn = true;
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
+}
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07122006a/system_gen_mealy.cpp
===================================================================
--- sources/test_regression/07122006a/system_gen_mealy.cpp	(revision 55)
+++ sources/test_regression/07122006a/system_gen_mealy.cpp	(revision 55)
@@ -0,0 +1,22 @@
+
+#include <iostream>
+
+#include "test.h"
+#include "struct_test.h"
+
+void test::gen_mealy() {
+  std::cout << "gen_mealy\n";
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07122006a/system_gen_moore.cpp
===================================================================
--- sources/test_regression/07122006a/system_gen_moore.cpp	(revision 55)
+++ sources/test_regression/07122006a/system_gen_moore.cpp	(revision 55)
@@ -0,0 +1,21 @@
+#include "test.h"
+#include <iostream>
+
+#include "struct_test.h"
+
+void test::gen_moore() {
+  std::cout << "gen_moore\n";
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07122006a/system_transition.cpp
===================================================================
--- sources/test_regression/07122006a/system_transition.cpp	(revision 55)
+++ sources/test_regression/07122006a/system_transition.cpp	(revision 55)
@@ -0,0 +1,24 @@
+
+#include <iostream>
+
+#include "test.h"
+#include "struct_test.h"
+
+void test::transition() {
+  std::cout << "transition\n";
+}
+
+
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/07122006b/Makefile
===================================================================
--- sources/test_regression/07122006b/Makefile	(revision 55)
+++ sources/test_regression/07122006b/Makefile	(revision 55)
@@ -0,0 +1,14 @@
+include ../env.mk
+include ../Makefile.common
+
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./system_systemcass.x > $(LOG_SCASS) 2> /dev/null
+	@./system_systemc.x > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+	
+
Index: sources/test_regression/07122006b/system.cpp
===================================================================
--- sources/test_regression/07122006b/system.cpp	(revision 55)
+++ sources/test_regression/07122006b/system.cpp	(revision 55)
@@ -0,0 +1,94 @@
+
+#include <systemc.h>
+#include <signal.h>
+#include <iostream>
+#include <fstream>
+
+#include "test.h"
+
+using namespace std;
+
+struct inner_test : public sc_module {
+    virtual void transition() {
+        cout << "This function is a virtual one.\n";
+    }
+
+    inner_test(sc_module_name n) {}
+};
+
+
+struct test : public inner_test {
+    sc_in<bool> clk;
+    sc_in<bool> resetn;
+    sc_out<int> o;
+    sc_in<int>  i;
+    sc_signal<int> reg;
+
+    virtual void transition();
+    void gen_moore();
+    void gen_mealy();
+
+    SC_HAS_PROCESS(test);
+    test(sc_module_name n) : inner_test(n) {
+        SC_METHOD(transition);
+        sensitive << clk.pos();
+        dont_initialize();
+    
+        SC_METHOD(gen_moore);
+        sensitive << clk.neg();
+        dont_initialize();
+        
+        SC_METHOD(gen_mealy);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+    }
+};
+
+void test::transition() {
+    std::cout << "transition\n";
+}
+
+void test::gen_moore() {
+    std::cout << "gen_moore\n";
+}
+
+void test::gen_mealy() {
+    std::cout << "gen_mealy\n";
+}
+
+
+
+int sc_main(int argc, char * argv[]) {
+    sc_clock clk("clk");
+    sc_signal<bool> resetn("resetn");
+    sc_signal<int> in ("in");
+    sc_signal<int> out("out");
+
+    test test("test");
+    test.clk(clk);
+    test.resetn(resetn);
+
+    test.i(in);
+    test.o(out);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    resetn = false;
+    sc_start(sc_time(3, sc_core::SC_NS));
+    resetn = true;
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
+}
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/08092005/Makefile
===================================================================
--- sources/test_regression/08092005/Makefile	(revision 54)
+++ sources/test_regression/08092005/Makefile	(revision 55)
@@ -1,61 +1,21 @@
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test: $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) --p --t 2> /dev/null ; \
+	if [ $$? -eq 197 ] ; then \
+		if diff methodprocess_graph.dot methodprocess_graph_reference.dot > /dev/null ; then \
+			if tail -n +3 reduced_signal_graph.dot | diff reduced_signal_graph_reference.dot - > /dev/null ; then \
+				echo "OK" ; \
+			else \
+				echo "KO1" ; \
+			fi ; \
+		else \
+			echo "KO2" ; \
+		fi ; \
+	else \
+		echo "KO3" ; \
+	fi ;
 
-.SECONDARY:
 
-main : $(EXE) 
-
-test : $(EXE_SCASS)
-	@for i in ${EXE_SCASS} ; do \
-    echo Testing $$i... ; \
-    $$i --p --t ; \
-    if [ $$? -ne 197 ] ; then eval $${failcom} ; fi ; \
-    (tail -n +3 reduced_signal_graph.dot | diff reduced_signal_graph_reference.dot -) || eval ${failcom} ; \
-    diff methodprocess_graph.dot methodprocess_graph_reference.dot || eval ${failcom} ; \
-    echo Bug detection OK ; \
-  done;
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/08092005/system.cpp
===================================================================
--- sources/test_regression/08092005/system.cpp	(revision 54)
+++ sources/test_regression/08092005/system.cpp	(revision 55)
@@ -1,89 +1,91 @@
+
+// Circular sensitivity dependency
+// Does not compile with systemcass
+
 #include "systemc.h"
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+
+#include "test.h"
 
 using namespace std;
 
-struct hard : sc_module
-{
-  sc_in_clk    clk;
-  sc_in <int>  i1, i2;
-  sc_out<int>  o1, o2;
+struct hard : sc_module {
+    sc_in_clk clk;
+    sc_in <int> i1, i2;
+    sc_out<int> o1, o2;
 
-  void f ()
-  {
-    o1 = i1;
-    o2 = i2;
-  }
+    void f() {
+        o1 = i1;
+        o2 = i2;
+    }
 
-  SC_HAS_PROCESS(hard);
-  hard(sc_module_name) /*:
-    clk("clk"),
-    i1 ("i1"),
-    i2 ("i2"),
-    o1 ("o1"),
-    o2 ("o2")*/
-  {
-    SC_METHOD(f);
-    dont_initialize();
-    sensitive << i1 << i2;
+    SC_HAS_PROCESS(hard);
+    hard(sc_module_name) {
+        SC_METHOD(f);
+        sensitive << i1 << i2;
+        dont_initialize();
+
 #ifdef SYSTEMCASS_SPECIFIC
-    o1 (i1);
-    o2 (i2);
+        o1(i1);
+        o2(i2);
 #endif
-  }
+    }
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  sc_clock        clk("clk");
-  sc_signal<int>  s[10];
-  hard a("a");
-  hard b("b");
-  hard c("c");
 
-  a.clk (clk);
-  b.clk (clk);
+int sc_main(int argc, char ** argv) {
+    sc_clock clk("clk");
+    sc_signal<int> s[10];
+    hard a("a");
+    hard b("b");
+    hard c("c");
 
-  a.i1 (s[0]);
+    a.clk(clk);
+    b.clk(clk);
 
-  a.o1 (s[1]);
-  b.i1 (s[1]);
+    a.i1(s[0]);
 
-  b.o1 (s[2]);
+    a.o1(s[1]);
+    b.i1(s[1]);
 
-  b.i2 (s[3]);
+    b.o1(s[2]);
 
-  b.o2 (s[4]);
-  a.i2 (s[4]);
+    b.i2(s[3]);
 
-  a.o2 (s[5]);
+    b.o2(s[4]);
+    a.i2(s[4]);
 
-  c.i1 (s[6]);
-  c.o1 (s[7]);
-  c.i2 (s[8]);
-  c.o2 (s[9]);
+    a.o2(s[5]);
 
-  sc_initialize ();
- 
-  s[0] = 1;
-  s[3] = 1;
+    c.i1(s[6]);
+    c.o1(s[7]);
+    c.i2(s[8]);
+    c.o2(s[9]);
 
-  sc_start (1);
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  s[0] = 123;
-  s[3] = 321;
+    s[0] = 1;
+    s[3] = 1;
 
-  sc_start (1);
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  return 0;
+    s[0] = 123;
+    s[3] = 321;
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/09092005a/Makefile
===================================================================
--- sources/test_regression/09092005a/Makefile	(revision 55)
+++ sources/test_regression/09092005a/Makefile	(revision 55)
@@ -0,0 +1,14 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+	
+
Index: sources/test_regression/09092005a/system.cpp
===================================================================
--- sources/test_regression/09092005a/system.cpp	(revision 55)
+++ sources/test_regression/09092005a/system.cpp	(revision 55)
@@ -0,0 +1,34 @@
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+#define ADDRSIZE   32
+#define OFFSETSIZE 6
+#define BPFSIZE    3
+
+
+int sc_main (int argc, char ** argv) {
+
+    sc_uint<ADDRSIZE> LINEADDR_MASK = ~(((sc_uint<ADDRSIZE>) ~0x0) >> (ADDRSIZE - OFFSETSIZE - BPFSIZE));
+    cout << "LINEADDR_MASK == " << std::hex << LINEADDR_MASK << endl;
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/09092005b/Makefile
===================================================================
--- sources/test_regression/09092005b/Makefile	(revision 54)
+++ sources/test_regression/09092005b/Makefile	(revision 55)
@@ -1,55 +1,13 @@
 include ../env.mk
-
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
-
-.SECONDARY:
-
-main : $(EXE) 
+include ../Makefile.common
 
 test : $(EXE_SCASS)
-	./system_systemcass.x || eval ${failcom} ; \
-	tail -n +8 trace_file.vcd | diff trace_file_reference.vcd - || eval ${failcom}
+	@echo -ne "| Testing $$(basename $$(pwd)): " ; \
+	./$(EXE_SCASS) 2> /dev/null ;
+	@if tail -n +8 trace_file.vcd | diff trace_file_reference.vcd - ; then \
+		echo "OK" ; \
+	else \
+		echo "KO" ; \
+	fi ;
 
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
 
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf trace_file.vcd
-	
Index: sources/test_regression/09092005b/system.cpp
===================================================================
--- sources/test_regression/09092005b/system.cpp	(revision 54)
+++ sources/test_regression/09092005b/system.cpp	(revision 55)
@@ -1,99 +1,105 @@
+
 #include "systemc.h"
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "test.h"
 
 using namespace std;
 
-struct hard : sc_module
-{
-  sc_in_clk    clk;
-  sc_in <int>  i1, i2;
-  sc_out<int>  o1, o2;
+struct hard : sc_module {
+    sc_in_clk clk;
+    sc_in <int> i1, i2;
+    sc_out<int> o1, o2;
 
-  void f ()
-  {
-    o1 = i1;
-    o2 = i2;
-  }
+    void f() {
+        o1 = i1;
+        o2 = i2;
+    }
 
-  SC_HAS_PROCESS(hard);
-  hard(sc_module_name)
-  {
-    SC_METHOD(f);
-    dont_initialize();
-    sensitive << i1 << i2;
+    SC_HAS_PROCESS(hard);
+
+    hard(sc_module_name) {
+        SC_METHOD(f);
+        sensitive << i1 << i2;
+        dont_initialize();
+
 #ifdef SYSTEMCASS_SPECIFIC
-    o1 (i1);
-    o2 (i2);
+        o1 (i1);
+        o2 (i2);
 #endif
-  }
+    }
+
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  sc_clock        clk1("clk1");
-  sc_clock        clk2("clk2", 1, 0.5, 0, false);
-  sc_signal<int>  s[10];
-  hard a("a");
-  hard b("b");
-  hard c("c");
 
-  a.clk (clk1);
-  b.clk (clk2);
-  c.clk (clk2);
+int sc_main (int argc, char ** argv) {
+    sc_clock clk1("clk1");
+    sc_clock clk2("clk2", 1, 0.5, 0, false);
+    sc_signal<int> s[10];
+    hard a("a");
+    hard b("b");
+    hard c("c");
 
-  a.i1 (s[0]);
+    a.clk(clk1);
+    b.clk(clk2);
+    c.clk(clk2);
 
-  a.o1 (s[1]);
-  b.i1 (s[1]);
+    a.i1(s[0]);
 
-  b.o1 (s[2]);
+    a.o1(s[1]);
+    b.i1(s[1]);
 
-  b.i2 (s[3]);
+    b.o1(s[2]);
 
-  b.o2 (s[4]);
-  a.i2 (s[4]);
+    b.i2(s[3]);
 
-  a.o2 (s[5]);
+    b.o2(s[4]);
+    a.i2(s[4]);
 
-  c.i1 (s[6]);
-  c.o1 (s[7]);
-  c.i2 (s[8]);
-  c.o2 (s[9]);
+    a.o2(s[5]);
 
- 	/* Open trace file */
-	sc_trace_file *system_trace_file;
-	system_trace_file = sc_create_vcd_trace_file ("trace_file");
-	
-	/* clks waveforms are always useful */
-	sc_trace(system_trace_file, clk1, "clk1");
-	sc_trace(system_trace_file, clk2, "clk2");
+    c.i1(s[6]);
+    c.o1(s[7]);
+    c.i2(s[8]);
+    c.o2(s[9]);
 
-  /* others signals */ 
-  for (int i = 0; i < 10; ++i)
-    sc_trace(system_trace_file, s[i], sc_gen_unique_name ("s"));
- 
-  /* initilization */
-  sc_initialize ();
+    /* Open trace file */
+    sc_trace_file *system_trace_file;
+    system_trace_file = sc_create_vcd_trace_file("trace_file");
 
-  s[0] = 1;
-  s[3] = 1;
+    /* clks waveforms are always useful */
+    sc_trace(system_trace_file, clk1, "clk1");
+    sc_trace(system_trace_file, clk2, "clk2");
 
-  sc_start (1);
+    /* others signals */ 
+    for (int i = 0; i < 10; ++i) {
+        sc_trace(system_trace_file, s[i], sc_gen_unique_name ("s"));
+    }
 
-  s[0] = 123;
-  s[3] = 321;
+    /* initilization */
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  sc_start (1);
+    s[0] = 1;
+    s[3] = 1;
 
-  return 0;
+    sc_start(sc_time(1, sc_core::SC_NS));
+
+    s[0] = 123;
+    s[3] = 321;
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/09092005c/Makefile
===================================================================
--- sources/test_regression/09092005c/Makefile	(revision 54)
+++ sources/test_regression/09092005c/Makefile	(revision 55)
@@ -1,57 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-.SECONDARY:
 
-main : $(EXE) 
-
-test : $(EXE_SCASS) ${EXE_SC}
-	@for i in ${EXE_SCASS} ${EXE_SC} ; do \
-    echo Testing $$i... ; \
-    ./$$i || eval ${failcom} ; \
-  done;
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/09092005c/system.cpp
===================================================================
--- sources/test_regression/09092005c/system.cpp	(revision 54)
+++ sources/test_regression/09092005c/system.cpp	(revision 55)
@@ -1,150 +1,121 @@
+
 #include "systemc.h"
+
 #include <iostream>
+
+#include "test.h"
 
 using namespace std;
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
 
-using namespace std;
+struct observer : sc_module {
+    sc_in_clk clk;
 
-struct observer : sc_module
-{
-  sc_in_clk    clk;
+    sc_in<int> i;
 
-  sc_in<int>   i;
+    void f() {}
 
-  void f ()
-  {
-#if 0
-    cerr << i.read();
-#endif
-  }
-
-  SC_HAS_PROCESS(observer);
-  observer(sc_module_name) : clk ("clk"),
-                             i   ("i")
-
-  {
-    SC_METHOD(f);
-    dont_initialize();
-    sensitive << clk.pos();
-#ifdef SYSTEMCASS_SPECIFIC
-#endif
-  }
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk ("clk"),
+    i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
 };
 
-struct generator : sc_module
-{
-  sc_in_clk    clk;
 
-  sc_out<int>   o;
+struct generator : sc_module {
+    sc_in_clk clk;
+    sc_out<int> o;
 
-  void f ()
-  {
-    int t = (int) (sc_time_stamp ().to_double());
-#if 0
-    cerr << "f = " << t << endl;
-#endif
-    o.write(t);
-  }
+    void f() {
+        int t = (int) (sc_time_stamp().to_double());
+        o.write(t);
+    }
 
-  SC_HAS_PROCESS(generator);
-  generator(sc_module_name) : clk ("clk"),
-                              o   ("o")
-  {
-    SC_METHOD(f);
-    dont_initialize();
-    sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-#endif
-  }
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk("clk"), o("o") {
+        SC_METHOD(f);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
-struct top_level : sc_module
-{
-  sc_in_clk    clk;
-  
-  sc_out<int>    o;
-//  sc_out<int>  io;
-//  sc_signal<int> s;
-//  sc_signal<int> s2;
 
-  generator g;
-  observer  obs1, obs2;
-  
-  SC_HAS_PROCESS(top_level);
-  top_level(sc_module_name) : g   ("generator"), 
-                              obs1("observer1"),
-                              obs2("observer2"),
-                              clk ("clk"),
-                              o   ("o")/*,
-                              s   ("s")*/
-  {
-    g.clk    (clk);
-    obs1.clk (clk);
-    obs2.clk (clk);
 
-    g.o   (o);
-    obs1.i(o);
-    obs2.i(o);
-  }
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+        clk("clk"),
+        o("o"),
+        g("generator"), 
+        obs1("observer1"),
+        obs2("observer2"){
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+    }
+
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  int errnum = 0;
-  sc_clock       clk("top_clk");
-  sc_signal<int> out("top_out");
 
-  top_level t("top_level");
+int sc_main (int argc, char ** argv) {
+    sc_clock       clk("top_clk");
+    sc_signal<int> out("top_out");
 
-  t.clk (clk);
-  t.o   (out);
+    top_level t("top_level");
 
+    t.clk(clk);
+    t.o  (out);
+
+    // QM : pourquoi est-ce tout commentÃ© ??
 #if 0
- 	/* Open trace file */
-	sc_trace_file *system_trace_file;
-	system_trace_file = sc_create_vcd_trace_file ("trace_file");
-	
-	/* clks waveforms are always useful */
-	sc_trace(system_trace_file, clk1, "clk1");
-	sc_trace(system_trace_file, clk2, "clk2");
+    /* Open trace file */
+    sc_trace_file *system_trace_file;
+    system_trace_file = sc_create_vcd_trace_file ("trace_file");
 
-  /* others signals */ 
-  for (int i = 0; i < 10; ++i)
-    sc_trace(system_trace_file, s[i], sc_gen_unique_name ("s"));
+    /* clks waveforms are always useful */
+    sc_trace(system_trace_file, clk1, "clk1");
+    sc_trace(system_trace_file, clk2, "clk2");
+
+    /* others signals */ 
+    for (int i = 0; i < 10; ++i)
+        sc_trace(system_trace_file, s[i], sc_gen_unique_name ("s"));
 #endif
 
-  /* initilization */
-#if 0 
-  cout << "initilization...\n";
-#endif
-  sc_initialize ();
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  /* simulation */
-#if 0 
-  cout << "simulation...\n";
-#endif
-  int i = 0;
-  while (i++ < 5)
-  {
-   sc_start (1);
-   ASSERT(out.read() == t.obs1.i.read())
-   ASSERT(out.read() == t.obs2.i.read())
-  }
-
-#if 0 
-  cout << "\ndone.\n";  
-#endif
-
-  return 0;
+    /* simulation */
+    int i = 0;
+    while (i++ < 5) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        cout << out.read() << " - " << t.obs1.i.read() << " - " << t.obs2.i.read() << endl;
+    }
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/11062007/Makefile
===================================================================
--- sources/test_regression/11062007/Makefile	(revision 54)
+++ sources/test_regression/11062007/Makefile	(revision 55)
@@ -1,69 +1,30 @@
+
 include ../env.mk
+RES1 = systemcass_a_nodynamiclink_10.txt
+RES2 = systemcass_p_nodynamiclink_10.txt
+RES3 = systemcass_m_nodynamiclink_10.txt
+RES4 = systemcass_dynamiclink_10.txt
+ERASE = $(RES1) $(RES2) $(RES3) $(RES4)
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test: $(SC_CASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@(./$(EXE_SCASS) --a --nodynamiclink 10 2> /dev/null ) | tail -n 5 > $(RES1)
+	@(./$(EXE_SCASS) --p --nodynamiclink 10 2> /dev/null ) | tail -n 5 > $(RES2)
+	@(./$(EXE_SCASS) --m --nodynamiclink 10 2> /dev/null ) | tail -n 5 > $(RES3)
+	@(./$(EXE_SCASS) 10 2> /dev/null ) | tail -n 5 > $(RES4)
+	@if diff $(RES1) $(RES2) > /dev/null ; then \
+		if diff $(RES1) $(RES3) > /dev/null ; then \
+			if diff $(RES1) $(RES4) > /dev/null ; then \
+				echo "OK" ; \
+			else \
+				echo "KO" ; \
+			fi ; \
+		else \
+			echo "KO" ; \
+		fi ; \
+	else \
+		echo "KO" ; \
+	fi ;
 
-RESULTS   = systemcass_dynamiclink_10.txt systemcass_m_nodynamiclink_10.txt systemcass_a_nodynamiclink_10.txt systemcass_p_nodynamiclink_10.txt
 
-.SECONDARY:
-
-main : $(EXE) 
-
-test : ${RESULTS}
-	diff systemcass_dynamiclink_10.txt systemcass_m_nodynamiclink_10.txt || eval ${failcom}
-	diff systemcass_a_nodynamiclink_10.txt systemcass_p_nodynamiclink_10.txt || eval ${failcom}
-	diff systemcass_dynamiclink_10.txt systemcass_a_nodynamiclink_10.txt || eval ${failcom}
-	@echo Test OK.
-
-systemcass_a_nodynamiclink_10.txt : system_systemcass.x
-	((./system_systemcass.x --nobanner --a --nodynamiclink 10 ) | tail -n 5  > systemcass_a_nodynamiclink_10.txt) || eval ${failcom}
-
-systemcass_p_nodynamiclink_10.txt : system_systemcass.x
-	((./system_systemcass.x --nobanner --p --nodynamiclink 10 ) | tail -n 5 > systemcass_p_nodynamiclink_10.txt) || eval ${failcom}
-
-systemcass_m_nodynamiclink_10.txt : system_systemcass.x
-	((./system_systemcass.x --nobanner --m --nodynamiclink 10 ) | tail -n 5  > systemcass_m_nodynamiclink_10.txt) || eval ${failcom}
-
-systemcass_dynamiclink_10.txt : system_systemcass.x
-	((./system_systemcass.x --nobanner 10 ) | tail -n 5 > systemcass_dynamiclink_10.txt) || eval ${failcom}
-
-%.png : %.dot
-	dot -Tpng -o $*.png $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f signal_order.txt module_order.dot signal_graph.dot port_graph.dot
-	-rm -f module_graph.dot process_order.dot
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
-	-rm -rf ${RESULTS}
-	
Index: sources/test_regression/11062007/system.cpp
===================================================================
--- sources/test_regression/11062007/system.cpp	(revision 54)
+++ sources/test_regression/11062007/system.cpp	(revision 55)
@@ -1,138 +1,159 @@
-#include <systemc.h>
+
 #include <signal.h>
 
+#include "systemc.h"
+
+#include "test.h"
+
 using namespace std;
-	
+
+
 struct A : sc_module {
-	sc_in_clk                       clk;
-	sc_out<bool>                    o1;
+    sc_in_clk clk;
+    sc_out<bool> o1;
 
-	void eval () {
-    o1 = (rand()%2) == 0;
-	}
+    void eval() {
+        o1 = (rand() % 2) == 0;
+    }
 
-	SC_CTOR (A) : clk ("clk"), o1("o1") {
-		SC_METHOD(eval);
-		sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-//		s1();
-#endif
-	};
+    SC_CTOR(A) : clk ("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
 };
 
+
 struct B : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
 
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
+    void eval1() {
+        o1 = ~i1;
+    }
 
-	SC_CTOR (B) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    SC_CTOR(B) : clk("clk"), i1("i1"), i2("i2"), o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
+        o1(i1);
 #endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
+        o2(i2);
 #endif
-	};
+    }
 };
 
+
 struct C : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_out<bool>                    o1;
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_out<bool> o1;
 
-	void eval1 () {
-    o1 = i1 ^ i2;
-	}
+    void eval1() {
+        o1 = i1 ^ i2;
+    }
 
-	SC_CTOR (C) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1 << i2;
+    SC_CTOR(C) : clk ("clk"), i1 ("i1"), i2("i2"), o1("o1") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1 << i2;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-		o1(i2);
+        o1(i1);
+        o1(i2);
 #endif
-	};
+    }
+
 };
 
+
 struct D : sc_module {
-	sc_in_clk                       clk;
-	sc_out<bool>                    o1;
+    sc_in_clk    clk;
+    sc_out<bool> o1;
 
-	void eval () {
-    o1 = (rand()%2) == 0;
-	}
+    void eval () {
+        o1 = (rand() % 2) == 0;
+    }
 
-	SC_CTOR (D) : clk ("clk"), o1("o1") {
-		SC_METHOD(eval);
-		sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-//		s1();
-#endif
-	};
+    SC_CTOR(D) : clk ("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-	sc_clock                     signal_clk("my_clock",1, 0.5);
-	sc_signal<bool>              s1("s1"),s2("s2"),s3("s3"),s4("s4"),s5("s5");
 
-	A      a("a");
-	B      b("b");
-	C      c("c");
-	D      d("d");
-	
-	a.clk         (signal_clk);
-	b.clk         (signal_clk);
-	c.clk         (signal_clk);
-	d.clk         (signal_clk);
-	
-	a.o1          (s1);
-	b.i1          (s1);
-		
-	d.o1          (s2);
-	c.i2          (s2);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock",1, 0.5);
+    sc_signal<bool> s1("s1"),s2("s2"),s3("s3"),s4("s4"),s5("s5");
 
-	b.o1          (s3);
-	c.i1          (s3);
-	
-	c.o1          (s4);
-	b.i2          (s4);
-	
-	b.o2          (s5);
-	
-	// Init & run
-	sc_initialize ();
+    A a("a");
+    B b("b");
+    C c("c");
+    D d("d");
 
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+
+    a.o1(s1);
+    b.i1(s1);
+
+    d.o1(s2);
+    c.i2(s2);
+
+    b.o1(s3);
+    c.i1(s3);
+
+    c.o1(s4);
+    b.i2(s4);
+
+    b.o2(s5);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    if (argc == 1) {
+        cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+        return EXIT_SUCCESS;
+    }
+
+    sc_start(sc_time(atoi(argv[1]), sc_core::SC_NS));
+
+    cout << s1.read() << endl;
+    cout << s2.read() << endl;
+    cout << s3.read() << endl;
+    cout << s4.read() << endl;
+    cout << s5.read() << endl;
+
     return EXIT_SUCCESS;
-  }
+}
 
-  sc_start (atoi(argv[1]));
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
 
-  cout << s1.read() << endl;
-  cout << s2.read() << endl;
-  cout << s3.read() << endl;
-  cout << s4.read() << endl;
-  cout << s5.read() << endl;
-
-	return EXIT_SUCCESS;
-}
Index: sources/test_regression/14092005/Makefile
===================================================================
--- sources/test_regression/14092005/Makefile	(revision 54)
+++ sources/test_regression/14092005/Makefile	(revision 55)
@@ -1,65 +1,27 @@
+
 include ../env.mk
+TRACE1 = trace_file_scass.vcd
+TRACE2 = trace_file_systemc.vcd
+ERASE = $(TRACE1) $(TRACE2)
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+TRACE = trace_file.vcd
+TRACE_REF = trace_file_reference.vcd
 
-.SECONDARY:
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@mv $(TRACE) $(TRACE1)
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@mv $(TRACE) $(TRACE2)
+	@if tail -n +11 $(TRACE1) | diff $(TRACE_REF) - > /dev/null ; then \
+		if tail -n +11 $(TRACE2) | diff $(TRACE_REF) - > /dev/null ; then \
+			echo "OK" ; \
+		else \
+			echo "KO" ; \
+		fi ; \
+	else \
+		echo "KO" ; \
+	fi ;
 
-main : $(EXE) 
 
-test : trace_file_scass.vcd trace_file_systemc.vcd trace_file_reference.vcd
-	-diff trace_file_systemc.vcd trace_file_scass.vcd
-	diff trace_file_reference.vcd trace_file_scass.vcd
-
-trace_file_scass.vcd : system_systemcass.x
-	./system_systemcass.x
-	tail -n +11 trace_file.vcd > trace_file_temp.vcd
-	mv trace_file_temp.vcd trace_file_scass.vcd
-
-trace_file_systemc.vcd : system_systemc.x
-	./system_systemc.x
-	tail -n +11 trace_file.vcd > trace_file_temp.vcd
-	mv trace_file_temp.vcd trace_file_systemc.vcd
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf trace_file.vcd
-	
Index: sources/test_regression/14092005/system.cpp
===================================================================
--- sources/test_regression/14092005/system.cpp	(revision 54)
+++ sources/test_regression/14092005/system.cpp	(revision 55)
@@ -1,99 +1,100 @@
+// Le test Ã©choue 
+// Par ailleurs, la rÃ©fÃ©rence est la trace de systemcass ; je pense qu'il faudrait changer Ã§a
+
 #include "systemc.h"
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "test.h"
+
 
 using namespace std;
 
-struct hard : sc_module
-{
-  sc_in_clk        clk;
-  sc_in<bool>      resetn;
-  sc_in <int>      i1;
-  sc_out<int>      o1;
-  sc_signal <int>  r1;
+struct hard : sc_module {
+    sc_in_clk       clk;
+    sc_in<bool>     resetn;
+    sc_in <int>     i1;
+    sc_out<int>     o1;
+    sc_signal <int> r1;
 
-  void fg ()
-  {
-    o1 = r1;
-  }
+    void fg() {
+        o1 = r1;
+    }
 
-  void ft ()
-  {
-    if (resetn.read())
-      r1 = i1;
-    else
-      r1 = 0x0;
-  }
+    void ft() {
+        if (resetn.read()) {
+            r1 = i1;
+        }
+        else {
+            r1 = 0x0;
+        }
+    }
 
-  SC_HAS_PROCESS(hard);
-  hard(sc_module_name)
-  {
-    SC_METHOD(ft);
-    dont_initialize();
-    sensitive << clk.pos();
-    SC_METHOD(fg);
-    dont_initialize();
-    sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-#endif
-  }
+    SC_HAS_PROCESS(hard);
+
+    hard(sc_module_name) {
+        SC_METHOD(ft);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(fg);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  int errnum = 0;
-  sc_clock        clk1("clk1", 1, 0.5,0,true);
-  sc_signal<bool> resetn;
-  sc_signal<int>  s[10];
-  hard a("a");
 
-  a.clk    (clk1);
-  a.resetn (resetn);
+int sc_main (int argc, char ** argv) {
+    sc_clock clk1("clk1", 1, 0.5, 0, true);
+    sc_signal<bool> resetn;
+    sc_signal<int> s[10];
+    hard a("a");
 
-  a.i1 (s[0]);
-  a.o1 (s[1]);
+    a.clk   (clk1);
+    a.resetn(resetn);
 
- 	/* Open trace file */
-	sc_trace_file *system_trace_file;
-	system_trace_file = sc_create_vcd_trace_file ("trace_file");
-	
-	/* clks waveforms are always useful */
-	sc_trace(system_trace_file, resetn, "resetn");
-	sc_trace(system_trace_file, s[0],   "i1");
-	sc_trace(system_trace_file, s[1],   "o1");
-	sc_trace(system_trace_file, clk1,   "clk1");
+    a.i1(s[0]);
+    a.o1(s[1]);
 
-  /* initilization */
-  sc_initialize ();
+    /* Open trace file */
+    sc_trace_file *system_trace_file;
+    system_trace_file = sc_create_vcd_trace_file ("trace_file");
 
-  s[0] = 0;
-  resetn = 0;
+    /* clks waveforms are always useful */
+    sc_trace(system_trace_file, resetn, "resetn");
+    sc_trace(system_trace_file, s[0], "i1");
+    sc_trace(system_trace_file, s[1], "o1");
+    sc_trace(system_trace_file, clk1, "clk1");
 
-  sc_start (5);
+    /* initilization */
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  s[0] = 0x7B;
-  resetn = 1;
+    s[0] = 0;
+    resetn = 0;
 
-  sc_start (1);
+    sc_start(sc_time(5, sc_core::SC_NS));
 
-  for (int i = 0; i < 10; i++)
-  {
-    s[0] = i;
-    sc_start (1);
-//    cout << i << " " << s[1].read() << " " << a.o1.read() << endl;
-    //ASSERT(((i > 0) && (s[1].read() == i - 1)) || ((i == 0) && (s[1].read() == 0x7B)));
-    ASSERT(s[1].read() == i);
-  }
+    s[0] = 0x7B;
+    resetn = 1;
 
-  cout << "Test OK\n";
-  return 0;
+    sc_start(sc_time(1, sc_core::SC_NS));
+
+    for (int i = 0; i < 10; i++) {
+        s[0] = i;
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(s[1].read() == i);
+    }
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15042009a/Makefile
===================================================================
--- sources/test_regression/15042009a/Makefile	(revision 55)
+++ sources/test_regression/15042009a/Makefile	(revision 55)
@@ -0,0 +1,15 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
+
Index: sources/test_regression/15042009a/system.cpp
===================================================================
--- sources/test_regression/15042009a/system.cpp	(revision 55)
+++ sources/test_regression/15042009a/system.cpp	(revision 55)
@@ -0,0 +1,156 @@
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+
+#define MASK 0x0000000FFFFFFFFFLLU
+
+
+typedef sc_uint<36> data_type; 
+
+struct observer : sc_module {
+    sc_in_clk clk;
+
+    sc_in<data_type> i;
+
+    void f() {
+        printf("0x%016llx\n", (unsigned long long int) i.read());
+        data_type t = i.read();
+
+        if (t == 7) {
+            cout << "(== 0x7)\n";
+        }
+        t <<= 1;
+
+        if (t == 14) {
+            cout << "((t << 1) == 0xe)\n";
+        }
+
+        t += 1;
+
+        if (t == 15) {
+            cout << "(((t << 1) + 1) == 0xf)\n";
+        }
+
+        t = t >> 1;
+
+        if (t == 7) {
+            cout << "((((t << 1) + 1) >> 1) == 0x7)\n";
+        }
+
+    }
+
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk ("clk"), i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
+
+struct generator : sc_module {
+    sc_in_clk clk;
+
+    sc_out<data_type> o;
+    sc_in<data_type>  i;
+
+    long long int t;
+
+    void f() {
+        t <<= 1;
+        t++;
+        o.write(t);
+    }
+
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk ("clk"), o("o") {
+        t = 1;
+        SC_METHOD(f);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i);
+#endif
+    }
+
+};
+
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<data_type> o;
+    sc_in <data_type> i;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+    clk ("clk"),
+    o("o"),
+    i("i"),
+    g("generator"), 
+    obs1("observer1"),
+    obs2("observer2") {
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.i(i);
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i); // wrong declaration that needs detection (no sc_method)
+#endif
+    }
+
+};
+
+
+int sc_main(int argc, char ** argv) {
+    sc_clock             clk("top_clk");
+    sc_signal<data_type> out("top_out");
+    sc_signal<data_type> in("top_in");
+
+    top_level t("top_level");
+
+    t.clk(clk);
+    t.o(out);
+    t.i(in);
+
+    /* initilization */
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    /* simulation */
+    int i = 0;
+    while (i++ < 40) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(out.read() == t.obs1.i.read())
+        ASSERT(out.read() == t.obs2.i.read())
+        ASSERT(out.read() == (t.g.t & MASK))
+        printf("0x%08x - 0x%08x - 0x%08x - 0x%llx\n", (unsigned int) out.read(), (unsigned int) t.obs1.i.read(), (unsigned int) t.obs2.i.read(), (t.g.t & MASK));
+    }
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15042009b/Makefile
===================================================================
--- sources/test_regression/15042009b/Makefile	(revision 55)
+++ sources/test_regression/15042009b/Makefile	(revision 55)
@@ -0,0 +1,15 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
+
Index: sources/test_regression/15042009b/system.cpp
===================================================================
--- sources/test_regression/15042009b/system.cpp	(revision 55)
+++ sources/test_regression/15042009b/system.cpp	(revision 55)
@@ -0,0 +1,48 @@
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+
+
+using namespace std;
+
+typedef sc_uint<36> data_type; 
+
+int sc_main (int argc, char ** argv) {
+    sc_uint<36> a, b, c;
+    const long long int ca = 0xf00000000LLU;
+    const long long int cb = 0x123456789LLU;
+    a = ca;
+    b = cb;
+
+    c = a & b;
+    if (c != (ca & cb)) {
+        return 1;
+    }
+
+    c = a;
+    if (a != c) {
+        return 1;
+    }
+    if (!(a == c)) {
+        return 1;
+    }
+
+    cout << "OK" << endl;
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15042009c/Makefile
===================================================================
--- sources/test_regression/15042009c/Makefile	(revision 55)
+++ sources/test_regression/15042009c/Makefile	(revision 55)
@@ -0,0 +1,15 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
+
Index: sources/test_regression/15042009c/system.cpp
===================================================================
--- sources/test_regression/15042009c/system.cpp	(revision 55)
+++ sources/test_regression/15042009c/system.cpp	(revision 55)
@@ -0,0 +1,75 @@
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+
+typedef sc_uint<36> data_type; 
+
+
+class param_t {
+    public:
+    static const unsigned int B = 36;
+    typedef sc_dt::sc_uint<B> be_t;
+};
+
+
+template <typename param_t>
+class test_t {
+    public:
+    typedef typename param_t::be_t test_be_t;
+
+    test_be_t test_be;
+};
+
+
+int sc_main (int argc, char ** argv) {
+    sc_uint<36> a;
+    const long long int ca = 0xf00000000LLU;
+    a = ca;
+
+    test_t<param_t> test1, test2;
+    test1.test_be = a;
+    test2.test_be = ca;
+
+    if (test1.test_be != test2.test_be) {
+        return 1;
+    }
+
+    bool ret = (test1.test_be == a);
+    if (!ret) {
+        return 1;
+    }
+
+    cout << "OK" << endl;
+    return 0;
+
+    /* the following should be compiled and not executed */
+    // QM : je ne sais pas pourquoi ; je n'ai pas cherchÃ© mais Ã§a seg faulte...
+    sc_signal<test_t<param_t>::test_be_t > sig_test;
+    sig_test = test1.test_be;
+
+    ret = (sig_test.read() == test2.test_be); /* OK */
+    if (!ret) {
+        return 1;
+    }
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15062006/Makefile
===================================================================
--- sources/test_regression/15062006/Makefile	(revision 54)
+++ sources/test_regression/15062006/Makefile	(revision 55)
@@ -1,87 +1,15 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SOCVIEW_INC    = ${SOCVIEW}/include
-SOCVIEW_LIB    = ${SOCVIEW}/lib-linux/libsystemc.a
-CFLAGS_SOCVIEW = ${CFLAGS} -DSOCVIEW -I${SOCVIEW_INC}
-LFLAGS_SOCVIEW = ${LFLAGS} -ltermcap -lreadline ${SOCVIEW_LIB}
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE_SVIEW = $(SYSTEM:.cpp=_socview.x)
-EXE       = ${EXE_SCASS} ${EXE_SVIEW} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
 
-TEST1_DAT = \
-           test_socview_1.dat test_socview_1_reloaded.dat   \
-           test_socview_2.dat test_socview_2_reloaded.dat   \
-           test_socview_3.dat test_socview_3_reloaded.dat   \
-           test_socview_3b.dat test_socview_3_reloaded_bis.dat   \
-           test_socview_4.dat test_socview_4_reloaded.dat   \
-           test_socview_5.dat test_socview_5_reloaded.dat   \
-           test_socview_6.dat test_socview_6_reloaded.dat   \
-           test_socview_7.dat test_socview_7_reloaded.dat   \
-           test_socview_8.dat test_socview_8_reloaded.dat   \
-           test_socview_9.dat test_socview_9_reloaded.dat   \
-           test_socview_10.dat test_socview_10_reloaded.dat \
-           test_socview_10b.dat \
 
-TEST2_DAT = test2_socview_10.dat \
-            test2_socview_24a.dat test2_socview_24b.dat test2_socview_24c.dat \
-            test2_socview_20a.dat test2_socview_20b.dat test2_systemcass_20.dat
-
-.SECONDARY:
-
-main : $(EXE)
-
-test : system_systemcass.x
-	./system_systemcass.x
-	
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
-%_socview.x : %_socview.o  $(SOCVIEW_LIB)
-	$(CXX) -o $@ $*_socview.o $(LFLAGS_SOCVIEW)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_socview.cpp : %.cpp 
-	ln -s $*.cpp $*_socview.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-%_socview.o : %_socview.cpp
-	$(CXX) $(CFLAGS_SOCVIEW) -MM $*_socview.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SOCVIEW) -c $*_socview.cpp -o $*_socview.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f results
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/15062006/system.cpp
===================================================================
--- sources/test_regression/15062006/system.cpp	(revision 54)
+++ sources/test_regression/15062006/system.cpp	(revision 55)
@@ -1,12 +1,9 @@
+// QM : je ne sais ce que cherche Ã  tester ce test
+// Dans le doute j'applique un traitement par dÃ©faut (diff sc) avec un cout "OK"
+
 #include <systemc.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "test.h"
+
 
 using namespace std;
@@ -14,91 +11,94 @@
 template<typename datatype>
 class module_base : public sc_module {
-public:
-	sc_in_clk                       clk;
-  sc_in<datatype>                 i1;
-  sc_out<datatype>                o1;
-  sc_signal<datatype>             reg1;
 
-private:
-  void trans_module_base ()
-  {
-  }
-  void gen_module_base ()
-  {
-    this->kikoo ();
-  }
-  virtual void kikoo () = 0;
+    public:
+    sc_in_clk clk;
+    sc_in<datatype> i1;
+    sc_out<datatype> o1;
+    sc_signal<datatype> reg1;
 
-public:
-  SC_HAS_PROCESS(module_base);
-	module_base (sc_module_name n) : sc_module (n),
-    clk("clk"),
-    i1("i1"), 
-    o1("o1"),
-    reg1("reg1")
-  {
-		SC_METHOD(trans_module_base);
-		sensitive << clk.pos();
-    dont_initialize();
-		SC_METHOD(gen_module_base);
-		sensitive << clk.neg();
-    dont_initialize();
-  }
+    private:
+    void trans_module_base() {}
+    void gen_module_base() {
+        this->kikoo ();
+    }
+    virtual void kikoo() = 0;
+
+
+    public:
+    SC_HAS_PROCESS(module_base);
+    module_base (sc_module_name n) : sc_module (n),
+        clk("clk"), i1("i1"), o1("o1"), reg1("reg1") {
+        SC_METHOD(trans_module_base);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_module_base);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
 };
+
 
 template<typename datatype>
 class test : public module_base<datatype> {
-public:
-  sc_in<datatype>                      i2;
-  sc_out<datatype>                     o2;
-  sc_signal<datatype>                  reg2;
 
-private:
-  void trans ()
-  {
-  }
+    public:
+    sc_in<datatype> i2;
+    sc_out<datatype> o2;
+    sc_signal<datatype> reg2;
 
-  void gen ()
-  {
-  }
-  virtual void kikoo ()
-  { }
+    private:
+    void trans() {}
 
-public:
-  SC_HAS_PROCESS(test);
-	test (sc_module_name n) : module_base<datatype> (n),
+    void gen() {}
+
+    virtual void kikoo() {}
+
+    public:
+    SC_HAS_PROCESS(test);
+    test(sc_module_name n) : module_base<datatype> (n),
     i2("i2"), 
     o2("o2"),
-    reg2("reg2")
-  {
-		SC_METHOD(trans);
-		this->sensitive << this->clk.pos();
-    this->dont_initialize();
-		SC_METHOD(gen);
-		this->sensitive << this->clk.neg();
-    this->dont_initialize();
-	}
+    reg2("reg2") {
+        SC_METHOD(trans);
+        this->sensitive << this->clk.pos();
+        this->dont_initialize();
+
+        SC_METHOD(gen);
+        this->sensitive << this->clk.neg();
+        this->dont_initialize();
+    }
 };
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock        signal_clk("my_clock",1, 0.5);
-  sc_signal<int>     s01("s01"),
-                     s02("s02"),
-                     s03("s03"),
-                     s04("s04");
 
-  test<int> test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s01);
-  test1.i2 (s02);
-  test1.o1 (s03);
-  test1.o2 (s04);
+int sc_main(int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<int> s01("s01"), s02("s02"), s03("s03"), s04("s04");
 
-	// Init & run
-	sc_start (0);
+    test<int> test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s01);
+    test1.i2(s02);
+    test1.o1(s03);
+    test1.o2(s04);
 
-	return EXIT_SUCCESS;
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    cout << "OK" << endl;
+    return EXIT_SUCCESS;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15092005a/Makefile
===================================================================
--- sources/test_regression/15092005a/Makefile	(revision 55)
+++ sources/test_regression/15092005a/Makefile	(revision 55)
@@ -0,0 +1,14 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
Index: sources/test_regression/15092005a/system.cpp
===================================================================
--- sources/test_regression/15092005a/system.cpp	(revision 55)
+++ sources/test_regression/15092005a/system.cpp	(revision 55)
@@ -0,0 +1,119 @@
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+struct observer : sc_module {
+    sc_in_clk clk;
+
+    sc_in<int> i;
+
+    void f() {}
+
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk("clk"), i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+};
+
+
+struct generator : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in<int> i;
+
+    void f() {
+        int t = (int) (sc_time_stamp().to_double());
+        o.write(t);
+    }
+
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk("clk"), o("o") {
+        SC_METHOD(f);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i);
+#endif
+    }
+
+};
+
+
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in <int> i;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+    clk("clk"),
+    o("o"),
+    i("i"),
+    g("generator"), 
+    obs1("observer1"),
+    obs2("observer2") {
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.i(i);
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i); // wrong declaration that needs detection (no sc_method)
+#endif
+    }
+
+};
+
+
+int sc_main (int argc, char ** argv) {
+    sc_clock clk("top_clk");
+    sc_signal<int> out("top_out");
+    sc_signal<int> in ("top_in");
+
+    top_level t("top_level");
+
+    t.clk(clk);
+    t.o(out);
+    t.i(in);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    int i = 0;
+    while (i++ < 5) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(out.read() == t.obs1.i.read());
+        ASSERT(out.read() == t.obs2.i.read());
+    }
+
+    cout << "OK" << endl;
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15092005b/Makefile
===================================================================
--- sources/test_regression/15092005b/Makefile	(revision 55)
+++ sources/test_regression/15092005b/Makefile	(revision 55)
@@ -0,0 +1,20 @@
+
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+		./$(EXE_SCASS) --p --d 2> /dev/null ; \
+		if [ $$? -eq 37 ] ; then \
+			echo "OK" ; \
+		else \
+			echo "KO" ; \
+		fi ; \
+	else \
+		echo "KO" ; \
+	fi ;
+
+
Index: sources/test_regression/15092005b/system.cpp
===================================================================
--- sources/test_regression/15092005b/system.cpp	(revision 55)
+++ sources/test_regression/15092005b/system.cpp	(revision 55)
@@ -0,0 +1,123 @@
+
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+
+struct observer : sc_module {
+    sc_in_clk clk;
+
+    sc_in<int> i;
+
+    void f() {}
+
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk("clk"), i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
+
+struct generator : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in<int>  i;
+
+    void f() {
+        int t = (int) (sc_time_stamp ().to_double());
+        o.write(t);
+    }
+
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk ("clk"), o("o") {
+        SC_METHOD(f);
+        sensitive << clk.neg();
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i);
+#endif
+    }
+
+};
+
+
+
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in <int> i;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+    clk ("clk"),
+    o("o"),
+    i("i"),
+    g("generator"),
+    obs1("observer1"),
+    obs2("observer2") {
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.i(i);
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+
+#ifdef SYSTEMCASS_SPECIFIC
+        o  (i);
+        g.o(obs1.i); // <----- wrong declaration that needs detection
+#endif
+    }
+};
+
+
+int sc_main (int argc, char ** argv) {
+    sc_clock       clk("top_clk");
+    sc_signal<int> out("top_out");
+    sc_signal<int> in ("top_in");
+
+    top_level t("top_level");
+
+    t.clk(clk);
+    t.o(out);
+    t.i(in);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    /* simulation */
+    int i = 0;
+    while (i++ < 5) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(out.read() == t.obs1.i.read());
+        ASSERT(out.read() == t.obs2.i.read());
+    }
+
+    cout << "OK" << endl;
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15092005c/Makefile
===================================================================
--- sources/test_regression/15092005c/Makefile	(revision 55)
+++ sources/test_regression/15092005c/Makefile	(revision 55)
@@ -0,0 +1,11 @@
+
+include ../env.mk
+include ../Makefile.common
+
+
+test: $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$< 2> /dev/null ; \
+	if [ $$? -eq 165 ] ; then echo "OK" ; else echo "KO" ; fi ;
+
+
Index: sources/test_regression/15092005c/system.cpp
===================================================================
--- sources/test_regression/15092005c/system.cpp	(revision 55)
+++ sources/test_regression/15092005c/system.cpp	(revision 55)
@@ -0,0 +1,117 @@
+
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+
+struct observer : sc_module {
+    sc_in_clk clk;
+
+    sc_in<int> i;
+
+    void f() {}
+
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk("clk"), i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
+
+struct generator : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in<int>  i;
+
+    void f() {
+        int t = (int) (sc_time_stamp ().to_double());
+        o.write(t);
+    }
+
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk ("clk"), o("o") {
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i);
+#endif
+        SC_METHOD(f);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+    }
+
+};
+
+
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in <int> i;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+    clk ("clk"),
+    o("o"),
+    i("i"),
+    g("generator"), 
+    obs1("observer1"),
+    obs2("observer2") {
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.i(i);
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+    }
+
+};
+
+
+int sc_main (int argc, char ** argv) {
+    sc_clock       clk("top_clk");
+    sc_signal<int> out("top_out");
+    sc_signal<int> in("top_in");
+
+    top_level t("top_level");
+
+    t.clk(clk);
+    t.o(out);
+    t.i(in);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    /* simulation */
+    int i = 0;
+    while (i++ < 5) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(out.read() == t.obs1.i.read());
+        ASSERT(out.read() == t.obs2.i.read());
+    }
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/15092005d/Makefile
===================================================================
--- sources/test_regression/15092005d/Makefile	(revision 55)
+++ sources/test_regression/15092005d/Makefile	(revision 55)
@@ -0,0 +1,11 @@
+
+include ../env.mk
+include ../Makefile.common
+
+
+test: $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$< 2> /dev/null ; \
+	if [ $$? -eq 101 ] ; then echo "OK" ; else echo "KO" ; fi ;
+
+
Index: sources/test_regression/15092005d/system.cpp
===================================================================
--- sources/test_regression/15092005d/system.cpp	(revision 55)
+++ sources/test_regression/15092005d/system.cpp	(revision 55)
@@ -0,0 +1,124 @@
+
+
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+struct observer : sc_module {
+    sc_in_clk clk;
+
+    sc_in<int> i;
+
+    void f() {}
+
+    SC_HAS_PROCESS(observer);
+    observer(sc_module_name) : clk("clk"), i("i") {
+        SC_METHOD(f);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
+
+struct generator : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in<int>  i;
+
+    void f() {
+        int t = (int) (sc_time_stamp ().to_double());
+        o.write(t);
+    }
+
+    SC_HAS_PROCESS(generator);
+    generator(sc_module_name) : clk ("clk"), o("o") {
+        SC_METHOD(f);
+        sensitive << clk.neg() << i;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i);
+#endif
+    }
+
+};
+
+
+struct top_level : sc_module {
+    sc_in_clk clk;
+
+    sc_out<int> o;
+    sc_in <int> i;
+
+    generator g;
+    observer obs1, obs2;
+
+    SC_HAS_PROCESS(top_level);
+    top_level(sc_module_name) :
+    clk ("clk"),
+    o("o"),
+    i("i"),
+    g("generator"), 
+    obs1("observer1"),
+    obs2("observer2") {
+        g.clk(clk);
+        obs1.clk(clk);
+        obs2.clk(clk);
+
+        g.i(i);
+        g.o(o);
+        obs1.i(o);
+        obs2.i(o);
+
+#ifdef SYSTEMCASS_SPECIFIC
+        o(i); // wrong declaration that needs detection (no sc_method)
+#endif
+    }
+
+};
+
+
+int sc_main (int argc, char ** argv) {
+    sc_clock       clk("top_clk");
+    sc_signal<int> out("top_out");
+    sc_signal<int> in ("top_in");
+
+    top_level t("top_level");
+
+    t.clk(clk);
+    t.o(out);
+    t.i(in);
+
+#ifdef SYSTEMCASS_SPECIFIC
+    t.o(t.i);
+#endif
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    /* simulation */
+    int i = 0;
+    while (i++ < 5) {
+        sc_start(sc_time(1, sc_core::SC_NS));
+        ASSERT(out.read() == t.obs1.i.read());
+        ASSERT(out.read() == t.obs2.i.read());
+    }
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16022007/Makefile
===================================================================
--- sources/test_regression/16022007/Makefile	(revision 54)
+++ sources/test_regression/16022007/Makefile	(revision 55)
@@ -1,54 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
 
-.SECONDARY:
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-main : $(EXE) 
-
-test : ${EXE}
-	((./system_systemcass.x 3 ) 2>&1 | grep "Cycle Accurate System Simulator") || eval ${failcom}
-	(./system_systemcass.x --nobanner 3 ) 2>&1 | grep "Cycle Accurate System Simulator" ; \
-  if [ $$? -ne 1 ] ; then eval ${failcom} ; fi
-	@echo Test OK.
-
-%.png : %.dot
-	dot -Tpng -o $*.png $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f signal_order.txt module_order.dot signal_graph.dot port_graph.dot
-	-rm -f module_graph.dot process_order.dot
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
-	
Index: sources/test_regression/16022007/system.cpp
===================================================================
--- sources/test_regression/16022007/system.cpp	(revision 54)
+++ sources/test_regression/16022007/system.cpp	(revision 55)
@@ -1,264 +1,305 @@
-#include <systemc.h>
+
 #include <signal.h>
 
+#include "systemc.h"
+#include "test.h"
+
+// QM : je pense que le test n'est pas bon : il est a priori normal que l'ordre et le nombre d'appels aux fonctions diffÃšrent entre SC et SCASS
+
 using namespace std;
-	
+
+
 struct M_0i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_out<bool>                    o1;
-
-	void eval () {
-    o1 = (rand()%2) == 0;
-    printf ("M_0i1o::eval ()\n");
-	}
-
-	SC_CTOR (M_0i1o) : clk ("clk"), o1("o1") {
-		SC_METHOD(eval);
-		sensitive << clk.neg();
-	};
+    sc_in_clk clk;
+    sc_out<bool> o1;
+
+    void eval() {
+        o1 = (rand() % 2) == 0;
+        printf("M_0i1o::eval ()\n");
+    }
+
+    SC_CTOR (M_0i1o) : clk("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
 struct M_1i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_out<bool>                    o1;
-
-	void eval1 () {
-    o1 = ~i1;
-    printf ("M_1i1o::eval1 ()\n");
-	}
-
-	SC_CTOR (M_1i1o) : clk ("clk"), i1 ("i1"), o1("o1") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-	};
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_out<bool> o1;
+
+    void eval1() {
+        o1 = ~i1;
+        printf("M_1i1o::eval1 ()\n");
+    }
+
+    SC_CTOR (M_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+    }
+
 };
 
 
 struct M_2i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-    printf ("M_2i2o::eval1 ()\n");
-	}
-	void eval2 () {
-    o2 = ~i2;
-    printf ("M_2i2o::eval2 ()\n");
-	}
-
-	SC_CTOR (M_2i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-	};
-};
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_in<bool> i2;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+        printf("M_2i2o::eval1 ()\n");
+    }
+
+    void eval2() {
+        o2 = ~i2;
+        printf("M_2i2o::eval2 ()\n");
+    }
+
+    SC_CTOR (M_2i2o) : clk("clk"), i1("i1"), i2("i2"), o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+    }
+
+};
+
 
 struct M_4i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-    printf ("M_4i2o::eval1 ()\n");
-	}
-	void eval2 () {
-    o2 = ~i2;
-    printf ("M_4i2o::eval2 ()\n");
-	}
-  void eval3 () {
-    cout << i3 << i4 << "\n";
-    printf ("M_4i2o::eval3 ()\n");
-  }
-
-	SC_CTOR (M_4i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"),
-i3 ("i3"), i4 ("i4") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-		SC_METHOD(eval3);
-		sensitive << clk.pos();
-	};
-};
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_in<bool> i2;
+    sc_in<bool> i3;
+    sc_in<bool> i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+        printf("M_4i2o::eval1 ()\n");
+    }
+
+    void eval2() {
+        o2 = ~i2;
+        printf("M_4i2o::eval2 ()\n");
+    }
+
+    void eval3() {
+        cout << i3 << i4 << "\n";
+        printf("M_4i2o::eval3 ()\n");
+    }
+
+    SC_CTOR (M_4i2o) : clk ("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"),
+    o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+
+        SC_METHOD(eval3);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
 
 struct M_4i3o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-	sc_out<bool>                    o3;
-
-	void eval1 () {
-    o1 = ~i1;
-    printf ("M_4i3o::eval1 ()\n");
-	}
-	void eval2 () {
-    o2 = ~i2;
-    printf ("M_4i3o::eval2 ()\n");
-	}
-  void eval3 () {
-    o3 = ~i3;
-    printf ("M_4i3o::eval3 ()\n");
-  }
-  void eval4 () {
-    cout << i4 << "\n";
-  }
-
-	SC_CTOR (M_4i3o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"), i3 ("i3"), i4 ("i4"), o3 ("o3") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-		SC_METHOD(eval4);
-		sensitive << clk.pos();
-		// sensitive << i4;
-		SC_METHOD(eval3);
-		sensitive << clk.neg();
-		sensitive << i3;
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_in<bool> i2;
+    sc_in<bool> i3;
+    sc_in<bool> i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+    sc_out<bool> o3;
+
+    void eval1() {
+        o1 = ~i1;
+        printf("M_4i3o::eval1 ()\n");
+    }
+
+    void eval2() {
+        o2 = ~i2;
+        printf("M_4i3o::eval2 ()\n");
+    }
+
+    void eval3() {
+        o3 = ~i3;
+        printf("M_4i3o::eval3 ()\n");
+    }
+
+    void eval4() {
+        cout << i4 << "\n";
+    }
+
+    SC_CTOR (M_4i3o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"), o1("o1"), o2("o2"), o3("o3") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+
+        SC_METHOD(eval4);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(eval3);
+        sensitive << clk.neg();
+        sensitive << i3;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-		o3(i3);
+        o3(i3);
 #endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-	};
-};
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+    }
+
+};
+
 
 struct M_1i0o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-
-	void eval1 () {
-    cout << i1.read() << "\n";
-    printf ("M_1i0o::eval1 ()\n");
-	}
-
-	SC_CTOR (M_1i0o) : clk ("clk"), i1 ("i1") {
-		SC_METHOD(eval1);
-		sensitive << clk.pos();
-		// sensitive << i1;
-	};
-};
-
-int sc_main (int argc, char *argv[])
-{
-	sc_clock                     signal_clk("my_clock",1, 0.5);
-	sc_signal<bool>              s1 ("s01"),
-                               s2 ("s02"),
-                               s3 ("s03"),
-                               s4 ("s04"),
-                               s5 ("s05"),
-                               s6 ("s06"),
-                               s7 ("s07"),
-                               s8 ("s08"),
-                               s9 ("s09"),
-                               s10("s10"),
-                               s11("s11"),
-                               s12("s12"),
-                               s13("s13"),
-                               s14("s14"),
-                               s15("s15");
-                               
-
-	M_0i1o      a("a");
-	M_4i2o      b("b");
-	M_1i1o      c("c");
-	M_4i3o      d("d");
-	M_1i1o      e("e");
-	M_1i1o      f("f");
-	M_2i2o      g("g");
-	M_1i1o      h("h");
-	M_1i0o      i("i");
-	M_0i1o      j("j");
-	M_0i1o      k("k");
-	M_0i1o      l("l");
-	
-	a.clk         (signal_clk);
-	b.clk         (signal_clk);
-	c.clk         (signal_clk);
-	d.clk         (signal_clk);
-	e.clk         (signal_clk);
-	f.clk         (signal_clk);
-	g.clk         (signal_clk);
-	h.clk         (signal_clk);
-	i.clk         (signal_clk);
-	j.clk         (signal_clk);
-	k.clk         (signal_clk);
-	l.clk         (signal_clk);
-	
-	a.o1          (s1);
-	b.i1          (s1);
-		
-	b.o2          (s2);
-	c.i1          (s2);
-
-	c.o1          (s3);
-	d.i1          (s3);
-	
-	d.o1          (s4);
-	b.i3          (s4);
-	
-	d.o2          (s5);
-	b.i4          (s5);
-	
-	b.o1          (s6);
-	e.i1          (s6);
-	
-	e.o1          (s7);
-	f.i1          (s7);
-	
-	f.o1          (s8);
-	b.i2          (s8);
-	
-	d.o3          (s9);
-	g.i1          (s9);
-	
-	g.o1          (s10);
-	h.i1          (s10);
-	
-	h.o1          (s11);
-	d.i4          (s11);
-	
-	j.o1          (s12);
-	g.i2          (s12);
-	
-	g.o2          (s13);
-	i.i1          (s13);	
-	
-	l.o1          (s14);
-	d.i3          (s14);
-	
-	k.o1          (s15);
-	d.i2          (s15);
-
-	// Init & run
-	sc_initialize ();
-
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
-    return 1;
-  }
-
-  sc_start (atoi(argv[1]));
-
-	return EXIT_SUCCESS;
+    sc_in_clk clk;
+    sc_in<bool> i1;
+
+    void eval1() {
+        cout << i1.read() << "\n";
+        printf("M_1i0o::eval1 ()\n");
+    }
+
+    SC_CTOR (M_1i0o) : clk("clk"), i1("i1") {
+        SC_METHOD(eval1);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<bool> s1("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M_0i1o a("a");
+    M_4i2o b("b");
+    M_1i1o c("c");
+    M_4i3o d("d");
+    M_1i1o e("e");
+    M_1i1o f("f");
+    M_2i2o g("g");
+    M_1i1o h("h");
+    M_1i0o i("i");
+    M_0i1o j("j");
+    M_0i1o k("k");
+    M_0i1o l("l");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+    e.clk(signal_clk);
+    f.clk(signal_clk);
+    g.clk(signal_clk);
+    h.clk(signal_clk);
+    i.clk(signal_clk);
+    j.clk(signal_clk);
+    k.clk(signal_clk);
+    l.clk(signal_clk);
+
+    a.o1(s1);
+    b.i1(s1);
+
+    b.o2(s2);
+    c.i1(s2);
+
+    c.o1(s3);
+    d.i1(s3);
+
+    d.o1(s4);
+    b.i3(s4);
+
+    d.o2(s5);
+    b.i4(s5);
+
+    b.o1(s6);
+    e.i1(s6);
+
+    e.o1(s7);
+    f.i1(s7);
+
+    f.o1(s8);
+    b.i2(s8);
+
+    d.o3(s9);
+    g.i1(s9);
+
+    g.o1(s10);
+    h.i1(s10);
+
+    h.o1(s11);
+    d.i4(s11);
+
+    j.o1(s12);
+    g.i2(s12);
+
+    g.o2(s13);
+    i.i1(s13);	
+
+    l.o1(s14);
+    d.i3(s14);
+
+    k.o1(s15);
+    d.i2(s15);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    sc_start(sc_time(3, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
 }
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16062005a/Makefile
===================================================================
--- sources/test_regression/16062005a/Makefile	(revision 55)
+++ sources/test_regression/16062005a/Makefile	(revision 55)
@@ -0,0 +1,18 @@
+
+include ../env.mk
+HIERARCHY = object_hierarchy.txt
+ERASE = $(HIERARCHY)
+include ../Makefile.common
+
+HIERARCHY_REF = object_hierarchy_ref.txt
+
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) $(HIERARCHY) 2> /dev/null
+	@if diff $(HIERARCHY) $(HIERARCHY_REF) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
+
Index: sources/test_regression/16062005a/object_hierarchy_ref.txt
===================================================================
--- sources/test_regression/16062005a/object_hierarchy_ref.txt	(revision 55)
+++ sources/test_regression/16062005a/object_hierarchy_ref.txt	(revision 55)
@@ -0,0 +1,19 @@
+clock sc_clock
+top1.a.b.d1 sc_object
+top1.a.b.d2 sc_object
+top1.a.b.c sc_object
+top1.a.b sc_object
+top1.a.c sc_object
+top1.a sc_object
+top1.d sc_object
+top1 sc_object
+top2.b1.d1 sc_object
+top2.b1.d2 sc_object
+top2.b1.c sc_object
+top2.b1 sc_object
+top2.b2.d1 sc_object
+top2.b2.d2 sc_object
+top2.b2.c sc_object
+top2.b2 sc_object
+top2.c sc_object
+top2 sc_object
Index: sources/test_regression/16062005a/system.cpp
===================================================================
--- sources/test_regression/16062005a/system.cpp	(revision 55)
+++ sources/test_regression/16062005a/system.cpp	(revision 55)
@@ -0,0 +1,131 @@
+
+#include <iostream>
+#include <fstream>
+#include <vector>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+struct D : sc_module {
+    D(sc_module_name) {}
+};
+
+
+
+struct C : sc_module {
+    C(sc_module_name) {}
+};
+
+
+struct B : sc_module {
+    D d1;
+    D d2;
+    C c;
+    B(sc_module_name) : d1("d1"), d2("d2"), c("c") {}
+};
+
+
+struct A : sc_module {
+    B b;
+    C c;
+    A(sc_module_name) : b("b"), c("c") {}
+};
+
+
+struct top_level1 : sc_module {
+    A a;
+    D d;
+    top_level1(sc_module_name) : a("a"), d("d") {}
+};
+
+
+struct top_level2 : sc_module {
+    B b1;
+    B b2;
+    C c;
+    top_level2(sc_module_name) : b1("b1"), b2("b2"), c("c") {}
+};
+
+
+void dump_hierarchy(ostream & o, sc_object * obj) {
+    const vector<sc_object *> & children = obj->get_child_objects();
+    for (unsigned i = 0; i < children.size(); i++) {
+        if (children[i]) {
+            dump_hierarchy(o, children[i]);
+        }
+    }
+    o << obj->name() << " " << obj->kind() << endl;
+}
+
+
+void dump_hierarchy (ostream & o, const vector<sc_object *> & obj_list) {
+    for (unsigned i = 0; i < obj_list.size(); i++) {
+        dump_hierarchy(o, obj_list[i]);
+    }
+}
+
+
+int sc_main (int argc, char ** argv) {
+    if (argc < 2) {
+        cerr << "Usage : " << argv[0] << " <filename>\n";
+        exit(-1);
+    }
+
+    sc_clock clk("clock");
+    top_level1 top1("top1");
+    top_level2 top2("top2");
+
+    ofstream o;
+    o.open(argv[1],ios::out | ios::trunc);
+    if (!o.is_open()) {
+        cerr << "Unable to open '" << argv[1] << "'.\n";
+        return 1;
+    }
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+    dump_hierarchy(o, sc_get_top_level_objects());
+
+    ASSERT(sc_find_object("top2.b1"    ) == &top2.b1    );
+    ASSERT(sc_find_object("top2.b1.d1" ) == &top2.b1.d1 );
+    ASSERT(sc_find_object("top2.b1.d2" ) == &top2.b1.d2 );
+    ASSERT(sc_find_object("top2.b1.c"  ) == &top2.b1.c  );
+    ASSERT(sc_find_object("top2.b2"    ) == &top2.b2    );
+    ASSERT(sc_find_object("top2.c"     ) == &top2.c     );
+    ASSERT(sc_find_object("top1.a"     ) == &top1.a     );
+    ASSERT(sc_find_object("top1.d"     ) == &top1.d     ); 
+    ASSERT(sc_find_object("top1.a.b"   ) == &top1.a.b   );
+    ASSERT(sc_find_object("top1.a.b.d1") == &top1.a.b.d1);
+    ASSERT(sc_find_object("top1.a.b.d2") == &top1.a.b.d2);
+    ASSERT(sc_find_object("top1.a.b.c" ) == &top1.a.b.c );
+    ASSERT(sc_find_object("top1.a.c"   ) == &top1.a.c   );  
+    ASSERT(sc_find_object("top1.c"     ) == NULL        );
+    ASSERT(sc_find_object("top1"       )->get_parent_object() == NULL);
+    ASSERT(sc_find_object("top1.a"     )->get_parent_object() == &top1);
+    ASSERT(sc_find_object("top1.a.b"   )->get_parent_object() == &top1.a);
+    ASSERT(sc_find_object("top1.a.b.d2")->get_parent_object() == &top1.a.b);
+    ASSERT(sc_find_object("top1.d"     )->get_parent_object() == &top1);
+    ASSERT(sc_find_object("top2.b1"    )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.b2"    )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.c"     )->get_parent_object() == &top2);
+    ASSERT(sc_find_object("top2.b1.c"  )->get_parent_object() == &top2.b1);
+
+    o.close();
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16062005b/Makefile
===================================================================
--- sources/test_regression/16062005b/Makefile	(revision 55)
+++ sources/test_regression/16062005b/Makefile	(revision 55)
@@ -0,0 +1,4 @@
+
+include ../16062005a/Makefile
+
+
Index: sources/test_regression/16062005b/object_hierarchy_ref.txt
===================================================================
--- sources/test_regression/16062005b/object_hierarchy_ref.txt	(revision 55)
+++ sources/test_regression/16062005b/object_hierarchy_ref.txt	(revision 55)
@@ -0,0 +1,11 @@
+Top level :
+s_clk, noname_0, noname_1, noname_2, noname_3, m, top_level_module
+
+Child of "m" :
+m.i_bool, m.i_int, m.i_sc_int17, m.o_int, m.o_sc_uint38, m.reg_lv8, m.reg_int, m.reg_uint, m.reg_sc_uint3, m.reg_sc_int31, m.noname_4, m.intern_module_of_moldu
+
+Child of "m.intern_module_of_moldu" :
+m.intern_module_of_moldu.noname_5
+
+Child of "top_level_module" :
+top_level_module.noname_6
Index: sources/test_regression/16062005b/system.cpp
===================================================================
--- sources/test_regression/16062005b/system.cpp	(revision 55)
+++ sources/test_regression/16062005b/system.cpp	(revision 55)
@@ -0,0 +1,114 @@
+
+#include <iostream>
+#include <fstream>
+#include <vector>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+
+struct intramoldu : sc_module {
+    sc_signal<long> reg_long;
+    intramoldu(sc_module_name n) {}
+};
+
+
+
+struct moldu : sc_module {
+    sc_in<bool>             i_bool;
+    sc_in<int >             i_int;
+    sc_in<sc_int<17> >      i_sc_int17;
+    sc_out<int >            o_int;
+    sc_out<sc_uint<38> >    o_sc_uint38;
+    sc_signal<sc_lv<8> >    reg_lv8;
+    sc_signal<int>          reg_int;
+    sc_signal<unsigned int> reg_uint;
+    sc_signal<sc_uint<3> >  reg_sc_uint3;
+    sc_signal<sc_int<31> >  reg_sc_int31;
+    sc_in_clk               i_clk;
+    intramoldu              microarchitecture;
+    moldu(sc_module_name n) :
+        i_bool     ("i_bool"),
+        i_int      ("i_int"),
+        i_sc_int17 ("i_sc_int17"),
+        o_int      ("o_int"),
+        o_sc_uint38("o_sc_uint38"),
+        reg_lv8    ("reg_lv8"),
+        reg_int    ("reg_int"),
+        reg_uint   ("reg_uint"),
+        reg_sc_uint3 ("reg_sc_uint3"),
+        reg_sc_int31 ("reg_sc_int31"),
+        microarchitecture ("intern_module_of_moldu") {}
+};
+
+
+void dump_objects (ofstream & o, const vector<sc_object *> & obj_list) {
+    for (unsigned i = 0; i < obj_list.size(); i++) {
+        const sc_object * obj = obj_list[i];
+        if (obj == NULL) {
+            o << "\nError : NULL pointer in objects list !\n";
+        }
+        else {
+            o << ((i != 0) ? ", " : "") << obj->name();
+        }
+    }
+    o << "\n";
+}
+
+
+int sc_main (int argc, char ** argv) {
+    if (argc < 2) {
+        cerr << "Usage : " << argv[0] << " <filename>\n";
+        exit(-1);
+    }
+
+    ofstream o;
+    o.open (argv[1], ios::out | ios::trunc);
+    if (!o.is_open()) {
+        cerr << "Unable to open '" << argv[1] << "'.\n";
+        return 1;
+    }
+
+    sc_clock s_clk("s_clk");
+    sc_signal<bool> s_bool;
+    sc_signal<int> s_int;
+    sc_signal< sc_int<17> > s_sc_int17;
+    sc_signal< sc_uint<38> > s_sc_uint38;
+    moldu m("m");
+    intramoldu microarchitecture("top_level_module");
+    m.i_clk(s_clk);
+    m.i_bool(s_bool);
+    m.i_int(s_int);
+    m.i_sc_int17(s_sc_int17);
+    m.o_int(s_int);
+    m.o_sc_uint38(s_sc_uint38);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+    o << "Top level :\n";
+    dump_objects(o, sc_get_top_level_objects());
+    o << "\nChild of \"m\" :\n";
+    dump_objects(o, m.get_child_objects());
+    o << "\nChild of \"m.intern_module_of_moldu\" :\n";
+    dump_objects(o, m.microarchitecture.get_child_objects());
+    o << "\nChild of \"top_level_module\" :\n";
+    dump_objects(o, microarchitecture.get_child_objects());
+
+    o.close();
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16112005a/Makefile
===================================================================
--- sources/test_regression/16112005a/Makefile	(revision 55)
+++ sources/test_regression/16112005a/Makefile	(revision 55)
@@ -0,0 +1,20 @@
+include ../env.mk
+include ../Makefile.common
+
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
+
+
+#./system_systemcass.x  || eval ${failcom} ; \
+	./system2_systemcass.x ; \
+   if [ $$? -ne 29 ] ; then eval ${failcom} ; fi ; \
+	./system3_systemcass.x ; \
+   if [ $$? -ne 29 ] ; then eval ${failcom} ; fi ; \
+	echo Test OK.
+
Index: sources/test_regression/16112005a/system.cpp
===================================================================
--- sources/test_regression/16112005a/system.cpp	(revision 55)
+++ sources/test_regression/16112005a/system.cpp	(revision 55)
@@ -0,0 +1,70 @@
+
+#include <iostream>
+#include <string>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+
+struct internal_model : sc_module {
+    sc_in<int> i;
+    sc_out<int> o;
+    internal_model (sc_module_name n) : sc_module (n), i("i"), o("o") {}
+};
+
+
+struct model : sc_module {
+    sc_in<int> i1, i2, i3;
+    sc_out<int> o1, o2, o3;
+    sc_signal<int> r1, r2;
+    internal_model internal;
+
+    model(sc_module_name n) : sc_module(n),
+    i1("i1"), i2("i2"), i3("i3"),
+    o1("o1"), o2("o2"), o3("o3"),
+    r1("r1"), r2("r2"),
+    internal ("internal")
+    {
+        internal.o(o3);
+        internal.i(i3);
+    }
+};
+
+
+int sc_main (int argc, char ** argv) {
+    model m("m");
+    sc_clock clk("clock");
+    sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
+
+    m.i1 (s1);
+    m.i2 (s1);
+    m.i3 (s1);
+    m.o1 (s4);
+    m.o2 (s2);
+    m.o3 (s3);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    cout << "OK" << endl;
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16112005b/Makefile
===================================================================
--- sources/test_regression/16112005b/Makefile	(revision 55)
+++ sources/test_regression/16112005b/Makefile	(revision 55)
@@ -0,0 +1,9 @@
+include ../env.mk
+include ../Makefile.common
+
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) 2> /dev/null ; \
+   if [ $$? -ne 29 ] ; then echo "KO" ; else echo "OK" ; fi
+
+
Index: sources/test_regression/16112005b/system.cpp
===================================================================
--- sources/test_regression/16112005b/system.cpp	(revision 55)
+++ sources/test_regression/16112005b/system.cpp	(revision 55)
@@ -0,0 +1,65 @@
+
+#include <iostream>
+#include <string>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+
+struct internal_model : sc_module {
+    sc_in<int> i;
+    sc_out<int> o;
+    internal_model (sc_module_name n) : sc_module (n), i("i"), o("o") {}
+};
+
+
+struct model : sc_module {
+    sc_in<int> i1, i2, i3;
+    sc_out<int> o1, o2, o3;
+    sc_signal<int> r1, r2;
+    internal_model internal;
+    model(sc_module_name n) : sc_module (n),
+    i1("i1"), i2("i2"), i3("i3"),
+    o1("o1"), o2("o2"), o3("o3"),
+    r1("r1"), r2("r2"),
+    internal("internal") {
+        internal.o (o3);
+        internal.i (i3);
+    }
+};
+
+
+int sc_main (int argc, char ** argv) {
+    model m("m");
+    sc_clock clk("clock");
+    sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
+
+    m.i1(s1);
+    m.i3(s1);
+    m.o1(s4);
+    m.o2(s2);
+    m.o3(s3);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16112005c/Makefile
===================================================================
--- sources/test_regression/16112005c/Makefile	(revision 55)
+++ sources/test_regression/16112005c/Makefile	(revision 55)
@@ -0,0 +1,9 @@
+include ../env.mk
+include ../Makefile.common
+
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) 2> /dev/null ; \
+   if [ $$? -ne 29 ] ; then echo "KO" ; else echo "OK" ; fi
+
+
Index: sources/test_regression/16112005c/system.cpp
===================================================================
--- sources/test_regression/16112005c/system.cpp	(revision 55)
+++ sources/test_regression/16112005c/system.cpp	(revision 55)
@@ -0,0 +1,67 @@
+
+#include <iostream>
+#include <string>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+
+struct internal_model : sc_module {
+    sc_in<int> i;
+    sc_out<int> o;
+    internal_model(sc_module_name n) : sc_module(n), i("i"), o("o") {}
+};
+
+
+struct model : sc_module {
+    sc_in<int> i1, i2, i3;
+    sc_out<int> o1, o2, o3;
+    sc_signal<int> r1, r2;
+    internal_model internal;
+    model(sc_module_name n) : sc_module (n),
+    i1("i1"), i2("i2"), i3("i3"),
+    o1("o1"), o2("o2"), o3("o3"),
+    r1("r1"), r2("r2"),
+    internal("internal") {
+        internal.o (o3);
+        internal.i (i3);
+    }
+};
+
+
+int sc_main (int argc, char ** argv) {
+    model m("m");
+    sc_clock clk("clock");
+    sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
+
+    m.i1 (s1);
+    m.i2 (s1);
+    m.i3 (s1);
+    m.o2 (s2);
+    m.o3 (s3);
+
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    sc_start(sc_time(1, sc_core::SC_NS));
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    cerr << "Test OK.\n";
+
+    return 0;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/16122005/Makefile
===================================================================
--- sources/test_regression/16122005/Makefile	(revision 54)
+++ sources/test_regression/16122005/Makefile	(revision 55)
@@ -1,55 +1,18 @@
+
 include ../env.mk
+RESULTS = results.txt
+ERASE = $(RESULTS)
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+RESULTS_REF = results_ref.txt
 
-.SECONDARY:
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) 2> /dev/null
+	@if diff $(RESULTS) $(RESULTS_REF) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-main : $(EXE)
 
-test : main
-	./system_systemcass.x
-	diff results.txt results_reference.txt
-	@echo Test OK.
 
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f results.txt
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/16122005/results_ref.txt
===================================================================
--- sources/test_regression/16122005/results_ref.txt	(revision 55)
+++ sources/test_regression/16122005/results_ref.txt	(revision 55)
@@ -0,0 +1,2 @@
+top2
+top2
Index: sources/test_regression/16122005/results_reference.txt
===================================================================
--- sources/test_regression/16122005/results_reference.txt	(revision 54)
+++ 	(revision )
@@ -1,2 +1,0 @@
-top2
-top2
Index: sources/test_regression/16122005/system.cpp
===================================================================
--- sources/test_regression/16122005/system.cpp	(revision 54)
+++ sources/test_regression/16122005/system.cpp	(revision 55)
@@ -1,3 +1,3 @@
-#include <systemc.h>
+
 #include <iostream>
 #include <fstream>
@@ -5,89 +5,85 @@
 #include <cstring> //strcmp
 
-#define ASSERT(x) { if (!(x)) { \
-                      cerr << "ASSERT : " #x \
-                           << " in function '" << __FUNCTION__  \
-                           << "'\n"; exit (-1); \
-                    } \
-                  }
+#include <systemc.h>
+#include "test.h"
 
 
 using namespace std;
 
-struct D : sc_module
-{
-  D (sc_module_name n)
-  {
-  }
+
+struct D : sc_module {
+    D (sc_module_name n) {}
 };
 
-struct C : sc_module
-{
-  C (sc_module_name n)
-  {
-  }
+
+struct C : sc_module {
+    C(sc_module_name n) {}
 };
 
-struct B : sc_module
-{
-  D d1;
-  D d2;
-  C c;
-  B (sc_module_name n) : d1("d1"), d2("d2"), c("c")
-  {
-  }
+
+struct B : sc_module {
+    D d1;
+    D d2;
+    C c;
+    B(sc_module_name n) : d1("d1"), d2("d2"), c("c") {}
 };
 
-struct A : sc_module
-{
-  B b;
-  C c;
-  A (sc_module_name n) : b("b"), c("c")
-  {
-  }
+
+struct A : sc_module {
+    B b;
+    C c;
+    A(sc_module_name n) : b("b"), c("c") {}
 };
 
-struct top_level1 : sc_module
-{
-  A a;
-  D d;
-  top_level1(sc_module_name insname) : sc_module (insname), a("a"), d("d")
-  {
-    ASSERT(strcmp ((const char*)insname,"top1") == 0);
-  }
+
+struct top_level1 : sc_module {
+    A a;
+    D d;
+    top_level1(sc_module_name insname) : sc_module (insname), a("a"), d("d") {
+        ASSERT(strcmp((const char *) insname, "top1") == 0);
+    }
 };
 
-struct top_level2 : sc_module
-{
-  B b1;
-  B b2;
-  C c;
-  top_level2(sc_module_name insname) : b1("b1"), b2("b2"), c("c")
-  {
-    ASSERT(strcmp ((const char*)insname,"top2") == 0);
-    ofstream o;
-    o.open ("results.txt");
-    o << (const char*)insname << endl;
-    o << insname << endl;
-    o.close ();
-  }
+
+struct top_level2 : sc_module {
+    B b1;
+    B b2;
+    C c;
+    top_level2(sc_module_name insname) : b1("b1"), b2("b2"), c("c") {
+        ASSERT(strcmp ((const char *) insname, "top2") == 0);
+        ofstream o;
+        o.open("results.txt");
+        o << (const char *) insname << endl;
+        o << insname << endl;
+        o.close();
+    }
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  if (argc < 1)
-  {
-    cerr << "Usage : " << argv[0] << "\n";
-    exit (-1);
-  }
 
-  sc_clock   clk("clock");
-  top_level1 top1("top1");
-  top_level2 top2("top2");
+int sc_main (int argc, char ** argv) {
+    if (argc < 1) {
+        cerr << "Usage : " << argv[0] << "\n";
+        exit(-1);
+    }
 
-  sc_start(0);
+    sc_clock clk("clock");
+    top_level1 top1("top1");
+    top_level2 top2("top2");
 
-  return 0;
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/17022006/Makefile
===================================================================
--- sources/test_regression/17022006/Makefile	(revision 54)
+++ sources/test_regression/17022006/Makefile	(revision 55)
@@ -1,87 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SOCVIEW_INC    = ${SOCVIEW}/include
-SOCVIEW_LIB    = ${SOCVIEW}/lib-linux/libsystemc.a
-CFLAGS_SOCVIEW = ${CFLAGS} -DSOCVIEW -I${SOCVIEW_INC}
-LFLAGS_SOCVIEW = ${LFLAGS} -ltermcap -lreadline ${SOCVIEW_LIB}
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE_SVIEW = $(SYSTEM:.cpp=_socview.x)
-EXE       = ${EXE_SCASS} ${EXE_SVIEW} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
 
-TEST1_DAT = \
-           test_socview_1.dat test_socview_1_reloaded.dat   \
-           test_socview_2.dat test_socview_2_reloaded.dat   \
-           test_socview_3.dat test_socview_3_reloaded.dat   \
-           test_socview_3b.dat test_socview_3_reloaded_bis.dat   \
-           test_socview_4.dat test_socview_4_reloaded.dat   \
-           test_socview_5.dat test_socview_5_reloaded.dat   \
-           test_socview_6.dat test_socview_6_reloaded.dat   \
-           test_socview_7.dat test_socview_7_reloaded.dat   \
-           test_socview_8.dat test_socview_8_reloaded.dat   \
-           test_socview_9.dat test_socview_9_reloaded.dat   \
-           test_socview_10.dat test_socview_10_reloaded.dat \
-           test_socview_10b.dat \
-
-TEST2_DAT = test2_socview_10.dat \
-            test2_socview_24a.dat test2_socview_24b.dat test2_socview_24c.dat \
-            test2_socview_20a.dat test2_socview_20b.dat test2_systemcass_20.dat
-
-.SECONDARY:
-
-main : $(EXE)
-
-test : system_systemc.x system_systemcass.x system_socview.x
-	./system_systemc.x ; ./system_systemcass.x ;	./system_socview.x
-	
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
-%_socview.x : %_socview.o  $(SOCVIEW_LIB)
-	$(CXX) -o $@ $*_socview.o $(LFLAGS_SOCVIEW)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_socview.cpp : %.cpp 
-	ln -s $*.cpp $*_socview.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-%_socview.o : %_socview.cpp
-	$(CXX) $(CFLAGS_SOCVIEW) -MM $*_socview.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SOCVIEW) -c $*_socview.cpp -o $*_socview.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f results
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/17022006/system.cpp
===================================================================
--- sources/test_regression/17022006/system.cpp	(revision 54)
+++ sources/test_regression/17022006/system.cpp	(revision 55)
@@ -1,37 +1,31 @@
-#include <systemc.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include <cstring>
+
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
 
+
 struct test : sc_module {
-	sc_in_clk                       clk;
-  sc_in<int>                      i1;
-  sc_in<bool>                     i2[4];
-  sc_out<int>                     o1;
-  sc_out<char>                    o2[3];
+    sc_in_clk clk;
+    sc_in<int> i1;
+    sc_in<bool> i2[4];
+    sc_out<int> o1;
+    sc_out<char> o2[3];
 
-  sc_signal<bool>                 reg1;
-  sc_signal<int>                  reg2;
-  sc_signal<int>                  reg3;
-  sc_signal<int>                  reg4[10];
+    sc_signal<bool> reg1;
+    sc_signal<int> reg2;
+    sc_signal<int> reg3;
+    sc_signal<int> reg4[10];
 
-  void trans ()
-  {
-  }
+    void trans() {}
 
-  void gen ()
-  {
-  }
+    void gen() {}
 
-  SC_HAS_PROCESS(test);
-	test (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(test);
+
+    test(sc_module_name n) : sc_module(n),
     clk("clk"),
     i1("i1"), 
@@ -39,67 +33,84 @@
     reg1("reg1"),
     reg2("reg2"),
-    reg3("reg3")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
-		SC_METHOD(gen);
-		sensitive << clk.neg();
-    dont_initialize();
+    reg3("reg3") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen);
+        sensitive << clk.neg();
+        dont_initialize();
+
 #ifdef NONAME_RENAME
-    char str[100];
-    for (int i=0; i<3; i++ ) {
-      sprintf(str,"o2_%d", i);
-      o2[i].rename(str);
+        char str[100];
+        for (int i = 0; i < 3; i++) {
+            sprintf(str, "o2_%d", i);
+            o2[i].rename(str);
+        }
+        for (int i = 0; i < 4; i++) {
+            sprintf(str, "i2_%d", i);
+            i2[i].rename(str);
+        }
+        for (int i = 0; i < 10; i++) {
+            sprintf(str, "reg4_%d", i);
+            reg4[i].rename(str);
+        }
+#endif
     }
-    for (int i=0; i<4; i++ ) {
-      sprintf(str,"i2_%d", i);
-      i2[i].rename(str);
-    }
-    for (int i=0; i<10; i++ ) {
-      sprintf(str,"reg4_%d", i);
-      reg4[i].rename(str);
-    }
-#endif
-	};
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock        signal_clk("my_clock",1, 0.5);
-  sc_signal<int>     s01("s01");
-  sc_signal<bool>    s02_0("s02_0"), s02_1("s02_1"), s02_2("s02_2"), s02_3("s02_3");
-  sc_signal<int>     s03("s03");
-  sc_signal<char>    s04_0("s04_0"),s04_1("s04_1"),s04_2("s04_2");
 
-  test test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s01);
-  test1.i2[0] (s02_0);
-  test1.i2[1] (s02_1);
-  test1.i2[2] (s02_2);
-  test1.i2[3] (s02_3);
-  test1.o1 (s03);
-  test1.o2[0] (s04_0);
-  test1.o2[1] (s04_1);
-  test1.o2[2] (s04_2);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<int> s01("s01");
+    sc_signal<bool> s02_0("s02_0"), s02_1("s02_1"), s02_2("s02_2"), s02_3("s02_3");
+    sc_signal<int> s03("s03");
+    sc_signal<char> s04_0("s04_0"), s04_1("s04_1"), s04_2("s04_2");
 
-	// Init & run
-	sc_start (0);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s01);
+    test1.i2[0](s02_0);
+    test1.i2[1](s02_1);
+    test1.i2[2](s02_2);
+    test1.i2[3](s02_3);
+    test1.o1(s03);
+    test1.o2[0](s04_0);
+    test1.o2[1](s04_1);
+    test1.o2[2](s04_2);
 
-  ASSERT(strcmp (test1.o1.name (), "test1.o1") == 0);
-  ASSERT(strcmp (test1.i1.name (), "test1.i1") == 0);
-  ASSERT(strcmp (test1.reg1.name (), "test1.reg1") == 0);
-  ASSERT(strcmp (test1.reg2.basename (), "reg2") == 0);
-  ASSERT(strcmp (test1.reg3.name (), "test1.reg3") == 0);
-#if defined(NONAME_RENAME)
-  ASSERT(strcmp (test1.o2[1].name (), "test1.o2_1") == 0);
-  ASSERT(strcmp (test1.i2[2].basename (), "i2_2") == 0);
-  ASSERT(strcmp (test1.reg4[1].name (), "test1.reg4_1") == 0);
-  ASSERT(strcmp (test1.reg4[9].basename (), "reg4_9") == 0);
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    ASSERT(strcmp(test1.o1.name(), "test1.o1") == 0);
+    ASSERT(strcmp(test1.i1.name(), "test1.i1") == 0);
+    ASSERT(strcmp(test1.reg1.name(), "test1.reg1") == 0);
+    ASSERT(strcmp(test1.reg2.basename(), "reg2") == 0);
+    ASSERT(strcmp(test1.reg3.name(), "test1.reg3") == 0);
+
+#if defined(SYSTEMCASS_SPECIFIC)
+    ASSERT(strcmp(test1.o2[1].name(), "test1.o2_1") == 0);
+    ASSERT(strcmp(test1.i2[2].basename(), "i2_2") == 0);
+    ASSERT(strcmp(test1.reg4[1].name(), "test1.reg4_1") == 0);
+    ASSERT(strcmp(test1.reg4[9].basename(), "reg4_9") == 0);
 #endif
-	return EXIT_SUCCESS;
+
+    cout << "OK" << endl;
+
+    return EXIT_SUCCESS;
 }
 
 #undef sc_inout
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/17032005/Makefile
===================================================================
--- sources/test_regression/17032005/Makefile	(revision 54)
+++ sources/test_regression/17032005/Makefile	(revision 55)
@@ -1,59 +1,28 @@
+
 include ../env.mk
+TRACE1 = trace_file_scass.vcd
+TRACE2 = trace_file_systemc.vcd
+ERASE = $(TRACE1) $(TRACE2)
+include ../Makefile.common
 
-EXE     = system_systemc.x system_systemcass.x
-OBJECTS = $(EXE:.x=.o)
-LINKS   = $(OBJECTS:.o=.cpp)
+TRACE = trace_file.vcd
+TRACE_REF = trace_file_reference.vcd
 
-.SECONDARY:
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@mv $(TRACE) $(TRACE1)
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@mv $(TRACE) $(TRACE2)
+	@if tail -n +8 $(TRACE1) | diff $(TRACE_REF) - > /dev/null ; then \
+		if tail -n +8 $(TRACE2) | diff $(TRACE_REF) - > /dev/null ; then \
+			echo "OK" ; \
+		else \
+			echo "KO" ; \
+		fi ; \
+	else \
+		echo "KO" ; \
+	fi ;
 
-main : $(EXE) 
 
-test : system-23.vcd system-23_reference.vcd
-	-diff system-23.vcd system-23_reference.vcd
-	@echo Test OK.
 
-system-23.vcd : system_systemcass.x
-	./system_systemcass.x --nodynamiclink system 23
-	tail -n +8 system.vcd > system-23.vcd
-	rm system.vcd
-
-system-23_reference.vcd : system_systemc.x
-	./system_systemc.x system 23
-	tail -n +8 system.vcd > system-23_reference.vcd
-	rm system.vcd
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f *.txt 
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -f *~
-	-rm -rf generated_by_systemcass
-	-rm -rf trace_system_systemcass.x.vcd trace_system_systemc.x.vcd
-	-rm -rf system-23.vcd
-	-rm -rf system_systemcass.log
-	
Index: sources/test_regression/17032005/system-23_reference.vcd
===================================================================
--- sources/test_regression/17032005/system-23_reference.vcd	(revision 54)
+++ 	(revision )
@@ -1,317 +1,0 @@
-
-$timescale
-     1 ps
-$end
-
-$scope module SystemC $end
-$var wire    6  aaa  ui6 [5:0]  $end
-$var wire   16  aab  ui16 [15:0]  $end
-$var wire   31  aac  ui31 [30:0]  $end
-$var wire   32  aad  ui32 [31:0]  $end
-$var wire   64  aae  ui64 [63:0]  $end
-$var wire    6  aaf  i6 [5:0]  $end
-$var wire   16  aag  i16 [15:0]  $end
-$var wire   31  aah  i31 [30:0]  $end
-$var wire   32  aai  i32 [31:0]  $end
-$var wire   64  aaj  i64 [63:0]  $end
-$var wire    1  aak  clk       $end
-$upscope $end
-$enddefinitions  $end
-
-$comment
-All initial values are dumped below at time 0 sec = 0 timescale units.
-$end
-
-$dumpvars
-b1111 aaa
-b111111 aab
-b100000000 aac
-b1000010001 aad
-b10101011110011110001001000110100 aae
-b1111 aaf
-b111111 aag
-b10001000100010010001000100010 aah
-b1000011001000010100001100100001 aai
-b1000100010001001010101111001101 aaj
-1aak
-$end
-
-#500
-0aak
-
-#1000
-1aak
-
-#1500
-0aak
-
-#2000
-1aak
-
-#2500
-0aak
-
-#3000
-b11111 aaa
-b1111111 aab
-b1000000001 aac
-b10000100011 aad
-b101010111100111100010010001101001 aae
-b11111 aaf
-b1111111 aag
-b100010001000100100010001000101 aah
-b10000110010000101000011001000011 aai
-b10001000100010010101011110011011 aaj
-1aak
-
-#3500
-0aak
-
-#4000
-b111111 aaa
-b11111111 aab
-b10000000011 aac
-b100001000111 aad
-b1010101111001111000100100011010011 aae
-b111111 aaf
-b11111111 aag
-b1000100010001001000100010001011 aah
-b1100100001010000110010000111 aai
-b100010001000100101010111100110111 aaj
-1aak
-
-#4500
-0aak
-
-#5000
-b111111111 aab
-b100000000111 aac
-b1000010001111 aad
-b10101011110011110001001000110100111 aae
-b111111111 aag
-b1000100010010001000100010111 aah
-b11001000010100001100100001111 aai
-b1000100010001001010101111001101111 aaj
-1aak
-
-#5500
-0aak
-
-#6000
-b1111111111 aab
-b1000000001111 aac
-b10000100011111 aad
-b101010111100111100010010001101001111 aae
-b1111111111 aag
-b10001000100100010001000101111 aah
-b110010000101000011001000011111 aai
-b10001000100010010101011110011011111 aaj
-1aak
-
-#6500
-0aak
-
-#7000
-b11111111111 aab
-b10000000011111 aac
-b100001000111111 aad
-b1010101111001111000100100011010011111 aae
-b11111111111 aag
-b100010001001000100010001011111 aah
-b1100100001010000110010000111111 aai
-b100010001000100101010111100110111111 aaj
-1aak
-
-#7500
-0aak
-
-#8000
-b111111111111 aab
-b100000000111111 aac
-b1000010001111111 aad
-b10101011110011110001001000110100111111 aae
-b111111111111 aag
-b1000100010010001000100010111111 aah
-b11001000010100001100100001111111 aai
-b1000100010001001010101111001101111111 aaj
-1aak
-
-#8500
-0aak
-
-#9000
-b1111111111111 aab
-b1000000001111111 aac
-b10000100011111111 aad
-b101010111100111100010010001101001111111 aae
-b1111111111111 aag
-b1000100100010001000101111111 aah
-b10010000101000011001000011111111 aai
-b10001000100010010101011110011011111111 aaj
-1aak
-
-#9500
-0aak
-
-#10000
-b11111111111111 aab
-b10000000011111111 aac
-b100001000111111111 aad
-b1010101111001111000100100011010011111111 aae
-b11111111111111 aag
-b10001001000100010001011111111 aah
-b100001010000110010000111111111 aai
-b100010001000100101010111100110111111111 aaj
-1aak
-
-#10500
-0aak
-
-#11000
-b111111111111111 aab
-b100000000111111111 aac
-b1000010001111111111 aad
-b10101011110011110001001000110100111111111 aae
-b111111111111111 aag
-b100010010001000100010111111111 aah
-b1000010100001100100001111111111 aai
-b1000100010001001010101111001101111111111 aaj
-1aak
-
-#11500
-0aak
-
-#12000
-b1111111111111111 aab
-b1000000001111111111 aac
-b10000100011111111111 aad
-b101010111100111100010010001101001111111111 aae
-b1111111111111111 aag
-b1000100100010001000101111111111 aah
-b10000101000011001000011111111111 aai
-b10001000100010010101011110011011111111111 aaj
-1aak
-
-#12500
-0aak
-
-#13000
-b10000000011111111111 aac
-b100001000111111111111 aad
-b1010101111001111000100100011010011111111111 aae
-b1001000100010001011111111111 aah
-b1010000110010000111111111111 aai
-b100010001000100101010111100110111111111111 aaj
-1aak
-
-#13500
-0aak
-
-#14000
-b100000000111111111111 aac
-b1000010001111111111111 aad
-b10101011110011110001001000110100111111111111 aae
-b10010001000100010111111111111 aah
-b10100001100100001111111111111 aai
-b1000100010001001010101111001101111111111111 aaj
-1aak
-
-#14500
-0aak
-
-#15000
-b1000000001111111111111 aac
-b10000100011111111111111 aad
-b101010111100111100010010001101001111111111111 aae
-b100100010001000101111111111111 aah
-b101000011001000011111111111111 aai
-b10001000100010010101011110011011111111111111 aaj
-1aak
-
-#15500
-0aak
-
-#16000
-b10000000011111111111111 aac
-b100001000111111111111111 aad
-b1010101111001111000100100011010011111111111111 aae
-b1001000100010001011111111111111 aah
-b1010000110010000111111111111111 aai
-b100010001000100101010111100110111111111111111 aaj
-1aak
-
-#16500
-0aak
-
-#17000
-b100000000111111111111111 aac
-b1000010001111111111111111 aad
-b10101011110011110001001000110100111111111111111 aae
-b10001000100010111111111111111 aah
-b10100001100100001111111111111111 aai
-b1000100010001001010101111001101111111111111111 aaj
-1aak
-
-#17500
-0aak
-
-#18000
-b1000000001111111111111111 aac
-b10000100011111111111111111 aad
-b101010111100111100010010001101001111111111111111 aae
-b100010001000101111111111111111 aah
-b1000011001000011111111111111111 aai
-b10001000100010010101011110011011111111111111111 aaj
-1aak
-
-#18500
-0aak
-
-#19000
-b10000000011111111111111111 aac
-b100001000111111111111111111 aad
-b1010101111001111000100100011010011111111111111111 aae
-b1000100010001011111111111111111 aah
-b10000110010000111111111111111111 aai
-b100010001000100101010111100110111111111111111111 aaj
-1aak
-
-#19500
-0aak
-
-#20000
-b100000000111111111111111111 aac
-b1000010001111111111111111111 aad
-b10101011110011110001001000110100111111111111111111 aae
-b1000100010111111111111111111 aah
-b1100100001111111111111111111 aai
-b1000100010001001010101111001101111111111111111111 aaj
-1aak
-
-#20500
-0aak
-
-#21000
-b1000000001111111111111111111 aac
-b10000100011111111111111111111 aad
-b101010111100111100010010001101001111111111111111111 aae
-b10001000101111111111111111111 aah
-b11001000011111111111111111111 aai
-b10001000100010010101011110011011111111111111111111 aaj
-1aak
-
-#21500
-0aak
-
-#22000
-b10000000011111111111111111111 aac
-b100001000111111111111111111111 aad
-b1010101111001111000100100011010011111111111111111111 aae
-b100010001011111111111111111111 aah
-b110010000111111111111111111111 aai
-b100010001000100101010111100110111111111111111111111 aaj
-1aak
-
-#22500
-0aak
-
Index: sources/test_regression/17032005/system.cpp
===================================================================
--- sources/test_regression/17032005/system.cpp	(revision 54)
+++ sources/test_regression/17032005/system.cpp	(revision 55)
@@ -1,3 +1,2 @@
-#include <systemc.h>
 #include <signal.h>
 #include <iostream>
@@ -5,186 +4,168 @@
 #include <cstdlib> //exit
 
-#define ASSERT(x) \
-  { \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : '" #x "' at cycle number " << sc_simulation_time () << "\n"; \
-    exit (1); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
 
 using namespace std;
-	
-struct sc_test : public sc_module
-{
-  sc_in<bool>     clk;
-  sc_in<bool>     resetn;
-  sc_signal<sc_uint<6>     > ui6;
-  sc_signal<sc_uint<16>    > ui16;
-  sc_signal<sc_uint<31>    > ui31;
-  sc_signal<sc_uint<32>    > ui32;
-  sc_signal<sc_uint<64>    > ui64;
-  sc_signal<sc_int<6>      > i6;
-  sc_signal<sc_int<16>     > i16;
-  sc_signal<sc_int<31>     > i31;
-  sc_signal<sc_int<32>     > i32;
-  sc_signal<sc_int<64>     > i64;
 
-  unsigned int ui6_c_type :6;
-  sc_uint<6>   ui6_sc_uint;
-//  sc_signal<sc_biguint<64> > bui64;
-//  long long unsigned int     bui64b;
-//  sc_signal<sc_biguint<96> > bui96;
+struct sc_test : public sc_module {
+    sc_in<bool> clk;
+    sc_in<bool> resetn;
+    sc_signal<sc_uint<6> >  ui6;
+    sc_signal<sc_uint<16> > ui16;
+    sc_signal<sc_uint<31> > ui31;
+    sc_signal<sc_uint<32> > ui32;
+    sc_signal<sc_uint<64> > ui64;
+    sc_signal<sc_int<6> > i6;
+    sc_signal<sc_int<16> > i16;
+    sc_signal<sc_int<31> > i31;
+    sc_signal<sc_int<32> > i32;
+    sc_signal<sc_int<64> > i64;
 
-  void eval ()
-  {
-    if (resetn == false)
-    {
-      ui6   = 0xF; ui6_c_type = 0xF; ui6_sc_uint = 0xF;
-      ui16  = 0x3F;
-      ui31  = 0x100;
-      ui32  = 0x211;
-      ui64  = 0xABCF1234ULL;
-      i6    = 0xF;
-      i16   = 0x3F;
-      i31   = 0x11112222;
-      i32   = 0x43214321;
-      i64   = 0x4444abcdULL;
-//      bui64 = 0xFFFFFFFF;
-//      bui64b= 0xFFFFFFFF;
-//      bui96 = 0xABCDEF01;
-    } else {
-      cerr << hex << ui6.read () << " "
-                  << ui6_c_type  << " "
-                  << ui6_sc_uint << endl;
-      ASSERT(ui6.read() == ui6_c_type);
-      ui6         = (ui6   .read() * 2) + 1;
-      ui6_c_type  = (ui6_c_type    * 2) + 1;
-      ui6_sc_uint = (ui6_sc_uint   * 2) + 1;
-      ui16  = (ui16  .read() * 2) + 1;
-      ui31  = (ui31  .read() * 2) + 1;
-      ui32  = (ui32  .read() * 2) + 1;
-      ui64  = (ui64  .read() * 2) + 1;
-      i6    = (i6    .read() * 2) + 1;
-      i16   = (i16   .read() * 2) + 1;
-      i31   = (i31   .read() * 2) + 1;
-      i32   = (i32   .read() * 2) + 1;
-      i64   = (i64   .read() * 2) + 1;
-//      bui64 = (bui64 .read() * 2) + 1;
-//      bui64b= bui64b        * 2; bui64b= bui64b        + 1;
-//      bui96 = bui96 .read() * 2; bui96 = bui96 .read() + 1;
-#if 0
-      cout << bui64.read() << " "; 
-      cout << bui64b << "\n";
-#endif
+    unsigned int ui6_c_type : 6;
+    sc_uint<6> ui6_sc_uint;
+
+    void eval() {
+        if (resetn == false) {
+            ui6 = 0xF; ui6_c_type = 0xF;
+            ui6_sc_uint = 0xF;
+            ui16 = 0x3F;
+            ui31 = 0x100;
+            ui32 = 0x211;
+            ui64 = 0xABCF1234ULL;
+            i6 = 0xF;
+            i16 = 0x3F;
+            i31 = 0x11112222;
+            i32 = 0x43214321;
+            i64 = 0x4444abcdULL;
+        }
+        else {
+            cout << hex << ui6.read() << " "
+                 << ui6_c_type  << " "
+                 << ui6_sc_uint << endl;
+            ASSERT(ui6.read() == ui6_c_type);
+            ui6 = (ui6.read() * 2) + 1;
+            ui6_c_type = (ui6_c_type * 2) + 1;
+            ui6_sc_uint = (ui6_sc_uint * 2) + 1;
+            ui16 = (ui16.read() * 2) + 1;
+            ui31 = (ui31.read() * 2) + 1;
+            ui32 = (ui32.read() * 2) + 1;
+            ui64 = (ui64.read() * 2) + 1;
+            i6 = (i6.read() * 2) + 1;
+            i16 = (i16.read() * 2) + 1;
+            i31 = (i31.read() * 2) + 1;
+            i32 = (i32.read() * 2) + 1;
+            i64 = (i64.read() * 2) + 1;
+        }
     }
-  }
 
-  SC_CTOR(sc_test)
-  {
-    SC_METHOD(eval);
-    dont_initialize ();
-    sensitive << clk.pos();
-  }
+    SC_CTOR(sc_test) {
+        SC_METHOD(eval);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 1;
-  cout << "Tests ok\n";
-  sc_clock        clk("clk");
-  sc_signal<bool> resetn("resetn");
- 
-  sc_test test("test");
-  test.clk    (clk);
-  test.resetn (resetn);
-  
-  sc_trace_file *tf;
 
-  if (argc != 3)
-  {
-    cerr << "Usage : " << argv[0] << " <trace filename> <#cycles>\n";
-    exit (-1);
-  }
+int sc_main(int argc, char * argv[]) {
+    sc_clock clk("clk");
+    sc_signal<bool> resetn("resetn");
 
-  string trace_filename = argv[1];
-  tf = sc_create_vcd_trace_file (trace_filename.c_str());
-  sc_trace (tf, test.ui6  , "ui6"  );
-  sc_trace (tf, test.ui16 , "ui16" );
-  sc_trace (tf, test.ui31 , "ui31" );
-  sc_trace (tf, test.ui32 , "ui32" );
-  sc_trace (tf, test.ui64 , "ui64" );
-  sc_trace (tf, test.i6   , "i6"   );
-  sc_trace (tf, test.i16  , "i16"  );
-  sc_trace (tf, test.i31  , "i31"  );
-  sc_trace (tf, test.i32  , "i32"  );
-  sc_trace (tf, test.i64  , "i64"  );
-  sc_trace (tf, clk       , "clk"  );
-//  sc_trace (tf, test.bui64, "bui64");
-//  sc_trace (tf, test.bui96, "bui96");
+    sc_test test("test");
+    test.clk(clk);
+    test.resetn(resetn);
 
-  ASSERT(test.ui6.read() == 0);
-  ASSERT(test.ui31.read() == 0);
-  ASSERT(test.ui32.read() == 0);
-  ASSERT(test.ui64.read() == 0);
-  ASSERT(test.i6.read() == 0);
-  ASSERT(test.i64.read() == 0);
+    sc_trace_file * tf;
 
-  sc_initialize ();
+    tf = sc_create_vcd_trace_file("trace_file");
+    sc_trace(tf, test.ui6 , "ui6");
+    sc_trace(tf, test.ui16, "ui16");
+    sc_trace(tf, test.ui31, "ui31");
+    sc_trace(tf, test.ui32, "ui32");
+    sc_trace(tf, test.ui64, "ui64");
+    sc_trace(tf, test.i6, "i6");
+    sc_trace(tf, test.i16, "i16");
+    sc_trace(tf, test.i31, "i31");
+    sc_trace(tf, test.i32, "i32");
+    sc_trace(tf, test.i64, "i64");
+    sc_trace(tf, clk, "clk");
 
-  resetn = false;
- 
-  sc_start (3);
-  resetn = true;
-  sc_start (20);
+    ASSERT(test.ui6.read() == 0);
+    ASSERT(test.ui31.read() == 0);
+    ASSERT(test.ui32.read() == 0);
+    ASSERT(test.ui64.read() == 0);
+    ASSERT(test.i6.read() == 0);
+    ASSERT(test.i64.read() == 0);
 
-#if 1
-  cout << "0x3f"            << " 0x" << hex << (unsigned int) (sc_uint<6> )test.ui6   << endl;
-  cout << "0x100fffff"      << " 0x" << hex << (unsigned int) (sc_uint<31>)test.ui31  << endl;  
-  cout << "0x211fffff"      << " 0x" << hex << (unsigned int) (sc_uint<32>)test.ui32  << endl;
-  cout << "0xabcf1234fffff" << " 0x" << hex << (long long unsigned int) (sc_uint<64>)test.ui64  << endl;  
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    resetn = false;
+
+    sc_start(sc_time(3, sc_core::SC_NS));
+    resetn = true;
+    sc_start(sc_time(20, sc_core::SC_NS));
+
+#if 0
+    cout << "0x3f"            << " 0x" << hex << (unsigned int) (sc_uint<6> )test.ui6   << endl;
+    cout << "0x100fffff"      << " 0x" << hex << (unsigned int) (sc_uint<31>)test.ui31  << endl;  
+    cout << "0x211fffff"      << " 0x" << hex << (unsigned int) (sc_uint<32>)test.ui32  << endl;
+    cout << "0xabcf1234fffff" << " 0x" << hex << (long long unsigned int) (sc_uint<64>)test.ui64  << endl;  
 #endif
-  cerr << test.ui6.read() << endl;
+    cout << test.ui6.read() << endl;
 
-  union t {
-    int v1:3;
-    int v2;
-  };
 
-  t t1,t2;
-  t1.v1 = 7;
-  cerr << t1.v1 << " " << t1.v2 << endl;
-  t2.v2 = 7;
-  cerr << t2.v1 << " " << t2.v2 << endl;
+    union t {
+        int v1:3;
+        int v2;
+    };
 
-  ASSERT(test.ui6.read() == 0x3f);
-  ASSERT(test.ui31.read() == 0x100fffff);
-  ASSERT(test.ui32.read() == 0x211fffff);
 
-  long long unsigned int ui64_reference = 0xabcf1234ULL;
-  ui64_reference <<= 20;
-  ui64_reference += 0xfffffULL;
+    t t1, t2;
+    t1.v1 = 7;
+    cout << t1.v1 << " " << t1.v2 << endl;
+    t2.v2 = 7;
+    cout << t2.v1 << " " << t2.v2 << endl;
+
+    ASSERT(test.ui6.read() == 0x3f);
+    ASSERT(test.ui31.read() == 0x100fffff);
+    ASSERT(test.ui32.read() == 0x211fffff);
+
+    long long unsigned int ui64_reference = 0xabcf1234ULL;
+    ui64_reference <<= 20;
+    ui64_reference += 0xfffffULL;
+
 #if 0
-  cout << "0xffffffff"      << " 0x" << hex << (int) (sc_int<6>)test.i6    << endl;
-  cout << "0x222fffff"      << " 0x" << hex << (int) (sc_int<31>)test.i31   << endl;  
-  cout << "0x321fffff"      << " 0x" << hex << (int) (sc_int<32>)test.i32   << endl;
-  cout << "0x4444abcdfffff" << " 0x" << hex << (long long signed int) (sc_int<64>)test.i64   << endl;    
+    cout << "0xffffffff"      << " 0x" << hex << (int) (sc_int<6>)test.i6    << endl;
+    cout << "0x222fffff"      << " 0x" << hex << (int) (sc_int<31>)test.i31   << endl;  
+    cout << "0x321fffff"      << " 0x" << hex << (int) (sc_int<32>)test.i32   << endl;
+    cout << "0x4444abcdfffff" << " 0x" << hex << (long long signed int) (sc_int<64>)test.i64   << endl;    
 #endif
 
-  ASSERT(test.ui64.read() == ui64_reference);
-  ASSERT(test.i6.read() == (sc_int<6>)~0);
-  ASSERT(test.i31.read() == 0x222fffff);
-  ASSERT(test.i32.read() == 0x321fffff)
+    ASSERT(test.ui64.read() == ui64_reference);
+    ASSERT(test.i6.read() == (sc_int<6>) ~ 0);
+    ASSERT(test.i31.read() == 0x222fffff);
+    ASSERT(test.i32.read() == 0x321fffff);
 
-  long long signed int i64_reference = 0x4444abcdULL;
-  i64_reference <<= 20;
-  i64_reference += 0xfffffULL;
-  ASSERT(test.i64.read() == i64_reference);
+    long long signed int i64_reference = 0x4444abcdULL;
+    i64_reference <<= 20;
+    i64_reference += 0xfffffULL;
+    ASSERT(test.i64.read() == i64_reference);
 
-//  cout << "0x4294967315" << " 0x" << hex << test.bui64 << endl;    
-  cout << "Test OK.\n";
 
-  sc_close_vcd_trace_file (tf);
+    sc_close_vcd_trace_file(tf);
 
-  return EXIT_SUCCESS;
+    return EXIT_SUCCESS;
 }
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/17032005/trace_file_reference.vcd
===================================================================
--- sources/test_regression/17032005/trace_file_reference.vcd	(revision 55)
+++ sources/test_regression/17032005/trace_file_reference.vcd	(revision 55)
@@ -0,0 +1,329 @@
+
+$timescale
+     1 ps
+$end
+
+$scope module SystemC $end
+$var wire    6  aaa  ui6 [5:0]  $end
+$var wire   16  aab  ui16 [15:0]  $end
+$var wire   31  aac  ui31 [30:0]  $end
+$var wire   32  aad  ui32 [31:0]  $end
+$var wire   64  aae  ui64 [63:0]  $end
+$var wire    6  aaf  i6 [5:0]  $end
+$var wire   16  aag  i16 [15:0]  $end
+$var wire   31  aah  i31 [30:0]  $end
+$var wire   32  aai  i32 [31:0]  $end
+$var wire   64  aaj  i64 [63:0]  $end
+$var wire    1  aak  clk       $end
+$upscope $end
+$enddefinitions  $end
+
+$comment
+All initial values are dumped below at time 0 sec = 0 timescale units.
+$end
+
+$dumpvars
+b0 aaa
+b0 aab
+b0 aac
+b0 aad
+b0 aae
+b0 aaf
+b0 aag
+b0 aah
+b0 aai
+b0 aaj
+1aak
+$end
+
+#0
+b1111 aaa
+b111111 aab
+b100000000 aac
+b1000010001 aad
+b10101011110011110001001000110100 aae
+b1111 aaf
+b111111 aag
+b10001000100010010001000100010 aah
+b1000011001000010100001100100001 aai
+b1000100010001001010101111001101 aaj
+
+#500
+0aak
+
+#1000
+1aak
+
+#1500
+0aak
+
+#2000
+1aak
+
+#2500
+0aak
+
+#3000
+b11111 aaa
+b1111111 aab
+b1000000001 aac
+b10000100011 aad
+b101010111100111100010010001101001 aae
+b11111 aaf
+b1111111 aag
+b100010001000100100010001000101 aah
+b10000110010000101000011001000011 aai
+b10001000100010010101011110011011 aaj
+1aak
+
+#3500
+0aak
+
+#4000
+b111111 aaa
+b11111111 aab
+b10000000011 aac
+b100001000111 aad
+b1010101111001111000100100011010011 aae
+b111111 aaf
+b11111111 aag
+b1000100010001001000100010001011 aah
+b1100100001010000110010000111 aai
+b100010001000100101010111100110111 aaj
+1aak
+
+#4500
+0aak
+
+#5000
+b111111111 aab
+b100000000111 aac
+b1000010001111 aad
+b10101011110011110001001000110100111 aae
+b111111111 aag
+b1000100010010001000100010111 aah
+b11001000010100001100100001111 aai
+b1000100010001001010101111001101111 aaj
+1aak
+
+#5500
+0aak
+
+#6000
+b1111111111 aab
+b1000000001111 aac
+b10000100011111 aad
+b101010111100111100010010001101001111 aae
+b1111111111 aag
+b10001000100100010001000101111 aah
+b110010000101000011001000011111 aai
+b10001000100010010101011110011011111 aaj
+1aak
+
+#6500
+0aak
+
+#7000
+b11111111111 aab
+b10000000011111 aac
+b100001000111111 aad
+b1010101111001111000100100011010011111 aae
+b11111111111 aag
+b100010001001000100010001011111 aah
+b1100100001010000110010000111111 aai
+b100010001000100101010111100110111111 aaj
+1aak
+
+#7500
+0aak
+
+#8000
+b111111111111 aab
+b100000000111111 aac
+b1000010001111111 aad
+b10101011110011110001001000110100111111 aae
+b111111111111 aag
+b1000100010010001000100010111111 aah
+b11001000010100001100100001111111 aai
+b1000100010001001010101111001101111111 aaj
+1aak
+
+#8500
+0aak
+
+#9000
+b1111111111111 aab
+b1000000001111111 aac
+b10000100011111111 aad
+b101010111100111100010010001101001111111 aae
+b1111111111111 aag
+b1000100100010001000101111111 aah
+b10010000101000011001000011111111 aai
+b10001000100010010101011110011011111111 aaj
+1aak
+
+#9500
+0aak
+
+#10000
+b11111111111111 aab
+b10000000011111111 aac
+b100001000111111111 aad
+b1010101111001111000100100011010011111111 aae
+b11111111111111 aag
+b10001001000100010001011111111 aah
+b100001010000110010000111111111 aai
+b100010001000100101010111100110111111111 aaj
+1aak
+
+#10500
+0aak
+
+#11000
+b111111111111111 aab
+b100000000111111111 aac
+b1000010001111111111 aad
+b10101011110011110001001000110100111111111 aae
+b111111111111111 aag
+b100010010001000100010111111111 aah
+b1000010100001100100001111111111 aai
+b1000100010001001010101111001101111111111 aaj
+1aak
+
+#11500
+0aak
+
+#12000
+b1111111111111111 aab
+b1000000001111111111 aac
+b10000100011111111111 aad
+b101010111100111100010010001101001111111111 aae
+b1111111111111111 aag
+b1000100100010001000101111111111 aah
+b10000101000011001000011111111111 aai
+b10001000100010010101011110011011111111111 aaj
+1aak
+
+#12500
+0aak
+
+#13000
+b10000000011111111111 aac
+b100001000111111111111 aad
+b1010101111001111000100100011010011111111111 aae
+b1001000100010001011111111111 aah
+b1010000110010000111111111111 aai
+b100010001000100101010111100110111111111111 aaj
+1aak
+
+#13500
+0aak
+
+#14000
+b100000000111111111111 aac
+b1000010001111111111111 aad
+b10101011110011110001001000110100111111111111 aae
+b10010001000100010111111111111 aah
+b10100001100100001111111111111 aai
+b1000100010001001010101111001101111111111111 aaj
+1aak
+
+#14500
+0aak
+
+#15000
+b1000000001111111111111 aac
+b10000100011111111111111 aad
+b101010111100111100010010001101001111111111111 aae
+b100100010001000101111111111111 aah
+b101000011001000011111111111111 aai
+b10001000100010010101011110011011111111111111 aaj
+1aak
+
+#15500
+0aak
+
+#16000
+b10000000011111111111111 aac
+b100001000111111111111111 aad
+b1010101111001111000100100011010011111111111111 aae
+b1001000100010001011111111111111 aah
+b1010000110010000111111111111111 aai
+b100010001000100101010111100110111111111111111 aaj
+1aak
+
+#16500
+0aak
+
+#17000
+b100000000111111111111111 aac
+b1000010001111111111111111 aad
+b10101011110011110001001000110100111111111111111 aae
+b10001000100010111111111111111 aah
+b10100001100100001111111111111111 aai
+b1000100010001001010101111001101111111111111111 aaj
+1aak
+
+#17500
+0aak
+
+#18000
+b1000000001111111111111111 aac
+b10000100011111111111111111 aad
+b101010111100111100010010001101001111111111111111 aae
+b100010001000101111111111111111 aah
+b1000011001000011111111111111111 aai
+b10001000100010010101011110011011111111111111111 aaj
+1aak
+
+#18500
+0aak
+
+#19000
+b10000000011111111111111111 aac
+b100001000111111111111111111 aad
+b1010101111001111000100100011010011111111111111111 aae
+b1000100010001011111111111111111 aah
+b10000110010000111111111111111111 aai
+b100010001000100101010111100110111111111111111111 aaj
+1aak
+
+#19500
+0aak
+
+#20000
+b100000000111111111111111111 aac
+b1000010001111111111111111111 aad
+b10101011110011110001001000110100111111111111111111 aae
+b1000100010111111111111111111 aah
+b1100100001111111111111111111 aai
+b1000100010001001010101111001101111111111111111111 aaj
+1aak
+
+#20500
+0aak
+
+#21000
+b1000000001111111111111111111 aac
+b10000100011111111111111111111 aad
+b101010111100111100010010001101001111111111111111111 aae
+b10001000101111111111111111111 aah
+b11001000011111111111111111111 aai
+b10001000100010010101011110011011111111111111111111 aaj
+1aak
+
+#21500
+0aak
+
+#22000
+b10000000011111111111111111111 aac
+b100001000111111111111111111111 aad
+b1010101111001111000100100011010011111111111111111111 aae
+b100010001011111111111111111111 aah
+b110010000111111111111111111111 aai
+b100010001000100101010111100110111111111111111111111 aaj
+1aak
+
+#22500
+0aak
+
Index: sources/test_regression/19042005/Makefile
===================================================================
--- sources/test_regression/19042005/Makefile	(revision 54)
+++ sources/test_regression/19042005/Makefile	(revision 55)
@@ -1,59 +1,27 @@
+
 include ../env.mk
+TRACE1 = trace_file_scass.vcd
+TRACE2 = trace_file_systemc.vcd
+ERASE = $(TRACE1) $(TRACE2)
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+TRACE = trace_file.vcd
+TRACE_REF = trace_file_reference.vcd
 
-.SECONDARY:
+test: all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@mv $(TRACE) $(TRACE1)
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@mv $(TRACE) $(TRACE2)
+	@if tail -n +8 $(TRACE1) | diff $(TRACE_REF) - > /dev/null ; then \
+		if tail -n +8 $(TRACE2) | diff $(TRACE_REF) - > /dev/null ; then \
+			echo "OK" ; \
+		else \
+			echo "KO" ; \
+		fi ; \
+	else \
+		echo "KO" ; \
+	fi ;
 
-main : $(EXE) 
-
-test : system.vcd system_systemcass.x-60_reference.vcd
-	-diff system.vcd system_systemcass.x-60_reference.vcd
-
-%.vcd : %_systemcass.x %_systemc.x
-	./$*_systemcass.x $*_systemcass.x 60
-	tail -n +8 $*_systemcass.x.vcd > $*.vcd
-	rm $*_systemcass.x.vcd
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
 	
Index: sources/test_regression/19042005/system.cpp
===================================================================
--- sources/test_regression/19042005/system.cpp	(revision 54)
+++ sources/test_regression/19042005/system.cpp	(revision 55)
@@ -1,242 +1,183 @@
-#include <systemc.h>
+
 #include <stdint.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
 
 using namespace std;
 
-//#define sc_inout sc_out
-	
+
 struct test : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<char>                     i2;
-	sc_in<int>                      i3;
-	sc_in<sc_int<4> >               i4;
-	sc_in<sc_uint<4> >              i5;
-	sc_in<sc_uint<64> >             i6;
-	sc_out<bool>                    o1;
-	sc_out<char>                    o2;
-	sc_out<int >                    o3;
-	sc_out<sc_int<4> >              o4;
-	sc_out<sc_uint<4> >             o5;
-	sc_out<sc_uint<64> >            o6;
-	sc_inout<sc_uint<64> >          io1;
-//	sc_inout<sc_signed >            io2;
-//	sc_inout<sc_unsigned >          io3;
-	sc_inout<sc_uint<32> >          io4;
+    sc_in_clk               clk;
+    sc_in<bool>             i1;
+    sc_in<char>             i2;
+    sc_in<int>              i3;
+    sc_in<sc_int<4> >       i4;
+    sc_in<sc_uint<4> >      i5;
+    sc_in<sc_uint<64> >     i6;
+    sc_out<bool>            o1;
+    sc_out<char>            o2;
+    sc_out<int >            o3;
+    sc_out<sc_int<4> >      o4;
+    sc_out<sc_uint<4> >     o5;
+    sc_out<sc_uint<64> >    o6;
+    sc_inout<sc_uint<64> >  io1;
+    sc_inout<sc_uint<32> >  io4;
 
-  sc_signal<bool>                 reg1;
-  sc_signal<char>                 reg2;
-  sc_signal<int>                  reg3;
-  sc_signal<sc_int<4> >           reg4;
-  sc_signal<sc_uint<4> >          reg5;
-  sc_signal<sc_uint<64> >         reg6;
-//  sc_signal<sc_signed   >         reg7;
-//  sc_signal<sc_unsigned >         reg8;
-  sc_signal<sc_uint<32> >         reg9;
+    sc_signal<bool>         reg1;
+    sc_signal<char>         reg2;
+    sc_signal<int>          reg3;
+    sc_signal<sc_int<4> >   reg4;
+    sc_signal<sc_uint<4> >  reg5;
+    sc_signal<sc_uint<64> > reg6;
+    sc_signal<sc_uint<32> > reg9;
 
-	void gen ()
-  {
-    o1  = reg1.read() ^ true;
-    o2  = reg2.read()+ 1;
-    o3  = reg3.read()+ 1;
-    o4  = reg4.read()+ 1;
-    o5  = reg5.read()+ 1;
-    o6  = reg6.read()+ 1;
-    io1 = reg6.read() * 2 + 1;
-    io4 = reg9.read()+ 1;
-  }
+    void gen() {
+        o1  = reg1.read() ^ true;
+        o2  = reg2.read() + 1;
+        o3  = reg3.read() + 1;
+        o4  = reg4.read() + 1;
+        o5  = reg5.read() + 1;
+        o6  = reg6.read() + 1;
+        io1 = reg6.read() * 2 + 1;
+        io4 = reg9.read() + 1;
+    }
 
-  void trans ()
-  {
-//    io2 = io2.read() + 1;
-//    io3 = io3.read() + 1;
-        
-    reg1 = reg1.read() ^ 1;
-    reg2 = reg2.read() + 1;
-    reg3 = reg3.read() + 1;
-    reg4 = reg4.read() + 1;
-    reg5 = reg5.read() + 1;
-    reg6 = reg6.read() * 2 + 1;
-    reg9 = reg9.read() + 1;
-  }
+    void trans() {
+        reg1 = reg1.read() ^ 1;
+        reg2 = reg2.read() + 1;
+        reg3 = reg3.read() + 1;
+        reg4 = reg4.read() + 1;
+        reg5 = reg5.read() + 1;
+        reg6 = reg6.read() * 2 + 1;
+        reg9 = reg9.read() + 1;
+    }
 
-	SC_CTOR (test) : clk("clk"), i1("i1"), o1("o1"), i2("i2"), o2("o2"),
-i3("i3"), o3("o3"), io1("io1"), io4("io4"), reg9("reg9") {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
-		SC_METHOD(gen);
-		sensitive << clk.neg();
-    dont_initialize();
-	};
+    SC_CTOR (test) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), o1("o1"),
+    o2("o2"), o3("o3"), io1("io1"), io4("io4"), reg9("reg9") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
 
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock                     signal_clk("my_clock",1, 0.5);
-	sc_signal<bool>              s1 ("s01"),
-                               s2 ("s02");
-  sc_signal<char>              s3 ("s03"),
-                               s4 ("s04");
-  sc_signal<int>               s5 ("s05"),
-                               s6 ("s06");
-  sc_signal<sc_int<4> >        s7 ("s07"),
-                               s8 ("s08");
-  sc_signal<sc_uint<4> >       s9 ("s09"),
-                               s10("s10");
-  sc_signal<sc_uint<64> >      s11("s11"),
-                               s12("s12"),
-                               s13("s13");
-//  sc_signal<sc_signed >        s14("s14");                     
-//  sc_signal<sc_unsigned >      s15("s15");
-  sc_signal<sc_uint<32> >      s16("s16");
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock", 1, 0.5);
+    sc_signal<bool> s1 ("s01"), s2 ("s02");
+    sc_signal<char> s3 ("s03"), s4 ("s04");
+    sc_signal<int>  s5 ("s05"), s6 ("s06");
+    sc_signal< sc_int<4> >   s7 ("s07"), s8 ("s08");
+    sc_signal< sc_uint<4> >  s9 ("s09"), s10("s10");
+    sc_signal< sc_uint<64> > s11("s11"), s12("s12"), s13("s13");
+    sc_signal< sc_uint<32> > s16("s16");
 
-  test test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s1);
-  test1.o1 (s2);
-  test1.i2 (s3);
-  test1.o2 (s4);
-  test1.i3 (s5);
-  test1.o3 (s6);
-  test1.i4 (s7);
-  test1.o4 (s8);
-  test1.i5 (s9);
-  test1.o5 (s10);
-  test1.i6 (s11);
-  test1.o6 (s12);
-  test1.io1(s13);
-//  test1.io2(s14);
-//  test1.io3(s15);
-  test1.io4(s16);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s1);
+    test1.o1(s2);
+    test1.i2(s3);
+    test1.o2(s4);
+    test1.i3(s5);
+    test1.o3(s6);
+    test1.i4(s7);
+    test1.o4(s8);
+    test1.i5(s9);
+    test1.o5(s10);
+    test1.i6(s11);
+    test1.o6(s12);
+    test1.io1(s13);
+    test1.io4(s16);
 
-	/* Open trace file */
-	sc_trace_file *system_trace_file;
-	system_trace_file = sc_create_vcd_trace_file (argv[1]);
-	/* clk waveform is always useful */
-	sc_trace(system_trace_file, signal_clk, "clk");
+    /* Open trace file */
+    sc_trace_file * system_trace_file;
+    system_trace_file = sc_create_vcd_trace_file("trace_file");
+    /* clk waveform is always useful */
+    sc_trace(system_trace_file, signal_clk, "clk");
 
-  bool     b1 = 0;
-  uint64_t l1 = 0;
+    bool b1 = 0;
+    uint64_t l1 = 0;
 
-#if 0
-#if defined(SYSTEMCASS_SPECIFIC)
-  uint64 ui1 = 0;
-  int64  i1  = 0;
-  sc_trace(system_trace_file, ui1, "ui1");
-  sc_trace(system_trace_file, i1,  "i1");
-#endif
-#endif
+#define TRACE(x) sc_trace (system_trace_file, x, #x);
+    TRACE(b1);
+    TRACE(l1);
+    TRACE(test1.i1);
+    TRACE(test1.i2);
+    TRACE(test1.i3);
+    TRACE(test1.i4);
+    TRACE(test1.i5);
+    TRACE(test1.i6);
+    TRACE(test1.o1);
+    TRACE(test1.o2);
+    TRACE(test1.o3);
+    TRACE(test1.o4);
+    TRACE(test1.o5);
+    TRACE(test1.o6);
+    TRACE(test1.io1);
+    TRACE(test1.io4);
+    TRACE(s1);
+    TRACE(s2);
+    TRACE(s3);
+    TRACE(s4);
+    TRACE(s5);
+    TRACE(s6);
+    TRACE(s7);
+    TRACE(s8);
+    TRACE(s9);
+    TRACE(s10);
+    TRACE(s11);
+    TRACE(s12);
+    TRACE(s13);
+    TRACE(s16);
+#undef TRACE
 
-  #define TRACE(x) sc_trace (system_trace_file, x, #x);
-  TRACE(b1);
-  TRACE(l1);
-  TRACE(test1.i1);
-  TRACE(test1.i2);
-  TRACE(test1.i3);
-  TRACE(test1.i4);
-  TRACE(test1.i5);
-  TRACE(test1.i6);
-  TRACE(test1.o1);
-  TRACE(test1.o2);
-  TRACE(test1.o3);
-  TRACE(test1.o4);
-  TRACE(test1.o5);
-  TRACE(test1.o6);
-  TRACE(test1.io1);
-//  TRACE(test1.io2);
-//  TRACE(test1.io3);
-  TRACE(test1.io4);
-  TRACE(s1);
-  TRACE(s2);
-  TRACE(s3);
-  TRACE(s4);
-  TRACE(s5);
-  TRACE(s6);
-  TRACE(s7);
-  TRACE(s8);
-  TRACE(s9);
-  TRACE(s10);
-  TRACE(s11);
-  TRACE(s12);
-  TRACE(s13);
-//  TRACE(s14);
-//  TRACE(s15);
-  TRACE(s16);
-  #undef TRACE
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-	// Init & run
-	sc_initialize ();
+    ASSERT(test1.i1.read() == false);
+    ASSERT(s4.read() == 0);
+    ASSERT(s10.read() == 0);
+    ASSERT(s16.read() == 0);
 
-  ASSERT(test1.i1.read() == false);
-  ASSERT(s4.read() == 0);
-  ASSERT(s10.read() == 0);
-  ASSERT(s16.read() == 0);
+    sc_start(sc_time(1, sc_core::SC_NS));
 
-#if 0
-#if SYSTEMCASS_SPECIFIC
-  cerr << "s16 = " << hex << s16.get_pointer () << endl;
-  cerr << "io4 = " << hex << test1.io4.get_pointer () << endl;
-//  cerr << "io4(base) = " << hex << &(test1.io4.val) << endl;
-#endif
-  cerr << s16 << " " << test1.io4 << endl;
-  s16 = 5;
-  cerr << s16 << " " << test1.io4 << endl;
-  test1.io4 = 7;
-  cerr << s16 << " " << test1.io4 << endl;
-#endif
+    b1 = 1;
+    l1 = 5;
 
-  if (argc == 2)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    int i;
+    for (i = 1; i < 60; ++i) {
+        l1 += i;
+        b1 ^= true;
+        s1  = s1.read() ^ true;
+        s3  = s3.read() + 2;
+        s5  = s5.read() + 3;
+        s7  = s7.read() + 4;
+        s9  = s9.read() + 5;
+        s11 = (s11.read() << 2) + 1;
+        sc_start(sc_time(1, sc_core::SC_NS));
+    }
+
+    sc_close_vcd_trace_file(system_trace_file);
+
     return EXIT_SUCCESS;
-  }
-
-	int nb = atoi(argv[2]);
-  
-  sc_start (1);
-
-  b1 = 1;
-  l1 = 5;
-
-  int i;
-  for (i = 1; i < nb; ++i)
-  {
-    l1 += i;
-    b1 ^= true;
-    s1  = s1.read()  ^ true;
-    s3  = s3.read()  + 2;
-    s5  = s5.read()  + 3;
-    s7  = s7.read()  + 4;
-    s9  = s9.read()  + 5;
-    s11 = (s11.read() << 2) + 1;
-#if 0
-#if defined(SYSTEMCASS_SPECIFIC)
-  ui1 <<= 1; ui1 += 1;
-  i1  <<= 1; i1 += 1;
-#endif
-#endif
-#if 0
-    cerr << test1.io4.read() << " " << s16.read() << "\n";
-#endif
-    sc_start (1);
-  }
-
-	sc_close_vcd_trace_file (system_trace_file);
-
-	return EXIT_SUCCESS;
 }
 
 #undef sc_inout
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/19042005/system_systemcass.x-10_reference.vcd
===================================================================
--- sources/test_regression/19042005/system_systemcass.x-10_reference.vcd	(revision 54)
+++ 	(revision )
@@ -1,316 +1,0 @@
-
-$timescale
-	1 ps
-$end
-
-$scope module SystemC $end
-$var wire    1  aaa  clk       $end
-$var wire    1  aab  b1       $end
-$var wire   32  aac  l1       $end
-$var wire    1  aad  test1.i1       $end
-$var wire    8  aae  test1.i2       $end
-$var wire   32  aaf  test1.i3       $end
-$var wire    4  aag  test1.i4       $end
-$var wire    4  aah  test1.i5       $end
-$var wire   64  aai  test1.i6       $end
-$var wire    1  aaj  test1.o1       $end
-$var wire    8  aak  test1.o2       $end
-$var wire   32  aal  test1.o3       $end
-$var wire    4  aam  test1.o4       $end
-$var wire    4  aan  test1.o5       $end
-$var wire   64  aao  test1.o6       $end
-$var wire   64  aap  test1.io1       $end
-$var wire   32  aaq  test1.io4       $end
-$var wire    1  aar  s1       $end
-$var wire    1  aas  s2       $end
-$var wire    8  aat  s3       $end
-$var wire    8  aau  s4       $end
-$var wire   32  aav  s5       $end
-$var wire   32  aaw  s6       $end
-$var wire    4  aax  s7       $end
-$var wire    4  aay  s8       $end
-$var wire    4  aaz  s9       $end
-$var wire    4  aba  s10       $end
-$var wire   64  abb  s11       $end
-$var wire   64  abc  s12       $end
-$var wire   64  abd  s13       $end
-$var wire   32  abe  s16       $end
-$upscope $end
-$enddefinitions  $end
-
-$comment
-All initial values are dumped below at time 0 sec = 0 timescale units.
-$end
-
-$dumpvars
-0aab
-b101 aac
-0aad
-b0 aae
-b0 aaf
-b0 aag
-b0 aah
-b0 aai
-0aaj
-b0 aak
-b0 aal
-b0 aam
-b0 aan
-b0 aao
-b0 aap
-b0 aaq
-0aar
-0aas
-b0 aat
-b0 aau
-b0 aav
-b0 aaw
-b0 aax
-b0 aay
-b0 aaz
-b0 aba
-b0 abb
-b0 abc
-b0 abd
-b0 abe
-1aaa
-$end
-
-#500
-0aaa
-
-#1000
-1aab
-b110 aac
-b10 aak
-b10 aal
-b10 aam
-b10 aan
-b10 aao
-b10 aap
-b10 aaq
-b10 aau
-b10 aaw
-b10 aay
-b10 aba
-b10 abc
-b10 abd
-b10 abe
-1aaa
-
-#1500
-0aaa
-
-#2000
-0aab
-b1000 aac
-1aaj
-b11 aak
-b11 aal
-b11 aam
-b11 aan
-b11 aao
-b11 aap
-b11 aaq
-1aas
-b11 aau
-b11 aaw
-b11 aay
-b11 aba
-b11 abc
-b11 abd
-b11 abe
-1aaa
-
-#2500
-0aaa
-
-#3000
-1aab
-b1011 aac
-0aaj
-b100 aak
-b100 aal
-b100 aam
-b100 aan
-b100 aao
-b100 aap
-b100 aaq
-0aas
-b100 aau
-b100 aaw
-b100 aay
-b100 aba
-b100 abc
-b100 abd
-b100 abe
-1aaa
-
-#3500
-0aaa
-
-#4000
-0aab
-b1111 aac
-1aaj
-b101 aak
-b101 aal
-b101 aam
-b101 aan
-b101 aao
-b101 aap
-b101 aaq
-1aas
-b101 aau
-b101 aaw
-b101 aay
-b101 aba
-b101 abc
-b101 abd
-b101 abe
-1aaa
-
-#4500
-0aaa
-
-#5000
-1aab
-b10100 aac
-0aaj
-b110 aak
-b110 aal
-b110 aam
-b110 aan
-b110 aao
-b110 aap
-b110 aaq
-0aas
-b110 aau
-b110 aaw
-b110 aay
-b110 aba
-b110 abc
-b110 abd
-b110 abe
-1aaa
-
-#5500
-0aaa
-
-#6000
-0aab
-b11010 aac
-1aaj
-b111 aak
-b111 aal
-b111 aam
-b111 aan
-b111 aao
-b111 aap
-b111 aaq
-1aas
-b111 aau
-b111 aaw
-b111 aay
-b111 aba
-b111 abc
-b111 abd
-b111 abe
-1aaa
-
-#6500
-0aaa
-
-#7000
-1aab
-b100001 aac
-0aaj
-b1000 aak
-b1000 aal
-b1000 aam
-b1000 aan
-b1000 aao
-b1000 aap
-b1000 aaq
-0aas
-b1000 aau
-b1000 aaw
-b1000 aay
-b1000 aba
-b1000 abc
-b1000 abd
-b1000 abe
-1aaa
-
-#7500
-0aaa
-
-#8000
-0aab
-b101001 aac
-1aaj
-b1001 aak
-b1001 aal
-b1001 aam
-b1001 aan
-b1001 aao
-b1001 aap
-b1001 aaq
-1aas
-b1001 aau
-b1001 aaw
-b1001 aay
-b1001 aba
-b1001 abc
-b1001 abd
-b1001 abe
-1aaa
-
-#8500
-0aaa
-
-#9000
-1aab
-b110010 aac
-0aaj
-b1010 aak
-b1010 aal
-b1010 aam
-b1010 aan
-b1010 aao
-b1010 aap
-b1010 aaq
-0aas
-b1010 aau
-b1010 aaw
-b1010 aay
-b1010 aba
-b1010 abc
-b1010 abd
-b1010 abe
-1aaa
-
-#9500
-0aaa
-
-#10000
-1aaj
-b1011 aak
-b1011 aal
-b1011 aam
-b1011 aan
-b1011 aao
-b1011 aap
-b1011 aaq
-1aas
-b1011 aau
-b1011 aaw
-b1011 aay
-b1011 aba
-b1011 abc
-b1011 abd
-b1011 abe
-1aaa
-
-#10500
-0aaa
Index: sources/test_regression/19042005/system_systemcass.x-60_reference.vcd
===================================================================
--- sources/test_regression/19042005/system_systemcass.x-60_reference.vcd	(revision 54)
+++ 	(revision )
@@ -1,2169 +1,0 @@
-
-$timescale
-	1 ps
-$end
-
-$scope module SystemC $end
-$var wire    1  aaa  clk       $end
-$var wire    1  aab  b1       $end
-$var wire   64  aac  l1 [63:0]       $end
-$var wire    1  aad  test1.i1       $end
-$var wire    8  aae  test1.i2 [7:0]       $end
-$var wire   32  aaf  test1.i3 [31:0]       $end
-$var wire    4  aag  test1.i4 [3:0]       $end
-$var wire    4  aah  test1.i5 [3:0]       $end
-$var wire   64  aai  test1.i6 [63:0]       $end
-$var wire    1  aaj  test1.o1       $end
-$var wire    8  aak  test1.o2 [7:0]       $end
-$var wire   32  aal  test1.o3 [31:0]       $end
-$var wire    4  aam  test1.o4 [3:0]       $end
-$var wire    4  aan  test1.o5 [3:0]       $end
-$var wire   64  aao  test1.o6 [63:0]       $end
-$var wire   64  aap  test1.io1 [63:0]       $end
-$var wire   32  aaq  test1.io4 [31:0]       $end
-$var wire    1  aar  s1       $end
-$var wire    1  aas  s2       $end
-$var wire    8  aat  s3 [7:0]       $end
-$var wire    8  aau  s4 [7:0]       $end
-$var wire   32  aav  s5 [31:0]       $end
-$var wire   32  aaw  s6 [31:0]       $end
-$var wire    4  aax  s7 [3:0]       $end
-$var wire    4  aay  s8 [3:0]       $end
-$var wire    4  aaz  s9 [3:0]       $end
-$var wire    4  aba  s10 [3:0]       $end
-$var wire   64  abb  s11 [63:0]       $end
-$var wire   64  abc  s12 [63:0]       $end
-$var wire   64  abd  s13 [63:0]       $end
-$var wire   32  abe  s16 [31:0]       $end
-$upscope $end
-$enddefinitions  $end
-
-$comment
-All initial values are dumped below at time 0 sec = 0 timescale units.
-$end
-
-$dumpvars
-0aab
-b0 aac
-0aad
-b0 aae
-b0 aaf
-b0 aag
-b0 aah
-b0 aai
-0aaj
-b0 aak
-b0 aal
-b0 aam
-b0 aan
-b0 aao
-b0 aap
-b0 aaq
-0aar
-0aas
-b0 aat
-b0 aau
-b0 aav
-b0 aaw
-b0 aax
-b0 aay
-b0 aaz
-b0 aba
-b0 abb
-b0 abc
-b0 abd
-b0 abe
-1aaa
-$end
-
-#500
-0aaa
-
-#1000
-b110 aac
-1aad
-b10 aae
-b11 aaf
-b100 aag
-b101 aah
-b1 aai
-b10 aak
-b10 aal
-b10 aam
-b10 aan
-b10 aao
-b11 aap
-b10 aaq
-1aar
-b10 aat
-b10 aau
-b11 aav
-b10 aaw
-b100 aax
-b10 aay
-b101 aaz
-b10 aba
-b1 abb
-b10 abc
-b11 abd
-b10 abe
-1aaa
-
-#1500
-0aaa
-
-#2000
-1aab
-b1000 aac
-0aad
-b100 aae
-b110 aaf
-b1000 aag
-b1010 aah
-b101 aai
-1aaj
-b11 aak
-b11 aal
-b11 aam
-b11 aan
-b100 aao
-b111 aap
-b11 aaq
-0aar
-1aas
-b100 aat
-b11 aau
-b110 aav
-b11 aaw
-b1000 aax
-b11 aay
-b1010 aaz
-b11 aba
-b101 abb
-b100 abc
-b111 abd
-b11 abe
-1aaa
-
-#2500
-0aaa
-
-#3000
-0aab
-b1011 aac
-1aad
-b110 aae
-b1001 aaf
-b1100 aag
-b1111 aah
-b10101 aai
-0aaj
-b100 aak
-b100 aal
-b100 aam
-b100 aan
-b1000 aao
-b1111 aap
-b100 aaq
-1aar
-0aas
-b110 aat
-b100 aau
-b1001 aav
-b100 aaw
-b1100 aax
-b100 aay
-b1111 aaz
-b100 aba
-b10101 abb
-b1000 abc
-b1111 abd
-b100 abe
-1aaa
-
-#3500
-0aaa
-
-#4000
-1aab
-b1111 aac
-0aad
-b1000 aae
-b1100 aaf
-b0 aag
-b100 aah
-b1010101 aai
-1aaj
-b101 aak
-b101 aal
-b101 aam
-b101 aan
-b10000 aao
-b11111 aap
-b101 aaq
-0aar
-1aas
-b1000 aat
-b101 aau
-b1100 aav
-b101 aaw
-b0 aax
-b101 aay
-b100 aaz
-b101 aba
-b1010101 abb
-b10000 abc
-b11111 abd
-b101 abe
-1aaa
-
-#4500
-0aaa
-
-#5000
-0aab
-b10100 aac
-1aad
-b1010 aae
-b1111 aaf
-b100 aag
-b1001 aah
-b101010101 aai
-0aaj
-b110 aak
-b110 aal
-b110 aam
-b110 aan
-b100000 aao
-b111111 aap
-b110 aaq
-1aar
-0aas
-b1010 aat
-b110 aau
-b1111 aav
-b110 aaw
-b100 aax
-b110 aay
-b1001 aaz
-b110 aba
-b101010101 abb
-b100000 abc
-b111111 abd
-b110 abe
-1aaa
-
-#5500
-0aaa
-
-#6000
-1aab
-b11010 aac
-0aad
-b1100 aae
-b10010 aaf
-b1000 aag
-b1110 aah
-b10101010101 aai
-1aaj
-b111 aak
-b111 aal
-b111 aam
-b111 aan
-b1000000 aao
-b1111111 aap
-b111 aaq
-0aar
-1aas
-b1100 aat
-b111 aau
-b10010 aav
-b111 aaw
-b1000 aax
-b111 aay
-b1110 aaz
-b111 aba
-b10101010101 abb
-b1000000 abc
-b1111111 abd
-b111 abe
-1aaa
-
-#6500
-0aaa
-
-#7000
-0aab
-b100001 aac
-1aad
-b1110 aae
-b10101 aaf
-b1100 aag
-b11 aah
-b1010101010101 aai
-0aaj
-b1000 aak
-b1000 aal
-b1000 aam
-b1000 aan
-b10000000 aao
-b11111111 aap
-b1000 aaq
-1aar
-0aas
-b1110 aat
-b1000 aau
-b10101 aav
-b1000 aaw
-b1100 aax
-b1000 aay
-b11 aaz
-b1000 aba
-b1010101010101 abb
-b10000000 abc
-b11111111 abd
-b1000 abe
-1aaa
-
-#7500
-0aaa
-
-#8000
-1aab
-b101001 aac
-0aad
-b10000 aae
-b11000 aaf
-b0 aag
-b1000 aah
-b101010101010101 aai
-1aaj
-b1001 aak
-b1001 aal
-b1001 aam
-b1001 aan
-b100000000 aao
-b111111111 aap
-b1001 aaq
-0aar
-1aas
-b10000 aat
-b1001 aau
-b11000 aav
-b1001 aaw
-b0 aax
-b1001 aay
-b1000 aaz
-b1001 aba
-b101010101010101 abb
-b100000000 abc
-b111111111 abd
-b1001 abe
-1aaa
-
-#8500
-0aaa
-
-#9000
-0aab
-b110010 aac
-1aad
-b10010 aae
-b11011 aaf
-b100 aag
-b1101 aah
-b10101010101010101 aai
-0aaj
-b1010 aak
-b1010 aal
-b1010 aam
-b1010 aan
-b1000000000 aao
-b1111111111 aap
-b1010 aaq
-1aar
-0aas
-b10010 aat
-b1010 aau
-b11011 aav
-b1010 aaw
-b100 aax
-b1010 aay
-b1101 aaz
-b1010 aba
-b10101010101010101 abb
-b1000000000 abc
-b1111111111 abd
-b1010 abe
-1aaa
-
-#9500
-0aaa
-
-#10000
-1aab
-b111100 aac
-0aad
-b10100 aae
-b11110 aaf
-b1000 aag
-b10 aah
-b1010101010101010101 aai
-1aaj
-b1011 aak
-b1011 aal
-b1011 aam
-b1011 aan
-b10000000000 aao
-b11111111111 aap
-b1011 aaq
-0aar
-1aas
-b10100 aat
-b1011 aau
-b11110 aav
-b1011 aaw
-b1000 aax
-b1011 aay
-b10 aaz
-b1011 aba
-b1010101010101010101 abb
-b10000000000 abc
-b11111111111 abd
-b1011 abe
-1aaa
-
-#10500
-0aaa
-
-#11000
-0aab
-b1000111 aac
-1aad
-b10110 aae
-b100001 aaf
-b1100 aag
-b111 aah
-b101010101010101010101 aai
-0aaj
-b1100 aak
-b1100 aal
-b1100 aam
-b1100 aan
-b100000000000 aao
-b111111111111 aap
-b1100 aaq
-1aar
-0aas
-b10110 aat
-b1100 aau
-b100001 aav
-b1100 aaw
-b1100 aax
-b1100 aay
-b111 aaz
-b1100 aba
-b101010101010101010101 abb
-b100000000000 abc
-b111111111111 abd
-b1100 abe
-1aaa
-
-#11500
-0aaa
-
-#12000
-1aab
-b1010011 aac
-0aad
-b11000 aae
-b100100 aaf
-b0 aag
-b1100 aah
-b10101010101010101010101 aai
-1aaj
-b1101 aak
-b1101 aal
-b1101 aam
-b1101 aan
-b1000000000000 aao
-b1111111111111 aap
-b1101 aaq
-0aar
-1aas
-b11000 aat
-b1101 aau
-b100100 aav
-b1101 aaw
-b0 aax
-b1101 aay
-b1100 aaz
-b1101 aba
-b10101010101010101010101 abb
-b1000000000000 abc
-b1111111111111 abd
-b1101 abe
-1aaa
-
-#12500
-0aaa
-
-#13000
-0aab
-b1100000 aac
-1aad
-b11010 aae
-b100111 aaf
-b100 aag
-b1 aah
-b1010101010101010101010101 aai
-0aaj
-b1110 aak
-b1110 aal
-b1110 aam
-b1110 aan
-b10000000000000 aao
-b11111111111111 aap
-b1110 aaq
-1aar
-0aas
-b11010 aat
-b1110 aau
-b100111 aav
-b1110 aaw
-b100 aax
-b1110 aay
-b1 aaz
-b1110 aba
-b1010101010101010101010101 abb
-b10000000000000 abc
-b11111111111111 abd
-b1110 abe
-1aaa
-
-#13500
-0aaa
-
-#14000
-1aab
-b1101110 aac
-0aad
-b11100 aae
-b101010 aaf
-b1000 aag
-b110 aah
-b101010101010101010101010101 aai
-1aaj
-b1111 aak
-b1111 aal
-b1111 aam
-b1111 aan
-b100000000000000 aao
-b111111111111111 aap
-b1111 aaq
-0aar
-1aas
-b11100 aat
-b1111 aau
-b101010 aav
-b1111 aaw
-b1000 aax
-b1111 aay
-b110 aaz
-b1111 aba
-b101010101010101010101010101 abb
-b100000000000000 abc
-b111111111111111 abd
-b1111 abe
-1aaa
-
-#14500
-0aaa
-
-#15000
-0aab
-b1111101 aac
-1aad
-b11110 aae
-b101101 aaf
-b1100 aag
-b1011 aah
-b10101010101010101010101010101 aai
-0aaj
-b10000 aak
-b10000 aal
-b0 aam
-b0 aan
-b1000000000000000 aao
-b1111111111111111 aap
-b10000 aaq
-1aar
-0aas
-b11110 aat
-b10000 aau
-b101101 aav
-b10000 aaw
-b1100 aax
-b0 aay
-b1011 aaz
-b0 aba
-b10101010101010101010101010101 abb
-b1000000000000000 abc
-b1111111111111111 abd
-b10000 abe
-1aaa
-
-#15500
-0aaa
-
-#16000
-1aab
-b10001101 aac
-0aad
-b100000 aae
-b110000 aaf
-b0 aag
-b0 aah
-b1010101010101010101010101010101 aai
-1aaj
-b10001 aak
-b10001 aal
-b1 aam
-b1 aan
-b10000000000000000 aao
-b11111111111111111 aap
-b10001 aaq
-0aar
-1aas
-b100000 aat
-b10001 aau
-b110000 aav
-b10001 aaw
-b0 aax
-b1 aay
-b0 aaz
-b1 aba
-b1010101010101010101010101010101 abb
-b10000000000000000 abc
-b11111111111111111 abd
-b10001 abe
-1aaa
-
-#16500
-0aaa
-
-#17000
-0aab
-b10011110 aac
-1aad
-b100010 aae
-b110011 aaf
-b100 aag
-b101 aah
-b101010101010101010101010101010101 aai
-0aaj
-b10010 aak
-b10010 aal
-b10 aam
-b10 aan
-b100000000000000000 aao
-b111111111111111111 aap
-b10010 aaq
-1aar
-0aas
-b100010 aat
-b10010 aau
-b110011 aav
-b10010 aaw
-b100 aax
-b10 aay
-b101 aaz
-b10 aba
-b101010101010101010101010101010101 abb
-b100000000000000000 abc
-b111111111111111111 abd
-b10010 abe
-1aaa
-
-#17500
-0aaa
-
-#18000
-1aab
-b10110000 aac
-0aad
-b100100 aae
-b110110 aaf
-b1000 aag
-b1010 aah
-b10101010101010101010101010101010101 aai
-1aaj
-b10011 aak
-b10011 aal
-b11 aam
-b11 aan
-b1000000000000000000 aao
-b1111111111111111111 aap
-b10011 aaq
-0aar
-1aas
-b100100 aat
-b10011 aau
-b110110 aav
-b10011 aaw
-b1000 aax
-b11 aay
-b1010 aaz
-b11 aba
-b10101010101010101010101010101010101 abb
-b1000000000000000000 abc
-b1111111111111111111 abd
-b10011 abe
-1aaa
-
-#18500
-0aaa
-
-#19000
-0aab
-b11000011 aac
-1aad
-b100110 aae
-b111001 aaf
-b1100 aag
-b1111 aah
-b1010101010101010101010101010101010101 aai
-0aaj
-b10100 aak
-b10100 aal
-b100 aam
-b100 aan
-b10000000000000000000 aao
-b11111111111111111111 aap
-b10100 aaq
-1aar
-0aas
-b100110 aat
-b10100 aau
-b111001 aav
-b10100 aaw
-b1100 aax
-b100 aay
-b1111 aaz
-b100 aba
-b1010101010101010101010101010101010101 abb
-b10000000000000000000 abc
-b11111111111111111111 abd
-b10100 abe
-1aaa
-
-#19500
-0aaa
-
-#20000
-1aab
-b11010111 aac
-0aad
-b101000 aae
-b111100 aaf
-b0 aag
-b100 aah
-b101010101010101010101010101010101010101 aai
-1aaj
-b10101 aak
-b10101 aal
-b101 aam
-b101 aan
-b100000000000000000000 aao
-b111111111111111111111 aap
-b10101 aaq
-0aar
-1aas
-b101000 aat
-b10101 aau
-b111100 aav
-b10101 aaw
-b0 aax
-b101 aay
-b100 aaz
-b101 aba
-b101010101010101010101010101010101010101 abb
-b100000000000000000000 abc
-b111111111111111111111 abd
-b10101 abe
-1aaa
-
-#20500
-0aaa
-
-#21000
-0aab
-b11101100 aac
-1aad
-b101010 aae
-b111111 aaf
-b100 aag
-b1001 aah
-b10101010101010101010101010101010101010101 aai
-0aaj
-b10110 aak
-b10110 aal
-b110 aam
-b110 aan
-b1000000000000000000000 aao
-b1111111111111111111111 aap
-b10110 aaq
-1aar
-0aas
-b101010 aat
-b10110 aau
-b111111 aav
-b10110 aaw
-b100 aax
-b110 aay
-b1001 aaz
-b110 aba
-b10101010101010101010101010101010101010101 abb
-b1000000000000000000000 abc
-b1111111111111111111111 abd
-b10110 abe
-1aaa
-
-#21500
-0aaa
-
-#22000
-1aab
-b100000010 aac
-0aad
-b101100 aae
-b1000010 aaf
-b1000 aag
-b1110 aah
-b1010101010101010101010101010101010101010101 aai
-1aaj
-b10111 aak
-b10111 aal
-b111 aam
-b111 aan
-b10000000000000000000000 aao
-b11111111111111111111111 aap
-b10111 aaq
-0aar
-1aas
-b101100 aat
-b10111 aau
-b1000010 aav
-b10111 aaw
-b1000 aax
-b111 aay
-b1110 aaz
-b111 aba
-b1010101010101010101010101010101010101010101 abb
-b10000000000000000000000 abc
-b11111111111111111111111 abd
-b10111 abe
-1aaa
-
-#22500
-0aaa
-
-#23000
-0aab
-b100011001 aac
-1aad
-b101110 aae
-b1000101 aaf
-b1100 aag
-b11 aah
-b101010101010101010101010101010101010101010101 aai
-0aaj
-b11000 aak
-b11000 aal
-b1000 aam
-b1000 aan
-b100000000000000000000000 aao
-b111111111111111111111111 aap
-b11000 aaq
-1aar
-0aas
-b101110 aat
-b11000 aau
-b1000101 aav
-b11000 aaw
-b1100 aax
-b1000 aay
-b11 aaz
-b1000 aba
-b101010101010101010101010101010101010101010101 abb
-b100000000000000000000000 abc
-b111111111111111111111111 abd
-b11000 abe
-1aaa
-
-#23500
-0aaa
-
-#24000
-1aab
-b100110001 aac
-0aad
-b110000 aae
-b1001000 aaf
-b0 aag
-b1000 aah
-b10101010101010101010101010101010101010101010101 aai
-1aaj
-b11001 aak
-b11001 aal
-b1001 aam
-b1001 aan
-b1000000000000000000000000 aao
-b1111111111111111111111111 aap
-b11001 aaq
-0aar
-1aas
-b110000 aat
-b11001 aau
-b1001000 aav
-b11001 aaw
-b0 aax
-b1001 aay
-b1000 aaz
-b1001 aba
-b10101010101010101010101010101010101010101010101 abb
-b1000000000000000000000000 abc
-b1111111111111111111111111 abd
-b11001 abe
-1aaa
-
-#24500
-0aaa
-
-#25000
-0aab
-b101001010 aac
-1aad
-b110010 aae
-b1001011 aaf
-b100 aag
-b1101 aah
-b1010101010101010101010101010101010101010101010101 aai
-0aaj
-b11010 aak
-b11010 aal
-b1010 aam
-b1010 aan
-b10000000000000000000000000 aao
-b11111111111111111111111111 aap
-b11010 aaq
-1aar
-0aas
-b110010 aat
-b11010 aau
-b1001011 aav
-b11010 aaw
-b100 aax
-b1010 aay
-b1101 aaz
-b1010 aba
-b1010101010101010101010101010101010101010101010101 abb
-b10000000000000000000000000 abc
-b11111111111111111111111111 abd
-b11010 abe
-1aaa
-
-#25500
-0aaa
-
-#26000
-1aab
-b101100100 aac
-0aad
-b110100 aae
-b1001110 aaf
-b1000 aag
-b10 aah
-b101010101010101010101010101010101010101010101010101 aai
-1aaj
-b11011 aak
-b11011 aal
-b1011 aam
-b1011 aan
-b100000000000000000000000000 aao
-b111111111111111111111111111 aap
-b11011 aaq
-0aar
-1aas
-b110100 aat
-b11011 aau
-b1001110 aav
-b11011 aaw
-b1000 aax
-b1011 aay
-b10 aaz
-b1011 aba
-b101010101010101010101010101010101010101010101010101 abb
-b100000000000000000000000000 abc
-b111111111111111111111111111 abd
-b11011 abe
-1aaa
-
-#26500
-0aaa
-
-#27000
-0aab
-b101111111 aac
-1aad
-b110110 aae
-b1010001 aaf
-b1100 aag
-b111 aah
-b10101010101010101010101010101010101010101010101010101 aai
-0aaj
-b11100 aak
-b11100 aal
-b1100 aam
-b1100 aan
-b1000000000000000000000000000 aao
-b1111111111111111111111111111 aap
-b11100 aaq
-1aar
-0aas
-b110110 aat
-b11100 aau
-b1010001 aav
-b11100 aaw
-b1100 aax
-b1100 aay
-b111 aaz
-b1100 aba
-b10101010101010101010101010101010101010101010101010101 abb
-b1000000000000000000000000000 abc
-b1111111111111111111111111111 abd
-b11100 abe
-1aaa
-
-#27500
-0aaa
-
-#28000
-1aab
-b110011011 aac
-0aad
-b111000 aae
-b1010100 aaf
-b0 aag
-b1100 aah
-b1010101010101010101010101010101010101010101010101010101 aai
-1aaj
-b11101 aak
-b11101 aal
-b1101 aam
-b1101 aan
-b10000000000000000000000000000 aao
-b11111111111111111111111111111 aap
-b11101 aaq
-0aar
-1aas
-b111000 aat
-b11101 aau
-b1010100 aav
-b11101 aaw
-b0 aax
-b1101 aay
-b1100 aaz
-b1101 aba
-b1010101010101010101010101010101010101010101010101010101 abb
-b10000000000000000000000000000 abc
-b11111111111111111111111111111 abd
-b11101 abe
-1aaa
-
-#28500
-0aaa
-
-#29000
-0aab
-b110111000 aac
-1aad
-b111010 aae
-b1010111 aaf
-b100 aag
-b1 aah
-b101010101010101010101010101010101010101010101010101010101 aai
-0aaj
-b11110 aak
-b11110 aal
-b1110 aam
-b1110 aan
-b100000000000000000000000000000 aao
-b111111111111111111111111111111 aap
-b11110 aaq
-1aar
-0aas
-b111010 aat
-b11110 aau
-b1010111 aav
-b11110 aaw
-b100 aax
-b1110 aay
-b1 aaz
-b1110 aba
-b101010101010101010101010101010101010101010101010101010101 abb
-b100000000000000000000000000000 abc
-b111111111111111111111111111111 abd
-b11110 abe
-1aaa
-
-#29500
-0aaa
-
-#30000
-1aab
-b111010110 aac
-0aad
-b111100 aae
-b1011010 aaf
-b1000 aag
-b110 aah
-b10101010101010101010101010101010101010101010101010101010101 aai
-1aaj
-b11111 aak
-b11111 aal
-b1111 aam
-b1111 aan
-b1000000000000000000000000000000 aao
-b1111111111111111111111111111111 aap
-b11111 aaq
-0aar
-1aas
-b111100 aat
-b11111 aau
-b1011010 aav
-b11111 aaw
-b1000 aax
-b1111 aay
-b110 aaz
-b1111 aba
-b10101010101010101010101010101010101010101010101010101010101 abb
-b1000000000000000000000000000000 abc
-b1111111111111111111111111111111 abd
-b11111 abe
-1aaa
-
-#30500
-0aaa
-
-#31000
-0aab
-b111110101 aac
-1aad
-b111110 aae
-b1011101 aaf
-b1100 aag
-b1011 aah
-b1010101010101010101010101010101010101010101010101010101010101 aai
-0aaj
-b100000 aak
-b100000 aal
-b0 aam
-b0 aan
-b10000000000000000000000000000000 aao
-b11111111111111111111111111111111 aap
-b100000 aaq
-1aar
-0aas
-b111110 aat
-b100000 aau
-b1011101 aav
-b100000 aaw
-b1100 aax
-b0 aay
-b1011 aaz
-b0 aba
-b1010101010101010101010101010101010101010101010101010101010101 abb
-b10000000000000000000000000000000 abc
-b11111111111111111111111111111111 abd
-b100000 abe
-1aaa
-
-#31500
-0aaa
-
-#32000
-1aab
-b1000010101 aac
-0aad
-b1000000 aae
-b1100000 aaf
-b0 aag
-b0 aah
-b101010101010101010101010101010101010101010101010101010101010101 aai
-1aaj
-b100001 aak
-b100001 aal
-b1 aam
-b1 aan
-b100000000000000000000000000000000 aao
-b111111111111111111111111111111111 aap
-b100001 aaq
-0aar
-1aas
-b1000000 aat
-b100001 aau
-b1100000 aav
-b100001 aaw
-b0 aax
-b1 aay
-b0 aaz
-b1 aba
-b101010101010101010101010101010101010101010101010101010101010101 abb
-b100000000000000000000000000000000 abc
-b111111111111111111111111111111111 abd
-b100001 abe
-1aaa
-
-#32500
-0aaa
-
-#33000
-0aab
-b1000110110 aac
-1aad
-b1000010 aae
-b1100011 aaf
-b100 aag
-b101 aah
-0aaj
-b100010 aak
-b100010 aal
-b10 aam
-b10 aan
-b1000000000000000000000000000000000 aao
-b1111111111111111111111111111111111 aap
-b100010 aaq
-1aar
-0aas
-b1000010 aat
-b100010 aau
-b1100011 aav
-b100010 aaw
-b100 aax
-b10 aay
-b101 aaz
-b10 aba
-b1000000000000000000000000000000000 abc
-b1111111111111111111111111111111111 abd
-b100010 abe
-1aaa
-
-#33500
-0aaa
-
-#34000
-1aab
-b1001011000 aac
-0aad
-b1000100 aae
-b1100110 aaf
-b1000 aag
-b1010 aah
-1aaj
-b100011 aak
-b100011 aal
-b11 aam
-b11 aan
-b10000000000000000000000000000000000 aao
-b11111111111111111111111111111111111 aap
-b100011 aaq
-0aar
-1aas
-b1000100 aat
-b100011 aau
-b1100110 aav
-b100011 aaw
-b1000 aax
-b11 aay
-b1010 aaz
-b11 aba
-b10000000000000000000000000000000000 abc
-b11111111111111111111111111111111111 abd
-b100011 abe
-1aaa
-
-#34500
-0aaa
-
-#35000
-0aab
-b1001111011 aac
-1aad
-b1000110 aae
-b1101001 aaf
-b1100 aag
-b1111 aah
-0aaj
-b100100 aak
-b100100 aal
-b100 aam
-b100 aan
-b100000000000000000000000000000000000 aao
-b111111111111111111111111111111111111 aap
-b100100 aaq
-1aar
-0aas
-b1000110 aat
-b100100 aau
-b1101001 aav
-b100100 aaw
-b1100 aax
-b100 aay
-b1111 aaz
-b100 aba
-b100000000000000000000000000000000000 abc
-b111111111111111111111111111111111111 abd
-b100100 abe
-1aaa
-
-#35500
-0aaa
-
-#36000
-1aab
-b1010011111 aac
-0aad
-b1001000 aae
-b1101100 aaf
-b0 aag
-b100 aah
-1aaj
-b100101 aak
-b100101 aal
-b101 aam
-b101 aan
-b1000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111 aap
-b100101 aaq
-0aar
-1aas
-b1001000 aat
-b100101 aau
-b1101100 aav
-b100101 aaw
-b0 aax
-b101 aay
-b100 aaz
-b101 aba
-b1000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111 abd
-b100101 abe
-1aaa
-
-#36500
-0aaa
-
-#37000
-0aab
-b1011000100 aac
-1aad
-b1001010 aae
-b1101111 aaf
-b100 aag
-b1001 aah
-0aaj
-b100110 aak
-b100110 aal
-b110 aam
-b110 aan
-b10000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111 aap
-b100110 aaq
-1aar
-0aas
-b1001010 aat
-b100110 aau
-b1101111 aav
-b100110 aaw
-b100 aax
-b110 aay
-b1001 aaz
-b110 aba
-b10000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111 abd
-b100110 abe
-1aaa
-
-#37500
-0aaa
-
-#38000
-1aab
-b1011101010 aac
-0aad
-b1001100 aae
-b1110010 aaf
-b1000 aag
-b1110 aah
-1aaj
-b100111 aak
-b100111 aal
-b111 aam
-b111 aan
-b100000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111 aap
-b100111 aaq
-0aar
-1aas
-b1001100 aat
-b100111 aau
-b1110010 aav
-b100111 aaw
-b1000 aax
-b111 aay
-b1110 aaz
-b111 aba
-b100000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111 abd
-b100111 abe
-1aaa
-
-#38500
-0aaa
-
-#39000
-0aab
-b1100010001 aac
-1aad
-b1001110 aae
-b1110101 aaf
-b1100 aag
-b11 aah
-0aaj
-b101000 aak
-b101000 aal
-b1000 aam
-b1000 aan
-b1000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111 aap
-b101000 aaq
-1aar
-0aas
-b1001110 aat
-b101000 aau
-b1110101 aav
-b101000 aaw
-b1100 aax
-b1000 aay
-b11 aaz
-b1000 aba
-b1000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111 abd
-b101000 abe
-1aaa
-
-#39500
-0aaa
-
-#40000
-1aab
-b1100111001 aac
-0aad
-b1010000 aae
-b1111000 aaf
-b0 aag
-b1000 aah
-1aaj
-b101001 aak
-b101001 aal
-b1001 aam
-b1001 aan
-b10000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111 aap
-b101001 aaq
-0aar
-1aas
-b1010000 aat
-b101001 aau
-b1111000 aav
-b101001 aaw
-b0 aax
-b1001 aay
-b1000 aaz
-b1001 aba
-b10000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111 abd
-b101001 abe
-1aaa
-
-#40500
-0aaa
-
-#41000
-0aab
-b1101100010 aac
-1aad
-b1010010 aae
-b1111011 aaf
-b100 aag
-b1101 aah
-0aaj
-b101010 aak
-b101010 aal
-b1010 aam
-b1010 aan
-b100000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111 aap
-b101010 aaq
-1aar
-0aas
-b1010010 aat
-b101010 aau
-b1111011 aav
-b101010 aaw
-b100 aax
-b1010 aay
-b1101 aaz
-b1010 aba
-b100000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111 abd
-b101010 abe
-1aaa
-
-#41500
-0aaa
-
-#42000
-1aab
-b1110001100 aac
-0aad
-b1010100 aae
-b1111110 aaf
-b1000 aag
-b10 aah
-1aaj
-b101011 aak
-b101011 aal
-b1011 aam
-b1011 aan
-b1000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111 aap
-b101011 aaq
-0aar
-1aas
-b1010100 aat
-b101011 aau
-b1111110 aav
-b101011 aaw
-b1000 aax
-b1011 aay
-b10 aaz
-b1011 aba
-b1000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111 abd
-b101011 abe
-1aaa
-
-#42500
-0aaa
-
-#43000
-0aab
-b1110110111 aac
-1aad
-b1010110 aae
-b10000001 aaf
-b1100 aag
-b111 aah
-0aaj
-b101100 aak
-b101100 aal
-b1100 aam
-b1100 aan
-b10000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111 aap
-b101100 aaq
-1aar
-0aas
-b1010110 aat
-b101100 aau
-b10000001 aav
-b101100 aaw
-b1100 aax
-b1100 aay
-b111 aaz
-b1100 aba
-b10000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111 abd
-b101100 abe
-1aaa
-
-#43500
-0aaa
-
-#44000
-1aab
-b1111100011 aac
-0aad
-b1011000 aae
-b10000100 aaf
-b0 aag
-b1100 aah
-1aaj
-b101101 aak
-b101101 aal
-b1101 aam
-b1101 aan
-b100000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111 aap
-b101101 aaq
-0aar
-1aas
-b1011000 aat
-b101101 aau
-b10000100 aav
-b101101 aaw
-b0 aax
-b1101 aay
-b1100 aaz
-b1101 aba
-b100000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111 abd
-b101101 abe
-1aaa
-
-#44500
-0aaa
-
-#45000
-0aab
-b10000010000 aac
-1aad
-b1011010 aae
-b10000111 aaf
-b100 aag
-b1 aah
-0aaj
-b101110 aak
-b101110 aal
-b1110 aam
-b1110 aan
-b1000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111 aap
-b101110 aaq
-1aar
-0aas
-b1011010 aat
-b101110 aau
-b10000111 aav
-b101110 aaw
-b100 aax
-b1110 aay
-b1 aaz
-b1110 aba
-b1000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111 abd
-b101110 abe
-1aaa
-
-#45500
-0aaa
-
-#46000
-1aab
-b10000111110 aac
-0aad
-b1011100 aae
-b10001010 aaf
-b1000 aag
-b110 aah
-1aaj
-b101111 aak
-b101111 aal
-b1111 aam
-b1111 aan
-b10000000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111111 aap
-b101111 aaq
-0aar
-1aas
-b1011100 aat
-b101111 aau
-b10001010 aav
-b101111 aaw
-b1000 aax
-b1111 aay
-b110 aaz
-b1111 aba
-b10000000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111111 abd
-b101111 abe
-1aaa
-
-#46500
-0aaa
-
-#47000
-0aab
-b10001101101 aac
-1aad
-b1011110 aae
-b10001101 aaf
-b1100 aag
-b1011 aah
-0aaj
-b110000 aak
-b110000 aal
-b0 aam
-b0 aan
-b100000000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111111 aap
-b110000 aaq
-1aar
-0aas
-b1011110 aat
-b110000 aau
-b10001101 aav
-b110000 aaw
-b1100 aax
-b0 aay
-b1011 aaz
-b0 aba
-b100000000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111111 abd
-b110000 abe
-1aaa
-
-#47500
-0aaa
-
-#48000
-1aab
-b10010011101 aac
-0aad
-b1100000 aae
-b10010000 aaf
-b0 aag
-b0 aah
-1aaj
-b110001 aak
-b110001 aal
-b1 aam
-b1 aan
-b1000000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111111 aap
-b110001 aaq
-0aar
-1aas
-b1100000 aat
-b110001 aau
-b10010000 aav
-b110001 aaw
-b0 aax
-b1 aay
-b0 aaz
-b1 aba
-b1000000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111111 abd
-b110001 abe
-1aaa
-
-#48500
-0aaa
-
-#49000
-0aab
-b10011001110 aac
-1aad
-b1100010 aae
-b10010011 aaf
-b100 aag
-b101 aah
-0aaj
-b110010 aak
-b110010 aal
-b10 aam
-b10 aan
-b10000000000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111111111 aap
-b110010 aaq
-1aar
-0aas
-b1100010 aat
-b110010 aau
-b10010011 aav
-b110010 aaw
-b100 aax
-b10 aay
-b101 aaz
-b10 aba
-b10000000000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111111111 abd
-b110010 abe
-1aaa
-
-#49500
-0aaa
-
-#50000
-1aab
-b10100000000 aac
-0aad
-b1100100 aae
-b10010110 aaf
-b1000 aag
-b1010 aah
-1aaj
-b110011 aak
-b110011 aal
-b11 aam
-b11 aan
-b100000000000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111111111 aap
-b110011 aaq
-0aar
-1aas
-b1100100 aat
-b110011 aau
-b10010110 aav
-b110011 aaw
-b1000 aax
-b11 aay
-b1010 aaz
-b11 aba
-b100000000000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111111111 abd
-b110011 abe
-1aaa
-
-#50500
-0aaa
-
-#51000
-0aab
-b10100110011 aac
-1aad
-b1100110 aae
-b10011001 aaf
-b1100 aag
-b1111 aah
-0aaj
-b110100 aak
-b110100 aal
-b100 aam
-b100 aan
-b1000000000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111111111 aap
-b110100 aaq
-1aar
-0aas
-b1100110 aat
-b110100 aau
-b10011001 aav
-b110100 aaw
-b1100 aax
-b100 aay
-b1111 aaz
-b100 aba
-b1000000000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111111111 abd
-b110100 abe
-1aaa
-
-#51500
-0aaa
-
-#52000
-1aab
-b10101100111 aac
-0aad
-b1101000 aae
-b10011100 aaf
-b0 aag
-b100 aah
-1aaj
-b110101 aak
-b110101 aal
-b101 aam
-b101 aan
-b10000000000000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111111111111 aap
-b110101 aaq
-0aar
-1aas
-b1101000 aat
-b110101 aau
-b10011100 aav
-b110101 aaw
-b0 aax
-b101 aay
-b100 aaz
-b101 aba
-b10000000000000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111111111111 abd
-b110101 abe
-1aaa
-
-#52500
-0aaa
-
-#53000
-0aab
-b10110011100 aac
-1aad
-b1101010 aae
-b10011111 aaf
-b100 aag
-b1001 aah
-0aaj
-b110110 aak
-b110110 aal
-b110 aam
-b110 aan
-b100000000000000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111111111111 aap
-b110110 aaq
-1aar
-0aas
-b1101010 aat
-b110110 aau
-b10011111 aav
-b110110 aaw
-b100 aax
-b110 aay
-b1001 aaz
-b110 aba
-b100000000000000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111111111111 abd
-b110110 abe
-1aaa
-
-#53500
-0aaa
-
-#54000
-1aab
-b10111010010 aac
-0aad
-b1101100 aae
-b10100010 aaf
-b1000 aag
-b1110 aah
-1aaj
-b110111 aak
-b110111 aal
-b111 aam
-b111 aan
-b1000000000000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111111111111 aap
-b110111 aaq
-0aar
-1aas
-b1101100 aat
-b110111 aau
-b10100010 aav
-b110111 aaw
-b1000 aax
-b111 aay
-b1110 aaz
-b111 aba
-b1000000000000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111111111111 abd
-b110111 abe
-1aaa
-
-#54500
-0aaa
-
-#55000
-0aab
-b11000001001 aac
-1aad
-b1101110 aae
-b10100101 aaf
-b1100 aag
-b11 aah
-0aaj
-b111000 aak
-b111000 aal
-b1000 aam
-b1000 aan
-b10000000000000000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111111111111111 aap
-b111000 aaq
-1aar
-0aas
-b1101110 aat
-b111000 aau
-b10100101 aav
-b111000 aaw
-b1100 aax
-b1000 aay
-b11 aaz
-b1000 aba
-b10000000000000000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111111111111111 abd
-b111000 abe
-1aaa
-
-#55500
-0aaa
-
-#56000
-1aab
-b11001000001 aac
-0aad
-b1110000 aae
-b10101000 aaf
-b0 aag
-b1000 aah
-1aaj
-b111001 aak
-b111001 aal
-b1001 aam
-b1001 aan
-b100000000000000000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111111111111111 aap
-b111001 aaq
-0aar
-1aas
-b1110000 aat
-b111001 aau
-b10101000 aav
-b111001 aaw
-b0 aax
-b1001 aay
-b1000 aaz
-b1001 aba
-b100000000000000000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111111111111111 abd
-b111001 abe
-1aaa
-
-#56500
-0aaa
-
-#57000
-0aab
-b11001111010 aac
-1aad
-b1110010 aae
-b10101011 aaf
-b100 aag
-b1101 aah
-0aaj
-b111010 aak
-b111010 aal
-b1010 aam
-b1010 aan
-b1000000000000000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111111111111111 aap
-b111010 aaq
-1aar
-0aas
-b1110010 aat
-b111010 aau
-b10101011 aav
-b111010 aaw
-b100 aax
-b1010 aay
-b1101 aaz
-b1010 aba
-b1000000000000000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111111111111111 abd
-b111010 abe
-1aaa
-
-#57500
-0aaa
-
-#58000
-1aab
-b11010110100 aac
-0aad
-b1110100 aae
-b10101110 aaf
-b1000 aag
-b10 aah
-1aaj
-b111011 aak
-b111011 aal
-b1011 aam
-b1011 aan
-b10000000000000000000000000000000000000000000000000000000000 aao
-b11111111111111111111111111111111111111111111111111111111111 aap
-b111011 aaq
-0aar
-1aas
-b1110100 aat
-b111011 aau
-b10101110 aav
-b111011 aaw
-b1000 aax
-b1011 aay
-b10 aaz
-b1011 aba
-b10000000000000000000000000000000000000000000000000000000000 abc
-b11111111111111111111111111111111111111111111111111111111111 abd
-b111011 abe
-1aaa
-
-#58500
-0aaa
-
-#59000
-0aab
-b11011101111 aac
-1aad
-b1110110 aae
-b10110001 aaf
-b1100 aag
-b111 aah
-0aaj
-b111100 aak
-b111100 aal
-b1100 aam
-b1100 aan
-b100000000000000000000000000000000000000000000000000000000000 aao
-b111111111111111111111111111111111111111111111111111111111111 aap
-b111100 aaq
-1aar
-0aas
-b1110110 aat
-b111100 aau
-b10110001 aav
-b111100 aaw
-b1100 aax
-b1100 aay
-b111 aaz
-b1100 aba
-b100000000000000000000000000000000000000000000000000000000000 abc
-b111111111111111111111111111111111111111111111111111111111111 abd
-b111100 abe
-1aaa
-
-#59500
-0aaa
-
-#60000
-1aaj
-b111101 aak
-b111101 aal
-b1101 aam
-b1101 aan
-b1000000000000000000000000000000000000000000000000000000000000 aao
-b1111111111111111111111111111111111111111111111111111111111111 aap
-b111101 aaq
-1aas
-b111101 aau
-b111101 aaw
-b1101 aay
-b1101 aba
-b1000000000000000000000000000000000000000000000000000000000000 abc
-b1111111111111111111111111111111111111111111111111111111111111 abd
-b111101 abe
-1aaa
-
-#60500
-0aaa
Index: sources/test_regression/19042005/trace_file_reference.vcd
===================================================================
--- sources/test_regression/19042005/trace_file_reference.vcd	(revision 55)
+++ sources/test_regression/19042005/trace_file_reference.vcd	(revision 55)
@@ -0,0 +1,2169 @@
+
+$timescale
+	1 ps
+$end
+
+$scope module SystemC $end
+$var wire    1  aaa  clk       $end
+$var wire    1  aab  b1       $end
+$var wire   64  aac  l1 [63:0]       $end
+$var wire    1  aad  test1.i1       $end
+$var wire    8  aae  test1.i2 [7:0]       $end
+$var wire   32  aaf  test1.i3 [31:0]       $end
+$var wire    4  aag  test1.i4 [3:0]       $end
+$var wire    4  aah  test1.i5 [3:0]       $end
+$var wire   64  aai  test1.i6 [63:0]       $end
+$var wire    1  aaj  test1.o1       $end
+$var wire    8  aak  test1.o2 [7:0]       $end
+$var wire   32  aal  test1.o3 [31:0]       $end
+$var wire    4  aam  test1.o4 [3:0]       $end
+$var wire    4  aan  test1.o5 [3:0]       $end
+$var wire   64  aao  test1.o6 [63:0]       $end
+$var wire   64  aap  test1.io1 [63:0]       $end
+$var wire   32  aaq  test1.io4 [31:0]       $end
+$var wire    1  aar  s1       $end
+$var wire    1  aas  s2       $end
+$var wire    8  aat  s3 [7:0]       $end
+$var wire    8  aau  s4 [7:0]       $end
+$var wire   32  aav  s5 [31:0]       $end
+$var wire   32  aaw  s6 [31:0]       $end
+$var wire    4  aax  s7 [3:0]       $end
+$var wire    4  aay  s8 [3:0]       $end
+$var wire    4  aaz  s9 [3:0]       $end
+$var wire    4  aba  s10 [3:0]       $end
+$var wire   64  abb  s11 [63:0]       $end
+$var wire   64  abc  s12 [63:0]       $end
+$var wire   64  abd  s13 [63:0]       $end
+$var wire   32  abe  s16 [31:0]       $end
+$upscope $end
+$enddefinitions  $end
+
+$comment
+All initial values are dumped below at time 0 sec = 0 timescale units.
+$end
+
+$dumpvars
+0aab
+b0 aac
+0aad
+b0 aae
+b0 aaf
+b0 aag
+b0 aah
+b0 aai
+0aaj
+b0 aak
+b0 aal
+b0 aam
+b0 aan
+b0 aao
+b0 aap
+b0 aaq
+0aar
+0aas
+b0 aat
+b0 aau
+b0 aav
+b0 aaw
+b0 aax
+b0 aay
+b0 aaz
+b0 aba
+b0 abb
+b0 abc
+b0 abd
+b0 abe
+1aaa
+$end
+
+#500
+0aaa
+
+#1000
+b110 aac
+1aad
+b10 aae
+b11 aaf
+b100 aag
+b101 aah
+b1 aai
+b10 aak
+b10 aal
+b10 aam
+b10 aan
+b10 aao
+b11 aap
+b10 aaq
+1aar
+b10 aat
+b10 aau
+b11 aav
+b10 aaw
+b100 aax
+b10 aay
+b101 aaz
+b10 aba
+b1 abb
+b10 abc
+b11 abd
+b10 abe
+1aaa
+
+#1500
+0aaa
+
+#2000
+1aab
+b1000 aac
+0aad
+b100 aae
+b110 aaf
+b1000 aag
+b1010 aah
+b101 aai
+1aaj
+b11 aak
+b11 aal
+b11 aam
+b11 aan
+b100 aao
+b111 aap
+b11 aaq
+0aar
+1aas
+b100 aat
+b11 aau
+b110 aav
+b11 aaw
+b1000 aax
+b11 aay
+b1010 aaz
+b11 aba
+b101 abb
+b100 abc
+b111 abd
+b11 abe
+1aaa
+
+#2500
+0aaa
+
+#3000
+0aab
+b1011 aac
+1aad
+b110 aae
+b1001 aaf
+b1100 aag
+b1111 aah
+b10101 aai
+0aaj
+b100 aak
+b100 aal
+b100 aam
+b100 aan
+b1000 aao
+b1111 aap
+b100 aaq
+1aar
+0aas
+b110 aat
+b100 aau
+b1001 aav
+b100 aaw
+b1100 aax
+b100 aay
+b1111 aaz
+b100 aba
+b10101 abb
+b1000 abc
+b1111 abd
+b100 abe
+1aaa
+
+#3500
+0aaa
+
+#4000
+1aab
+b1111 aac
+0aad
+b1000 aae
+b1100 aaf
+b0 aag
+b100 aah
+b1010101 aai
+1aaj
+b101 aak
+b101 aal
+b101 aam
+b101 aan
+b10000 aao
+b11111 aap
+b101 aaq
+0aar
+1aas
+b1000 aat
+b101 aau
+b1100 aav
+b101 aaw
+b0 aax
+b101 aay
+b100 aaz
+b101 aba
+b1010101 abb
+b10000 abc
+b11111 abd
+b101 abe
+1aaa
+
+#4500
+0aaa
+
+#5000
+0aab
+b10100 aac
+1aad
+b1010 aae
+b1111 aaf
+b100 aag
+b1001 aah
+b101010101 aai
+0aaj
+b110 aak
+b110 aal
+b110 aam
+b110 aan
+b100000 aao
+b111111 aap
+b110 aaq
+1aar
+0aas
+b1010 aat
+b110 aau
+b1111 aav
+b110 aaw
+b100 aax
+b110 aay
+b1001 aaz
+b110 aba
+b101010101 abb
+b100000 abc
+b111111 abd
+b110 abe
+1aaa
+
+#5500
+0aaa
+
+#6000
+1aab
+b11010 aac
+0aad
+b1100 aae
+b10010 aaf
+b1000 aag
+b1110 aah
+b10101010101 aai
+1aaj
+b111 aak
+b111 aal
+b111 aam
+b111 aan
+b1000000 aao
+b1111111 aap
+b111 aaq
+0aar
+1aas
+b1100 aat
+b111 aau
+b10010 aav
+b111 aaw
+b1000 aax
+b111 aay
+b1110 aaz
+b111 aba
+b10101010101 abb
+b1000000 abc
+b1111111 abd
+b111 abe
+1aaa
+
+#6500
+0aaa
+
+#7000
+0aab
+b100001 aac
+1aad
+b1110 aae
+b10101 aaf
+b1100 aag
+b11 aah
+b1010101010101 aai
+0aaj
+b1000 aak
+b1000 aal
+b1000 aam
+b1000 aan
+b10000000 aao
+b11111111 aap
+b1000 aaq
+1aar
+0aas
+b1110 aat
+b1000 aau
+b10101 aav
+b1000 aaw
+b1100 aax
+b1000 aay
+b11 aaz
+b1000 aba
+b1010101010101 abb
+b10000000 abc
+b11111111 abd
+b1000 abe
+1aaa
+
+#7500
+0aaa
+
+#8000
+1aab
+b101001 aac
+0aad
+b10000 aae
+b11000 aaf
+b0 aag
+b1000 aah
+b101010101010101 aai
+1aaj
+b1001 aak
+b1001 aal
+b1001 aam
+b1001 aan
+b100000000 aao
+b111111111 aap
+b1001 aaq
+0aar
+1aas
+b10000 aat
+b1001 aau
+b11000 aav
+b1001 aaw
+b0 aax
+b1001 aay
+b1000 aaz
+b1001 aba
+b101010101010101 abb
+b100000000 abc
+b111111111 abd
+b1001 abe
+1aaa
+
+#8500
+0aaa
+
+#9000
+0aab
+b110010 aac
+1aad
+b10010 aae
+b11011 aaf
+b100 aag
+b1101 aah
+b10101010101010101 aai
+0aaj
+b1010 aak
+b1010 aal
+b1010 aam
+b1010 aan
+b1000000000 aao
+b1111111111 aap
+b1010 aaq
+1aar
+0aas
+b10010 aat
+b1010 aau
+b11011 aav
+b1010 aaw
+b100 aax
+b1010 aay
+b1101 aaz
+b1010 aba
+b10101010101010101 abb
+b1000000000 abc
+b1111111111 abd
+b1010 abe
+1aaa
+
+#9500
+0aaa
+
+#10000
+1aab
+b111100 aac
+0aad
+b10100 aae
+b11110 aaf
+b1000 aag
+b10 aah
+b1010101010101010101 aai
+1aaj
+b1011 aak
+b1011 aal
+b1011 aam
+b1011 aan
+b10000000000 aao
+b11111111111 aap
+b1011 aaq
+0aar
+1aas
+b10100 aat
+b1011 aau
+b11110 aav
+b1011 aaw
+b1000 aax
+b1011 aay
+b10 aaz
+b1011 aba
+b1010101010101010101 abb
+b10000000000 abc
+b11111111111 abd
+b1011 abe
+1aaa
+
+#10500
+0aaa
+
+#11000
+0aab
+b1000111 aac
+1aad
+b10110 aae
+b100001 aaf
+b1100 aag
+b111 aah
+b101010101010101010101 aai
+0aaj
+b1100 aak
+b1100 aal
+b1100 aam
+b1100 aan
+b100000000000 aao
+b111111111111 aap
+b1100 aaq
+1aar
+0aas
+b10110 aat
+b1100 aau
+b100001 aav
+b1100 aaw
+b1100 aax
+b1100 aay
+b111 aaz
+b1100 aba
+b101010101010101010101 abb
+b100000000000 abc
+b111111111111 abd
+b1100 abe
+1aaa
+
+#11500
+0aaa
+
+#12000
+1aab
+b1010011 aac
+0aad
+b11000 aae
+b100100 aaf
+b0 aag
+b1100 aah
+b10101010101010101010101 aai
+1aaj
+b1101 aak
+b1101 aal
+b1101 aam
+b1101 aan
+b1000000000000 aao
+b1111111111111 aap
+b1101 aaq
+0aar
+1aas
+b11000 aat
+b1101 aau
+b100100 aav
+b1101 aaw
+b0 aax
+b1101 aay
+b1100 aaz
+b1101 aba
+b10101010101010101010101 abb
+b1000000000000 abc
+b1111111111111 abd
+b1101 abe
+1aaa
+
+#12500
+0aaa
+
+#13000
+0aab
+b1100000 aac
+1aad
+b11010 aae
+b100111 aaf
+b100 aag
+b1 aah
+b1010101010101010101010101 aai
+0aaj
+b1110 aak
+b1110 aal
+b1110 aam
+b1110 aan
+b10000000000000 aao
+b11111111111111 aap
+b1110 aaq
+1aar
+0aas
+b11010 aat
+b1110 aau
+b100111 aav
+b1110 aaw
+b100 aax
+b1110 aay
+b1 aaz
+b1110 aba
+b1010101010101010101010101 abb
+b10000000000000 abc
+b11111111111111 abd
+b1110 abe
+1aaa
+
+#13500
+0aaa
+
+#14000
+1aab
+b1101110 aac
+0aad
+b11100 aae
+b101010 aaf
+b1000 aag
+b110 aah
+b101010101010101010101010101 aai
+1aaj
+b1111 aak
+b1111 aal
+b1111 aam
+b1111 aan
+b100000000000000 aao
+b111111111111111 aap
+b1111 aaq
+0aar
+1aas
+b11100 aat
+b1111 aau
+b101010 aav
+b1111 aaw
+b1000 aax
+b1111 aay
+b110 aaz
+b1111 aba
+b101010101010101010101010101 abb
+b100000000000000 abc
+b111111111111111 abd
+b1111 abe
+1aaa
+
+#14500
+0aaa
+
+#15000
+0aab
+b1111101 aac
+1aad
+b11110 aae
+b101101 aaf
+b1100 aag
+b1011 aah
+b10101010101010101010101010101 aai
+0aaj
+b10000 aak
+b10000 aal
+b0 aam
+b0 aan
+b1000000000000000 aao
+b1111111111111111 aap
+b10000 aaq
+1aar
+0aas
+b11110 aat
+b10000 aau
+b101101 aav
+b10000 aaw
+b1100 aax
+b0 aay
+b1011 aaz
+b0 aba
+b10101010101010101010101010101 abb
+b1000000000000000 abc
+b1111111111111111 abd
+b10000 abe
+1aaa
+
+#15500
+0aaa
+
+#16000
+1aab
+b10001101 aac
+0aad
+b100000 aae
+b110000 aaf
+b0 aag
+b0 aah
+b1010101010101010101010101010101 aai
+1aaj
+b10001 aak
+b10001 aal
+b1 aam
+b1 aan
+b10000000000000000 aao
+b11111111111111111 aap
+b10001 aaq
+0aar
+1aas
+b100000 aat
+b10001 aau
+b110000 aav
+b10001 aaw
+b0 aax
+b1 aay
+b0 aaz
+b1 aba
+b1010101010101010101010101010101 abb
+b10000000000000000 abc
+b11111111111111111 abd
+b10001 abe
+1aaa
+
+#16500
+0aaa
+
+#17000
+0aab
+b10011110 aac
+1aad
+b100010 aae
+b110011 aaf
+b100 aag
+b101 aah
+b101010101010101010101010101010101 aai
+0aaj
+b10010 aak
+b10010 aal
+b10 aam
+b10 aan
+b100000000000000000 aao
+b111111111111111111 aap
+b10010 aaq
+1aar
+0aas
+b100010 aat
+b10010 aau
+b110011 aav
+b10010 aaw
+b100 aax
+b10 aay
+b101 aaz
+b10 aba
+b101010101010101010101010101010101 abb
+b100000000000000000 abc
+b111111111111111111 abd
+b10010 abe
+1aaa
+
+#17500
+0aaa
+
+#18000
+1aab
+b10110000 aac
+0aad
+b100100 aae
+b110110 aaf
+b1000 aag
+b1010 aah
+b10101010101010101010101010101010101 aai
+1aaj
+b10011 aak
+b10011 aal
+b11 aam
+b11 aan
+b1000000000000000000 aao
+b1111111111111111111 aap
+b10011 aaq
+0aar
+1aas
+b100100 aat
+b10011 aau
+b110110 aav
+b10011 aaw
+b1000 aax
+b11 aay
+b1010 aaz
+b11 aba
+b10101010101010101010101010101010101 abb
+b1000000000000000000 abc
+b1111111111111111111 abd
+b10011 abe
+1aaa
+
+#18500
+0aaa
+
+#19000
+0aab
+b11000011 aac
+1aad
+b100110 aae
+b111001 aaf
+b1100 aag
+b1111 aah
+b1010101010101010101010101010101010101 aai
+0aaj
+b10100 aak
+b10100 aal
+b100 aam
+b100 aan
+b10000000000000000000 aao
+b11111111111111111111 aap
+b10100 aaq
+1aar
+0aas
+b100110 aat
+b10100 aau
+b111001 aav
+b10100 aaw
+b1100 aax
+b100 aay
+b1111 aaz
+b100 aba
+b1010101010101010101010101010101010101 abb
+b10000000000000000000 abc
+b11111111111111111111 abd
+b10100 abe
+1aaa
+
+#19500
+0aaa
+
+#20000
+1aab
+b11010111 aac
+0aad
+b101000 aae
+b111100 aaf
+b0 aag
+b100 aah
+b101010101010101010101010101010101010101 aai
+1aaj
+b10101 aak
+b10101 aal
+b101 aam
+b101 aan
+b100000000000000000000 aao
+b111111111111111111111 aap
+b10101 aaq
+0aar
+1aas
+b101000 aat
+b10101 aau
+b111100 aav
+b10101 aaw
+b0 aax
+b101 aay
+b100 aaz
+b101 aba
+b101010101010101010101010101010101010101 abb
+b100000000000000000000 abc
+b111111111111111111111 abd
+b10101 abe
+1aaa
+
+#20500
+0aaa
+
+#21000
+0aab
+b11101100 aac
+1aad
+b101010 aae
+b111111 aaf
+b100 aag
+b1001 aah
+b10101010101010101010101010101010101010101 aai
+0aaj
+b10110 aak
+b10110 aal
+b110 aam
+b110 aan
+b1000000000000000000000 aao
+b1111111111111111111111 aap
+b10110 aaq
+1aar
+0aas
+b101010 aat
+b10110 aau
+b111111 aav
+b10110 aaw
+b100 aax
+b110 aay
+b1001 aaz
+b110 aba
+b10101010101010101010101010101010101010101 abb
+b1000000000000000000000 abc
+b1111111111111111111111 abd
+b10110 abe
+1aaa
+
+#21500
+0aaa
+
+#22000
+1aab
+b100000010 aac
+0aad
+b101100 aae
+b1000010 aaf
+b1000 aag
+b1110 aah
+b1010101010101010101010101010101010101010101 aai
+1aaj
+b10111 aak
+b10111 aal
+b111 aam
+b111 aan
+b10000000000000000000000 aao
+b11111111111111111111111 aap
+b10111 aaq
+0aar
+1aas
+b101100 aat
+b10111 aau
+b1000010 aav
+b10111 aaw
+b1000 aax
+b111 aay
+b1110 aaz
+b111 aba
+b1010101010101010101010101010101010101010101 abb
+b10000000000000000000000 abc
+b11111111111111111111111 abd
+b10111 abe
+1aaa
+
+#22500
+0aaa
+
+#23000
+0aab
+b100011001 aac
+1aad
+b101110 aae
+b1000101 aaf
+b1100 aag
+b11 aah
+b101010101010101010101010101010101010101010101 aai
+0aaj
+b11000 aak
+b11000 aal
+b1000 aam
+b1000 aan
+b100000000000000000000000 aao
+b111111111111111111111111 aap
+b11000 aaq
+1aar
+0aas
+b101110 aat
+b11000 aau
+b1000101 aav
+b11000 aaw
+b1100 aax
+b1000 aay
+b11 aaz
+b1000 aba
+b101010101010101010101010101010101010101010101 abb
+b100000000000000000000000 abc
+b111111111111111111111111 abd
+b11000 abe
+1aaa
+
+#23500
+0aaa
+
+#24000
+1aab
+b100110001 aac
+0aad
+b110000 aae
+b1001000 aaf
+b0 aag
+b1000 aah
+b10101010101010101010101010101010101010101010101 aai
+1aaj
+b11001 aak
+b11001 aal
+b1001 aam
+b1001 aan
+b1000000000000000000000000 aao
+b1111111111111111111111111 aap
+b11001 aaq
+0aar
+1aas
+b110000 aat
+b11001 aau
+b1001000 aav
+b11001 aaw
+b0 aax
+b1001 aay
+b1000 aaz
+b1001 aba
+b10101010101010101010101010101010101010101010101 abb
+b1000000000000000000000000 abc
+b1111111111111111111111111 abd
+b11001 abe
+1aaa
+
+#24500
+0aaa
+
+#25000
+0aab
+b101001010 aac
+1aad
+b110010 aae
+b1001011 aaf
+b100 aag
+b1101 aah
+b1010101010101010101010101010101010101010101010101 aai
+0aaj
+b11010 aak
+b11010 aal
+b1010 aam
+b1010 aan
+b10000000000000000000000000 aao
+b11111111111111111111111111 aap
+b11010 aaq
+1aar
+0aas
+b110010 aat
+b11010 aau
+b1001011 aav
+b11010 aaw
+b100 aax
+b1010 aay
+b1101 aaz
+b1010 aba
+b1010101010101010101010101010101010101010101010101 abb
+b10000000000000000000000000 abc
+b11111111111111111111111111 abd
+b11010 abe
+1aaa
+
+#25500
+0aaa
+
+#26000
+1aab
+b101100100 aac
+0aad
+b110100 aae
+b1001110 aaf
+b1000 aag
+b10 aah
+b101010101010101010101010101010101010101010101010101 aai
+1aaj
+b11011 aak
+b11011 aal
+b1011 aam
+b1011 aan
+b100000000000000000000000000 aao
+b111111111111111111111111111 aap
+b11011 aaq
+0aar
+1aas
+b110100 aat
+b11011 aau
+b1001110 aav
+b11011 aaw
+b1000 aax
+b1011 aay
+b10 aaz
+b1011 aba
+b101010101010101010101010101010101010101010101010101 abb
+b100000000000000000000000000 abc
+b111111111111111111111111111 abd
+b11011 abe
+1aaa
+
+#26500
+0aaa
+
+#27000
+0aab
+b101111111 aac
+1aad
+b110110 aae
+b1010001 aaf
+b1100 aag
+b111 aah
+b10101010101010101010101010101010101010101010101010101 aai
+0aaj
+b11100 aak
+b11100 aal
+b1100 aam
+b1100 aan
+b1000000000000000000000000000 aao
+b1111111111111111111111111111 aap
+b11100 aaq
+1aar
+0aas
+b110110 aat
+b11100 aau
+b1010001 aav
+b11100 aaw
+b1100 aax
+b1100 aay
+b111 aaz
+b1100 aba
+b10101010101010101010101010101010101010101010101010101 abb
+b1000000000000000000000000000 abc
+b1111111111111111111111111111 abd
+b11100 abe
+1aaa
+
+#27500
+0aaa
+
+#28000
+1aab
+b110011011 aac
+0aad
+b111000 aae
+b1010100 aaf
+b0 aag
+b1100 aah
+b1010101010101010101010101010101010101010101010101010101 aai
+1aaj
+b11101 aak
+b11101 aal
+b1101 aam
+b1101 aan
+b10000000000000000000000000000 aao
+b11111111111111111111111111111 aap
+b11101 aaq
+0aar
+1aas
+b111000 aat
+b11101 aau
+b1010100 aav
+b11101 aaw
+b0 aax
+b1101 aay
+b1100 aaz
+b1101 aba
+b1010101010101010101010101010101010101010101010101010101 abb
+b10000000000000000000000000000 abc
+b11111111111111111111111111111 abd
+b11101 abe
+1aaa
+
+#28500
+0aaa
+
+#29000
+0aab
+b110111000 aac
+1aad
+b111010 aae
+b1010111 aaf
+b100 aag
+b1 aah
+b101010101010101010101010101010101010101010101010101010101 aai
+0aaj
+b11110 aak
+b11110 aal
+b1110 aam
+b1110 aan
+b100000000000000000000000000000 aao
+b111111111111111111111111111111 aap
+b11110 aaq
+1aar
+0aas
+b111010 aat
+b11110 aau
+b1010111 aav
+b11110 aaw
+b100 aax
+b1110 aay
+b1 aaz
+b1110 aba
+b101010101010101010101010101010101010101010101010101010101 abb
+b100000000000000000000000000000 abc
+b111111111111111111111111111111 abd
+b11110 abe
+1aaa
+
+#29500
+0aaa
+
+#30000
+1aab
+b111010110 aac
+0aad
+b111100 aae
+b1011010 aaf
+b1000 aag
+b110 aah
+b10101010101010101010101010101010101010101010101010101010101 aai
+1aaj
+b11111 aak
+b11111 aal
+b1111 aam
+b1111 aan
+b1000000000000000000000000000000 aao
+b1111111111111111111111111111111 aap
+b11111 aaq
+0aar
+1aas
+b111100 aat
+b11111 aau
+b1011010 aav
+b11111 aaw
+b1000 aax
+b1111 aay
+b110 aaz
+b1111 aba
+b10101010101010101010101010101010101010101010101010101010101 abb
+b1000000000000000000000000000000 abc
+b1111111111111111111111111111111 abd
+b11111 abe
+1aaa
+
+#30500
+0aaa
+
+#31000
+0aab
+b111110101 aac
+1aad
+b111110 aae
+b1011101 aaf
+b1100 aag
+b1011 aah
+b1010101010101010101010101010101010101010101010101010101010101 aai
+0aaj
+b100000 aak
+b100000 aal
+b0 aam
+b0 aan
+b10000000000000000000000000000000 aao
+b11111111111111111111111111111111 aap
+b100000 aaq
+1aar
+0aas
+b111110 aat
+b100000 aau
+b1011101 aav
+b100000 aaw
+b1100 aax
+b0 aay
+b1011 aaz
+b0 aba
+b1010101010101010101010101010101010101010101010101010101010101 abb
+b10000000000000000000000000000000 abc
+b11111111111111111111111111111111 abd
+b100000 abe
+1aaa
+
+#31500
+0aaa
+
+#32000
+1aab
+b1000010101 aac
+0aad
+b1000000 aae
+b1100000 aaf
+b0 aag
+b0 aah
+b101010101010101010101010101010101010101010101010101010101010101 aai
+1aaj
+b100001 aak
+b100001 aal
+b1 aam
+b1 aan
+b100000000000000000000000000000000 aao
+b111111111111111111111111111111111 aap
+b100001 aaq
+0aar
+1aas
+b1000000 aat
+b100001 aau
+b1100000 aav
+b100001 aaw
+b0 aax
+b1 aay
+b0 aaz
+b1 aba
+b101010101010101010101010101010101010101010101010101010101010101 abb
+b100000000000000000000000000000000 abc
+b111111111111111111111111111111111 abd
+b100001 abe
+1aaa
+
+#32500
+0aaa
+
+#33000
+0aab
+b1000110110 aac
+1aad
+b1000010 aae
+b1100011 aaf
+b100 aag
+b101 aah
+0aaj
+b100010 aak
+b100010 aal
+b10 aam
+b10 aan
+b1000000000000000000000000000000000 aao
+b1111111111111111111111111111111111 aap
+b100010 aaq
+1aar
+0aas
+b1000010 aat
+b100010 aau
+b1100011 aav
+b100010 aaw
+b100 aax
+b10 aay
+b101 aaz
+b10 aba
+b1000000000000000000000000000000000 abc
+b1111111111111111111111111111111111 abd
+b100010 abe
+1aaa
+
+#33500
+0aaa
+
+#34000
+1aab
+b1001011000 aac
+0aad
+b1000100 aae
+b1100110 aaf
+b1000 aag
+b1010 aah
+1aaj
+b100011 aak
+b100011 aal
+b11 aam
+b11 aan
+b10000000000000000000000000000000000 aao
+b11111111111111111111111111111111111 aap
+b100011 aaq
+0aar
+1aas
+b1000100 aat
+b100011 aau
+b1100110 aav
+b100011 aaw
+b1000 aax
+b11 aay
+b1010 aaz
+b11 aba
+b10000000000000000000000000000000000 abc
+b11111111111111111111111111111111111 abd
+b100011 abe
+1aaa
+
+#34500
+0aaa
+
+#35000
+0aab
+b1001111011 aac
+1aad
+b1000110 aae
+b1101001 aaf
+b1100 aag
+b1111 aah
+0aaj
+b100100 aak
+b100100 aal
+b100 aam
+b100 aan
+b100000000000000000000000000000000000 aao
+b111111111111111111111111111111111111 aap
+b100100 aaq
+1aar
+0aas
+b1000110 aat
+b100100 aau
+b1101001 aav
+b100100 aaw
+b1100 aax
+b100 aay
+b1111 aaz
+b100 aba
+b100000000000000000000000000000000000 abc
+b111111111111111111111111111111111111 abd
+b100100 abe
+1aaa
+
+#35500
+0aaa
+
+#36000
+1aab
+b1010011111 aac
+0aad
+b1001000 aae
+b1101100 aaf
+b0 aag
+b100 aah
+1aaj
+b100101 aak
+b100101 aal
+b101 aam
+b101 aan
+b1000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111 aap
+b100101 aaq
+0aar
+1aas
+b1001000 aat
+b100101 aau
+b1101100 aav
+b100101 aaw
+b0 aax
+b101 aay
+b100 aaz
+b101 aba
+b1000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111 abd
+b100101 abe
+1aaa
+
+#36500
+0aaa
+
+#37000
+0aab
+b1011000100 aac
+1aad
+b1001010 aae
+b1101111 aaf
+b100 aag
+b1001 aah
+0aaj
+b100110 aak
+b100110 aal
+b110 aam
+b110 aan
+b10000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111 aap
+b100110 aaq
+1aar
+0aas
+b1001010 aat
+b100110 aau
+b1101111 aav
+b100110 aaw
+b100 aax
+b110 aay
+b1001 aaz
+b110 aba
+b10000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111 abd
+b100110 abe
+1aaa
+
+#37500
+0aaa
+
+#38000
+1aab
+b1011101010 aac
+0aad
+b1001100 aae
+b1110010 aaf
+b1000 aag
+b1110 aah
+1aaj
+b100111 aak
+b100111 aal
+b111 aam
+b111 aan
+b100000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111 aap
+b100111 aaq
+0aar
+1aas
+b1001100 aat
+b100111 aau
+b1110010 aav
+b100111 aaw
+b1000 aax
+b111 aay
+b1110 aaz
+b111 aba
+b100000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111 abd
+b100111 abe
+1aaa
+
+#38500
+0aaa
+
+#39000
+0aab
+b1100010001 aac
+1aad
+b1001110 aae
+b1110101 aaf
+b1100 aag
+b11 aah
+0aaj
+b101000 aak
+b101000 aal
+b1000 aam
+b1000 aan
+b1000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111 aap
+b101000 aaq
+1aar
+0aas
+b1001110 aat
+b101000 aau
+b1110101 aav
+b101000 aaw
+b1100 aax
+b1000 aay
+b11 aaz
+b1000 aba
+b1000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111 abd
+b101000 abe
+1aaa
+
+#39500
+0aaa
+
+#40000
+1aab
+b1100111001 aac
+0aad
+b1010000 aae
+b1111000 aaf
+b0 aag
+b1000 aah
+1aaj
+b101001 aak
+b101001 aal
+b1001 aam
+b1001 aan
+b10000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111 aap
+b101001 aaq
+0aar
+1aas
+b1010000 aat
+b101001 aau
+b1111000 aav
+b101001 aaw
+b0 aax
+b1001 aay
+b1000 aaz
+b1001 aba
+b10000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111 abd
+b101001 abe
+1aaa
+
+#40500
+0aaa
+
+#41000
+0aab
+b1101100010 aac
+1aad
+b1010010 aae
+b1111011 aaf
+b100 aag
+b1101 aah
+0aaj
+b101010 aak
+b101010 aal
+b1010 aam
+b1010 aan
+b100000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111 aap
+b101010 aaq
+1aar
+0aas
+b1010010 aat
+b101010 aau
+b1111011 aav
+b101010 aaw
+b100 aax
+b1010 aay
+b1101 aaz
+b1010 aba
+b100000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111 abd
+b101010 abe
+1aaa
+
+#41500
+0aaa
+
+#42000
+1aab
+b1110001100 aac
+0aad
+b1010100 aae
+b1111110 aaf
+b1000 aag
+b10 aah
+1aaj
+b101011 aak
+b101011 aal
+b1011 aam
+b1011 aan
+b1000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111 aap
+b101011 aaq
+0aar
+1aas
+b1010100 aat
+b101011 aau
+b1111110 aav
+b101011 aaw
+b1000 aax
+b1011 aay
+b10 aaz
+b1011 aba
+b1000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111 abd
+b101011 abe
+1aaa
+
+#42500
+0aaa
+
+#43000
+0aab
+b1110110111 aac
+1aad
+b1010110 aae
+b10000001 aaf
+b1100 aag
+b111 aah
+0aaj
+b101100 aak
+b101100 aal
+b1100 aam
+b1100 aan
+b10000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111 aap
+b101100 aaq
+1aar
+0aas
+b1010110 aat
+b101100 aau
+b10000001 aav
+b101100 aaw
+b1100 aax
+b1100 aay
+b111 aaz
+b1100 aba
+b10000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111 abd
+b101100 abe
+1aaa
+
+#43500
+0aaa
+
+#44000
+1aab
+b1111100011 aac
+0aad
+b1011000 aae
+b10000100 aaf
+b0 aag
+b1100 aah
+1aaj
+b101101 aak
+b101101 aal
+b1101 aam
+b1101 aan
+b100000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111 aap
+b101101 aaq
+0aar
+1aas
+b1011000 aat
+b101101 aau
+b10000100 aav
+b101101 aaw
+b0 aax
+b1101 aay
+b1100 aaz
+b1101 aba
+b100000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111 abd
+b101101 abe
+1aaa
+
+#44500
+0aaa
+
+#45000
+0aab
+b10000010000 aac
+1aad
+b1011010 aae
+b10000111 aaf
+b100 aag
+b1 aah
+0aaj
+b101110 aak
+b101110 aal
+b1110 aam
+b1110 aan
+b1000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111 aap
+b101110 aaq
+1aar
+0aas
+b1011010 aat
+b101110 aau
+b10000111 aav
+b101110 aaw
+b100 aax
+b1110 aay
+b1 aaz
+b1110 aba
+b1000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111 abd
+b101110 abe
+1aaa
+
+#45500
+0aaa
+
+#46000
+1aab
+b10000111110 aac
+0aad
+b1011100 aae
+b10001010 aaf
+b1000 aag
+b110 aah
+1aaj
+b101111 aak
+b101111 aal
+b1111 aam
+b1111 aan
+b10000000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111111 aap
+b101111 aaq
+0aar
+1aas
+b1011100 aat
+b101111 aau
+b10001010 aav
+b101111 aaw
+b1000 aax
+b1111 aay
+b110 aaz
+b1111 aba
+b10000000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111111 abd
+b101111 abe
+1aaa
+
+#46500
+0aaa
+
+#47000
+0aab
+b10001101101 aac
+1aad
+b1011110 aae
+b10001101 aaf
+b1100 aag
+b1011 aah
+0aaj
+b110000 aak
+b110000 aal
+b0 aam
+b0 aan
+b100000000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111111 aap
+b110000 aaq
+1aar
+0aas
+b1011110 aat
+b110000 aau
+b10001101 aav
+b110000 aaw
+b1100 aax
+b0 aay
+b1011 aaz
+b0 aba
+b100000000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111111 abd
+b110000 abe
+1aaa
+
+#47500
+0aaa
+
+#48000
+1aab
+b10010011101 aac
+0aad
+b1100000 aae
+b10010000 aaf
+b0 aag
+b0 aah
+1aaj
+b110001 aak
+b110001 aal
+b1 aam
+b1 aan
+b1000000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111111 aap
+b110001 aaq
+0aar
+1aas
+b1100000 aat
+b110001 aau
+b10010000 aav
+b110001 aaw
+b0 aax
+b1 aay
+b0 aaz
+b1 aba
+b1000000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111111 abd
+b110001 abe
+1aaa
+
+#48500
+0aaa
+
+#49000
+0aab
+b10011001110 aac
+1aad
+b1100010 aae
+b10010011 aaf
+b100 aag
+b101 aah
+0aaj
+b110010 aak
+b110010 aal
+b10 aam
+b10 aan
+b10000000000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111111111 aap
+b110010 aaq
+1aar
+0aas
+b1100010 aat
+b110010 aau
+b10010011 aav
+b110010 aaw
+b100 aax
+b10 aay
+b101 aaz
+b10 aba
+b10000000000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111111111 abd
+b110010 abe
+1aaa
+
+#49500
+0aaa
+
+#50000
+1aab
+b10100000000 aac
+0aad
+b1100100 aae
+b10010110 aaf
+b1000 aag
+b1010 aah
+1aaj
+b110011 aak
+b110011 aal
+b11 aam
+b11 aan
+b100000000000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111111111 aap
+b110011 aaq
+0aar
+1aas
+b1100100 aat
+b110011 aau
+b10010110 aav
+b110011 aaw
+b1000 aax
+b11 aay
+b1010 aaz
+b11 aba
+b100000000000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111111111 abd
+b110011 abe
+1aaa
+
+#50500
+0aaa
+
+#51000
+0aab
+b10100110011 aac
+1aad
+b1100110 aae
+b10011001 aaf
+b1100 aag
+b1111 aah
+0aaj
+b110100 aak
+b110100 aal
+b100 aam
+b100 aan
+b1000000000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111111111 aap
+b110100 aaq
+1aar
+0aas
+b1100110 aat
+b110100 aau
+b10011001 aav
+b110100 aaw
+b1100 aax
+b100 aay
+b1111 aaz
+b100 aba
+b1000000000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111111111 abd
+b110100 abe
+1aaa
+
+#51500
+0aaa
+
+#52000
+1aab
+b10101100111 aac
+0aad
+b1101000 aae
+b10011100 aaf
+b0 aag
+b100 aah
+1aaj
+b110101 aak
+b110101 aal
+b101 aam
+b101 aan
+b10000000000000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111111111111 aap
+b110101 aaq
+0aar
+1aas
+b1101000 aat
+b110101 aau
+b10011100 aav
+b110101 aaw
+b0 aax
+b101 aay
+b100 aaz
+b101 aba
+b10000000000000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111111111111 abd
+b110101 abe
+1aaa
+
+#52500
+0aaa
+
+#53000
+0aab
+b10110011100 aac
+1aad
+b1101010 aae
+b10011111 aaf
+b100 aag
+b1001 aah
+0aaj
+b110110 aak
+b110110 aal
+b110 aam
+b110 aan
+b100000000000000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111111111111 aap
+b110110 aaq
+1aar
+0aas
+b1101010 aat
+b110110 aau
+b10011111 aav
+b110110 aaw
+b100 aax
+b110 aay
+b1001 aaz
+b110 aba
+b100000000000000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111111111111 abd
+b110110 abe
+1aaa
+
+#53500
+0aaa
+
+#54000
+1aab
+b10111010010 aac
+0aad
+b1101100 aae
+b10100010 aaf
+b1000 aag
+b1110 aah
+1aaj
+b110111 aak
+b110111 aal
+b111 aam
+b111 aan
+b1000000000000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111111111111 aap
+b110111 aaq
+0aar
+1aas
+b1101100 aat
+b110111 aau
+b10100010 aav
+b110111 aaw
+b1000 aax
+b111 aay
+b1110 aaz
+b111 aba
+b1000000000000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111111111111 abd
+b110111 abe
+1aaa
+
+#54500
+0aaa
+
+#55000
+0aab
+b11000001001 aac
+1aad
+b1101110 aae
+b10100101 aaf
+b1100 aag
+b11 aah
+0aaj
+b111000 aak
+b111000 aal
+b1000 aam
+b1000 aan
+b10000000000000000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111111111111111 aap
+b111000 aaq
+1aar
+0aas
+b1101110 aat
+b111000 aau
+b10100101 aav
+b111000 aaw
+b1100 aax
+b1000 aay
+b11 aaz
+b1000 aba
+b10000000000000000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111111111111111 abd
+b111000 abe
+1aaa
+
+#55500
+0aaa
+
+#56000
+1aab
+b11001000001 aac
+0aad
+b1110000 aae
+b10101000 aaf
+b0 aag
+b1000 aah
+1aaj
+b111001 aak
+b111001 aal
+b1001 aam
+b1001 aan
+b100000000000000000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111111111111111 aap
+b111001 aaq
+0aar
+1aas
+b1110000 aat
+b111001 aau
+b10101000 aav
+b111001 aaw
+b0 aax
+b1001 aay
+b1000 aaz
+b1001 aba
+b100000000000000000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111111111111111 abd
+b111001 abe
+1aaa
+
+#56500
+0aaa
+
+#57000
+0aab
+b11001111010 aac
+1aad
+b1110010 aae
+b10101011 aaf
+b100 aag
+b1101 aah
+0aaj
+b111010 aak
+b111010 aal
+b1010 aam
+b1010 aan
+b1000000000000000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111111111111111 aap
+b111010 aaq
+1aar
+0aas
+b1110010 aat
+b111010 aau
+b10101011 aav
+b111010 aaw
+b100 aax
+b1010 aay
+b1101 aaz
+b1010 aba
+b1000000000000000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111111111111111 abd
+b111010 abe
+1aaa
+
+#57500
+0aaa
+
+#58000
+1aab
+b11010110100 aac
+0aad
+b1110100 aae
+b10101110 aaf
+b1000 aag
+b10 aah
+1aaj
+b111011 aak
+b111011 aal
+b1011 aam
+b1011 aan
+b10000000000000000000000000000000000000000000000000000000000 aao
+b11111111111111111111111111111111111111111111111111111111111 aap
+b111011 aaq
+0aar
+1aas
+b1110100 aat
+b111011 aau
+b10101110 aav
+b111011 aaw
+b1000 aax
+b1011 aay
+b10 aaz
+b1011 aba
+b10000000000000000000000000000000000000000000000000000000000 abc
+b11111111111111111111111111111111111111111111111111111111111 abd
+b111011 abe
+1aaa
+
+#58500
+0aaa
+
+#59000
+0aab
+b11011101111 aac
+1aad
+b1110110 aae
+b10110001 aaf
+b1100 aag
+b111 aah
+0aaj
+b111100 aak
+b111100 aal
+b1100 aam
+b1100 aan
+b100000000000000000000000000000000000000000000000000000000000 aao
+b111111111111111111111111111111111111111111111111111111111111 aap
+b111100 aaq
+1aar
+0aas
+b1110110 aat
+b111100 aau
+b10110001 aav
+b111100 aaw
+b1100 aax
+b1100 aay
+b111 aaz
+b1100 aba
+b100000000000000000000000000000000000000000000000000000000000 abc
+b111111111111111111111111111111111111111111111111111111111111 abd
+b111100 abe
+1aaa
+
+#59500
+0aaa
+
+#60000
+1aaj
+b111101 aak
+b111101 aal
+b1101 aam
+b1101 aan
+b1000000000000000000000000000000000000000000000000000000000000 aao
+b1111111111111111111111111111111111111111111111111111111111111 aap
+b111101 aaq
+1aas
+b111101 aau
+b111101 aaw
+b1101 aay
+b1101 aba
+b1000000000000000000000000000000000000000000000000000000000000 abc
+b1111111111111111111111111111111111111111111111111111111111111 abd
+b111101 abe
+1aaa
+
+#60500
+0aaa
Index: sources/test_regression/19122005/system.cpp
===================================================================
--- sources/test_regression/19122005/system.cpp	(revision 54)
+++ sources/test_regression/19122005/system.cpp	(revision 55)
@@ -1,101 +1,58 @@
-#include <systemc.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
+
+
 
 using namespace std;
 
+
 struct test : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<int>                      i2;
-	sc_in<int>                      i3;
-#if 0
-	sc_in<sc_int<4> >               i4;
-	sc_in<sc_uint<4> >              i5;
-#endif
-#if 0
-	sc_in<sc_uint<64> >             i6;
-#endif
-	sc_out<bool>                    o1;
-	sc_out<int>                    o2;
-	sc_out<int >                    o3;
-#if 0
-	sc_out<sc_int<4> >              o4;
-	sc_out<sc_uint<4> >             o5;
-#endif
-#if 0
-	sc_out<sc_uint<64> >            o6;
-	sc_inout<sc_uint<64> >          io1;
-#endif
-//	sc_inout<sc_signed >            io2;
-//	sc_inout<sc_unsigned >          io3;
-	sc_inout<sc_uint<32> >          io4;
-  sc_out<int>                     mealy1;
-  sc_out<int>                     mealy2;
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<int>   i2;
+    sc_in<int>   i3;
+    sc_out<bool> o1;
+    sc_out<int>  o2;
+    sc_out<int>  o3;
+    sc_inout< sc_uint<32> > io4;
+    sc_out<int>  mealy1;
+    sc_out<int>  mealy2;
 
-  sc_signal<bool>                 reg1;
-  sc_signal<int>                  reg2;
-  sc_signal<int>                  reg3;
-#if 0
-  sc_signal<sc_int<4> >           reg4;
-  sc_signal<sc_uint<4> >          reg5;
-#endif
-#if 0
-  sc_signal<sc_uint<64> >         reg6;
-#endif
-//  sc_signal<sc_signed   >         reg7;
-//  sc_signal<sc_unsigned >         reg8;
-  sc_signal<sc_uint<32> >         reg9;
-  sc_signal<int>                  reg10;
+    sc_signal<bool> reg1;
+    sc_signal<int>  reg2;
+    sc_signal<int>  reg3;
+    sc_signal<sc_uint<32> > reg9;
+    sc_signal<int>  reg10;
 
-  void fmealy1 ()
-  {
-    mealy1 = i2.read();
-  }
+    void fmealy1() {
+        mealy1 = i2.read();
+    }
 
-  void fmealy2 ()
-  {
-    mealy2 = i2.read() + reg2.read();
-  }
+    void fmealy2() {
+        mealy2 = i2.read() + reg2.read();
+    }
 
-	void gen ()
-  {
-    o1  = reg1.read() ^ true;
-    o2  = reg2.read()+ 1;
-    o3  = reg3.read()+ 1;
-//    o4  = reg4.read()+ 1;
-//    o5  = reg5.read()+ 1;
-//    o6  = reg6.read()+ 1;
-//    io1 = reg6.read() * 2 + 1;
-    io4 = reg9.read()+ 1;
-  }
+    void gen() {
+        o1  = reg1.read() ^ true;
+        o2  = reg2.read() + 1;
+        o3  = reg3.read() + 1;
+        io4 = reg9.read() + 1;
+    }
 
-  void trans ()
-  {
-//    io2 = io2.read() + 1;
-//    io3 = io3.read() + 1;
-    reg1 = reg1.read() ^ 1;
-    reg2 = reg2.read() + 1;
-    reg3 = reg3.read() + 1;
-//    reg4 = reg4.read() + 1;
-//    reg5 = reg5.read() + 1;
-//    reg6 = reg6.read() * 2 + 1;
-    reg9 = reg9.read() + 2;
-    reg10 = reg10.read() + i2.read();
-  }
+    void trans() {
+        reg1 = reg1.read() ^ 1;
+        reg2 = reg2.read() + 1;
+        reg3 = reg3.read() + 1;
+        reg9 = reg9.read() + 2;
+        reg10 = reg10.read() + i2.read();
+    }
 
-  SC_HAS_PROCESS(test);
-	test (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(test);
+    test(sc_module_name n) : sc_module(n),
     clk("clk"),
-    i1("i1"), i2("i2"), i3("i3"), /*i4("i4"), i5("i5"), */ /*i6("i6"),*/
-    o1("o1"), o2("o2"), o3("o3"), /*o4("o4"), o5("o5"), */ /*o6("o6"),
-    io1("io1"), */io4("io4"), 
+    i1("i1"), i2("i2"), i3("i3"),
+    o1("o1"), o2("o2"), o3("o3"),
+    io4("io4"), 
     mealy1("mealy1_equivalent_to_i2"),
     mealy2("mealy2_equivalent_to_i2_plus_reg2"),
@@ -103,147 +60,122 @@
     reg2("reg2_cycle_number"),
     reg3("reg3_cycle_number"),
-//    reg4("reg4"),
-//    reg5("reg5"),
-//    reg6("reg6"),
-//    reg7("reg7"),
-//    reg8("reg8"),
     reg9("reg9_cycle_number_x2"),
-    reg10("reg10_sum_cycle_number")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
-		SC_METHOD(gen);
-		sensitive << clk.neg();
-    dont_initialize();
-		SC_METHOD(fmealy1);
-		sensitive << i2;
-    dont_initialize();
-		SC_METHOD(fmealy2);
-		sensitive << i2 << clk.neg();
-    dont_initialize();
-	};
+    reg10("reg10_sum_cycle_number") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen);
+        sensitive << clk.neg();
+        dont_initialize();
+
+        SC_METHOD(fmealy1);
+        sensitive << i2;
+        dont_initialize();
+
+        SC_METHOD(fmealy2);
+        sensitive << i2 << clk.neg();
+        dont_initialize();
+    }
 };
 
-int
-usage (const char *com)
-{
-  cout << "Usage :\n" << com << " [#cycles]\n";
-  return EXIT_FAILURE;
+
+int usage (const char * com) {
+    cout << "Usage :\n" << com << " [#cycles]\n";
+    return EXIT_FAILURE;
 }
 
-sc_signal<bool>              s01 ("i1_cycle_number_not_parity"),
-                             s02 ("o2_not_reg1");
-sc_signal<int>               s03 ("i2_cycle_number_x2"),
-                             s04 ("o2_reg2_plus_one");
-sc_signal<int>               s05 ("i3_cycle_number_x3"),
-                             s06 ("o3_reg3_plus_one");
-#if 0
-sc_signal<sc_int<4> >        s07 ("s07"),
-                             s08 ("s08");
-sc_signal<sc_uint<4> >       s09 ("s09"),
-                             s10 ("s10");
-#endif
-#if 0
-sc_signal<sc_uint<64> >      s11 ("s11"),
-                             s12 ("s12"),
-                             s13 ("s13");
-#endif
-//sc_signal<sc_signed >        s14("s14");                     
-//sc_signal<sc_unsigned >      s15("s15");
-sc_signal<sc_uint<32> >      s16 ("io4_reg9_plus_one");
-sc_signal<int>               s17 ("mealy1_equivalent_to_i2");
-sc_signal<int>               s18 ("mealy2_i2_plus_reg2");
 
-int
-s (int i)
-{
-  int val = 0;
-  while (i)
-    val += i--;
-  return val;
+sc_signal<bool> s01("i1_cycle_number_not_parity"), s02("o2_not_reg1");
+sc_signal<int>  s03("i2_cycle_number_x2"), s04("o2_reg2_plus_one");
+sc_signal<int>  s05("i3_cycle_number_x3"), s06("o3_reg3_plus_one");
+sc_signal< sc_uint<32> > s16("io4_reg9_plus_one");
+sc_signal<int>  s17("mealy1_equivalent_to_i2");
+sc_signal<int>  s18("mealy2_i2_plus_reg2");
+
+
+int s(int i) {
+    int val = 0;
+    while (i) {
+        val += i--;
+    }
+    return val;
 }
 
-void*
-func ()
-{
-  cerr << "func () at #" << sc_time_stamp () << endl;
-  int i = (int)(sc_time_stamp ().to_double ()) / 1000;
-  s01  = (i & 1) > 0;
-  s03  = i * 2;
-  s05  = i * 3;
-//  s07  = i * 4;
-//  s09  = i * 5;
-//  s11  = i * 6;
-  ++i;
-  return 0;
+
+void * func() {
+    cerr << "func () at #" << sc_time_stamp() << endl;
+    int i = (int) (sc_time_stamp().to_double()) / 1000;
+    s01  = (i & 1) > 0;
+    s03  = i * 2;
+    s05  = i * 3;
+    ++i;
+    return 0;
 }
 
-void
-save ()
-{
+
+void save() {
 #ifdef SYSTEMCASS_SPECIFIC
-  char name[256];
-  sprintf (name,"test_systemcass_%d.dat",((int)sc_time_stamp().to_double() / 1000));
-  sc_save_simulation (name);
+    char name[256];
+    sprintf(name, "test_systemcass_%d.dat", ((int) sc_time_stamp().to_double() / 1000));
+    sc_save_simulation(name);
 #endif
 }
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock  signal_clk("my_clock",1, 0.5);
 
-  test test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s01);
-  test1.o1 (s02);
-  test1.i2 (s03);
-  test1.o2 (s04);
-  test1.i3 (s05);
-  test1.o3 (s06);
-//  test1.i4 (s07);
-//  test1.o4 (s08);
-//  test1.i5 (s09);
-//  test1.o5 (s10);
-//  test1.i6 (s11);
-//  test1.o6 (s12);
-//  test1.io1(s13);
-//  test1.io2(s14);
-//  test1.io3(s15);
-  test1.io4(s16);
-  test1.mealy1(s17);
-  test1.mealy2(s18);
+int sc_main (int argc, char * argv[]) {
+    sc_clock  signal_clk("my_clock", 1, 0.5);
 
-	// Init & run
-	sc_start (0);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s01);
+    test1.o1(s02);
+    test1.i2(s03);
+    test1.o2(s04);
+    test1.i3(s05);
+    test1.o3(s06);
+    test1.io4(s16);
+    test1.mealy1(s17);
+    test1.mealy2(s18);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
 
 #ifndef SOCVIEW
-  if (argc != 2)
-  {
-    return usage (argv[0]);
-  }
+    if (argc != 2) {
+        return usage(argv[0]);
+    }
 
-	int nb = atoi(argv[1]);
+    int nb = atoi(argv[1]);
 
-  if (nb == 0)
-  {
-    return usage (argv[0]);
-  } 
+    if (nb == 0) {
+        return usage(argv[0]);
+    } 
 
-  int i = 0;
-  save ();
-  while (i++ < nb)
-  {
-    func ();
-    sc_start (1);
-    save ();
-  }
+    int i = 0;
+    save();
+    while (i++ < nb) {
+        func();
+        sc_start(sc_time(1, sc_core::SC_NS));
+        save();
+    }
 #else
-  debug(&func);
+    debug(&func);
 #endif
 
-	return EXIT_SUCCESS;
+    return EXIT_SUCCESS;
 }
 
 #undef sc_inout
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/19122005/system2.cpp
===================================================================
--- sources/test_regression/19122005/system2.cpp	(revision 54)
+++ sources/test_regression/19122005/system2.cpp	(revision 55)
@@ -1,202 +1,194 @@
-#include <systemc.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
 
+
 struct inner : sc_module {
-	sc_in_clk       clk;
-  sc_in<int>      i1;
-  int reg;
+    sc_in_clk clk;
+    sc_in<int> i1;
+    int reg;
 
-  void save (ostream &o)
-  {
-    o << reg << endl;
-  }
+    void save(ostream & o) {
+        o << reg << endl;
+    }
 
-  void save_state (FILE *fic)
-  {
-    cerr << "saving " << name () << "\n";
-    fprintf (fic, "%d\n", reg);
-  }
+    void save_state(FILE * fic) {
+        cerr << "saving " << name() << "\n";
+        fprintf (fic, "%d\n", reg);
+    }
 
-  void restore_state (FILE *fic)
-  {
-    cerr << "restoring " << name () << "\n";
-    int i;
-    fscanf (fic, "%d\n", &i);
-    reg = i;
-  }
+    void restore_state(FILE * fic) {
+        cerr << "restoring " << name () << "\n";
+        int i;
+        fscanf (fic, "%d\n", &i);
+        reg = i;
+    }
 
-  void trans ()
-  {
-    reg = i1.read();
-  }
+    void trans() {
+        reg = i1.read();
+    }
 
-  SC_HAS_PROCESS(inner);
-	inner (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(inner);
+    inner(sc_module_name n) : sc_module(n),
     clk("clk"),
-    i1("i1")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
+    i1("i1") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    //SAVE_HANDLER(save);
-    SAVE_HANDLER(save_state);
+        SAVE_HANDLER(save_state);
 #endif
-	};
+    }
+
 };
 
+
 struct test : sc_module {
-	sc_in_clk       clk;
-	sc_in<bool>     i1;
-	sc_in<int>      i2;
-	sc_in<int>      i3;
-  inner           inner1;
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_in<int> i2;
+    sc_in<int> i3;
+    inner inner1;
 
-  int  tab[16];
-  bool b;
+    int  tab[16];
+    bool b;
 
-  void trans ()
-  {
-    b = i1.read() ^ b;
-    tab[i3.read() % 16] = i2;
-  }
+    void trans() {
+        b = i1.read() ^ b;
+        tab[i3.read() % 16] = i2;
+    }
 
 
-  void save (ostream &o)
-  {
-    o << ((b)?1:0) << endl;
-    int i;
-    for (i = 0; i < 16; ++i)
-      o << tab[i] << endl;
-  }
+    void save(ostream & o) {
+        o << ((b) ? 1 : 0) << endl;
+        int i;
+        for (i = 0; i < 16; ++i) {
+            o << tab[i] << endl;
+        }
+    }
 
-  void save_state (FILE *fic)
-  {
-    cerr << "saving " << name () << "\n";
-    fprintf (fic, "%c\n", ((b)?'1':'0'));
-    int i;
-    for (i = 0; i < 16; ++i)
-    {
-      fprintf (fic, "%d\n", tab[i]);
+    void save_state(FILE * fic) {
+        cerr << "saving " << name() << "\n";
+        fprintf (fic, "%c\n", ((b) ? '1' : '0'));
+        int i;
+        for (i = 0; i < 16; ++i) {
+            fprintf(fic, "%d\n", tab[i]);
+        }
     }
-  }
 
-  void restore_state (FILE *fic)
-  {
-    cerr << "restoring " << name () << "\n";
-    int j;
-    fscanf (fic, "%d\n", &j);
-    b = (j > 0);
-    int i;
-    for (i = 0; i < 16; ++i)
-    {
-      fscanf (fic, "%d\n", &j);
-      tab[i] = j;
+    void restore_state(FILE * fic) {
+        cerr << "restoring " << name() << "\n";
+        int j;
+        fscanf (fic, "%d\n", &j);
+        b = (j > 0);
+        int i;
+        for (i = 0; i < 16; ++i) {
+            fscanf(fic, "%d\n", &j);
+            tab[i] = j;
+        }
     }
-  }
 
-  SC_HAS_PROCESS(test);
-	test (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(test);
+    test (sc_module_name n) : sc_module (n),
     clk("clk"),
     i1("i1"), i2("i2"), i3("i3"),
-    inner1 ("inner1")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
+    inner1 ("inner1") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    //SAVE_HANDLER(save);
-    SAVE_HANDLER(save_state);
+        SAVE_HANDLER(save_state);
 #endif
-	};
+    }
+
 };
 
-int
-usage (const char *com)
-{
-  cout << "Usage :\n" << com << " [#cycles]\n";
-  return EXIT_FAILURE;
+
+int usage (const char * com) {
+    cout << "Usage :\n" << com << " [#cycles]\n";
+    return EXIT_FAILURE;
 }
 
-sc_signal<bool>              s01 ("bool");
-sc_signal<int>               s02 ("tab_index"),
-                             s03 ("value_to_write_in_tab");
 
-void*
-func ()
-{
-  cerr << "func () at #" << sc_time_stamp () << endl;
-  int i = (int)(sc_time_stamp ().to_double ()) / 1000;
-  s01  = (i & 1) > 0;
-  s02  = (i + (i << 1)) << 6;
-  s03  = i;
-  ++i;
-  return 0;
+sc_signal<bool> s01("bool");
+sc_signal<int> s02("tab_index"),
+s03 ("value_to_write_in_tab");
+
+
+void * func() {
+    cerr << "func () at #" << sc_time_stamp() << endl;
+    int i = (int) (sc_time_stamp().to_double()) / 1000;
+    s01  = (i & 1) > 0;
+    s02  = (i + (i << 1)) << 6;
+    s03  = i;
+    ++i;
+    return 0;
 }
 
-void
-save ()
-{
+
+void save() {
 #ifdef SYSTEMCASS_SPECIFIC
-  int current_cycle = ((int)sc_time_stamp().to_double() / 1000);
-  if (current_cycle != 20)
-    return;
-  char name[256];
-  sprintf (name,"test2_systemcass_%d.dat",current_cycle);
-  sc_save_simulation (name);
+    int current_cycle = ((int) sc_time_stamp().to_double() / 1000);
+    if (current_cycle != 20) {
+        return;
+    }
+    char name[256];
+    sprintf(name, "test2_systemcass_%d.dat", current_cycle);
+    sc_save_simulation(name);
 #endif
 }
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock                     signal_clk("my_clock",1, 0.5);
 
-  test test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s01);
-  test1.i2 (s02);
-  test1.i3 (s03);
-  test1.inner1.clk (signal_clk);
-  test1.inner1.i1 (s02);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock",1, 0.5);
 
-	// Init & run
-	sc_start (0);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s01);
+    test1.i2(s02);
+    test1.i3(s03);
+    test1.inner1.clk(signal_clk);
+    test1.inner1.i1(s02);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
 
 #ifndef SOCVIEW
-  if (argc != 2)
-  {
-    return usage (argv[0]);
-  }
+    if (argc != 2) {
+        return usage(argv[0]);
+    }
 
-	int nb = atoi(argv[1]);
+    int nb = atoi(argv[1]);
 
-  if (nb == 0)
-  {
-    return usage (argv[0]);
-  } 
+    if (nb == 0) {
+        return usage(argv[0]);
+    } 
 
-  int i = 0;
-  while (i++ < nb)
-  {
-    func ();
-    sc_start (1);
-    save ();
-  }
+    int i = 0;
+    while (i++ < nb) {
+        func();
+        sc_start(sc_time(1, sc_core::SC_NS));
+        save();
+    }
 #else
-  debug(&func); 
+    debug(&func); 
 #endif
 
-	return EXIT_SUCCESS;
+    return EXIT_SUCCESS;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/19122005/system3.cpp
===================================================================
--- sources/test_regression/19122005/system3.cpp	(revision 54)
+++ sources/test_regression/19122005/system3.cpp	(revision 55)
@@ -1,172 +1,165 @@
-#include <systemc.h>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
 
+
 struct inner : sc_module {
-	sc_in_clk       clk;
-  sc_in<int>      i1;
-  int reg;
+    sc_in_clk clk;
+    sc_in<int> i1;
+    int reg;
 
-  void save_state (FILE *fic)
-  {
-    cerr << "saving " << name () << "\n";
-    fprintf (fic, "%d\n", reg);
-  }
+    void save_state (FILE * fic) {
+        cerr << "saving " << name() << "\n";
+        fprintf (fic, "%d\n", reg);
+    }
 
-  void restore_state (FILE *fic)
-  {
-    cerr << "restoring " << name () << "\n";
-    int i;
-    fscanf (fic, "%d\n", &i);
-    reg = i;
-  }
+    void restore_state (FILE * fic) {
+        cerr << "restoring " << name() << "\n";
+        int i;
+        fscanf (fic, "%d\n", &i);
+        reg = i;
+    }
 
-  void trans ()
-  {
-    reg = i1.read();
-  }
+    void trans() {
+        reg = i1.read();
+    }
 
-  SC_HAS_PROCESS(inner);
-	inner (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(inner);
+    inner(sc_module_name n) : sc_module(n),
     clk("clk"),
-    i1("i1")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
+    i1("i1") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    SAVE_HANDLER(save_state);
+        SAVE_HANDLER(save_state);
 #endif
-	};
+    }
+
 };
 
+
 struct test : sc_module {
-	sc_in_clk       clk;
-	sc_in<bool>     i1;
-	sc_in<int>      i2;
-	sc_in<int>      i3;
-  inner           inner1;
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_in<int> i2;
+    sc_in<int> i3;
+    inner inner1;
 
-  int  tab[16];
-  bool b;
+    int tab[16];
+    bool b;
 
-  void trans ()
-  {
-    b = i1.read() ^ b;
-    tab[i3.read() % 16] = i2;
-  }
+    void trans() {
+        b = i1.read() ^ b;
+        tab[i3.read() % 16] = i2;
+    }
 
-  void save_state (FILE *fic)
-  {
-    cerr << "saving " << name () << "\n";
-    fprintf (fic, "%c\n", ((b)?'1':'0'));
-    int i;
-    for (i = 0; i < 16; ++i)
-    {
-      fprintf (fic, "%d\n", tab[i]);
+    void save_state (FILE * fic) {
+        cerr << "saving " << name() << "\n";
+        fprintf(fic, "%c\n", ((b) ? '1' : '0'));
+        int i;
+        for (i = 0; i < 16; ++i) {
+            fprintf(fic, "%d\n", tab[i]);
+        }
     }
-  }
 
-  void restore_state (FILE *fic)
-  {
-    cerr << "restoring " << name () << "\n";
-    int j;
-    fscanf (fic, "%d\n", &j);
-    b = (j > 0);
-    int i;
-    for (i = 0; i < 16; ++i)
-    {
-      fscanf (fic, "%d\n", &j);
-      tab[i] = j;
+    void restore_state(FILE * fic) {
+        cerr << "restoring " << name() << "\n";
+        int j;
+        fscanf (fic, "%d\n", &j);
+        b = (j > 0);
+        int i;
+        for (i = 0; i < 16; ++i) {
+            fscanf (fic, "%d\n", &j);
+            tab[i] = j;
+        }
     }
-  }
 
-  SC_HAS_PROCESS(test);
-	test (sc_module_name n) : sc_module (n),
+    SC_HAS_PROCESS(test);
+    test (sc_module_name n) : sc_module (n),
     clk("clk"),
     i1("i1"), i2("i2"), i3("i3"),
-    inner1 ("inner1")
-  {
-		SC_METHOD(trans);
-		sensitive << clk.pos();
-    dont_initialize();
+    inner1 ("inner1") {
+        SC_METHOD(trans);
+        sensitive << clk.pos();
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    SAVE_HANDLER(save_state);
+        SAVE_HANDLER(save_state);
 #endif
-	};
+    }
+
 };
 
-int
-usage (const char *com)
-{
-  cout << "Usage :\n" << com << " [#cycles]\n";
-  return EXIT_FAILURE;
+
+int usage(const char * com) {
+    cout << "Usage :\n" << com << " [#cycles]\n";
+    return EXIT_FAILURE;
 }
 
-sc_signal<bool>              s01 ("bool");
-sc_signal<int>               s02 ("tab_index"),
-                             s03 ("value_to_write_in_tab");
+sc_signal<bool> s01("bool");
+sc_signal<int> s02("tab_index"), s03("value_to_write_in_tab");
 
-void*
-func ()
-{
-  cerr << "func () at #" << sc_time_stamp () << endl;
-  int i = (int)(sc_time_stamp ().to_double ()) / 1000;
-  s01  = (i & 1) > 0;
-  s02  = (i + (i << 1)) << 6;
-  s03  = i;
-  ++i;
-  return 0;
+
+void * func() {
+    cerr << "func () at #" << sc_time_stamp() << endl;
+    int i = (int)(sc_time_stamp().to_double()) / 1000;
+    s01  = (i & 1) > 0;
+    s02  = (i + (i << 1)) << 6;
+    s03  = i;
+    ++i;
+    return 0;
 }
 
-int sc_main (int argc, char *argv[])
-{
-  int errnum = 0;
-	sc_clock                     signal_clk("my_clock",1, 0.5);
 
-  test test1("test1");
-  test1.clk (signal_clk);
-  test1.i1 (s01);
-  test1.i2 (s02);
-  test1.i3 (s03);
-  test1.inner1.clk (signal_clk);
-  test1.inner1.i1 (s02);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock", 1, 0.5);
 
-	// Init & run
-	sc_start (0);
+    test test1("test1");
+    test1.clk(signal_clk);
+    test1.i1(s01);
+    test1.i2(s02);
+    test1.i3(s03);
+    test1.inner1.clk(signal_clk);
+    test1.inner1.i1(s02);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
 
 #ifndef SOCVIEW
-  if (argc != 2)
-  {
-    return usage (argv[0]);
-  }
+    if (argc != 2) {
+        return usage(argv[0]);
+    }
 
-	int nb = atoi(argv[1]);
+    int nb = atoi(argv[1]);
 
-  if (nb == 0)
-  {
-    return usage (argv[0]);
-  } 
+    if (nb == 0) {
+        return usage(argv[0]);
+    } 
 
-  int i = 0;
-  while (i++ < nb)
-  {
-    func ();
-    sc_start (1);
-  }
+    int i = 0;
+    while (i++ < nb) {
+        func();
+        sc_start(sc_time(1, sc_core::SC_NS));
+    }
 #else
-  debug(&func); 
+    debug(&func); 
 #endif
 
-	return EXIT_SUCCESS;
+    return EXIT_SUCCESS;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/20122006/Makefile
===================================================================
--- sources/test_regression/20122006/Makefile	(revision 54)
+++ sources/test_regression/20122006/Makefile	(revision 55)
@@ -1,61 +1,31 @@
+
 include ../env.mk
+SIGNAL_GRAPH = signal_graph.dot
+MODULE_GRAPH = module_graph.dot
+PORT_GRAPH = port_graph.dot
+PROCESS_ORDER = process_order.dot
+SIGNAL_ORDER = signal_order.txt
+ERASE = $(SIGNAL_GRAPH) $(MODULE_GRAPH) $(PORT_GRAPH) $(PROCESS_ORDER) $(SIGNAL_ORDER)
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+MODULE_GRAPH_REF = module_graph_cass_ref.dot
+PORT_GRAPH_REF = port_graph_ref.dot
+SIGNAL_GRAPH_REF = signal_graph_ref.dot
+PROCESS_ORDER_M_REF = process_order_mouchard_ref.dot
+PROCESS_ORDER_B_REF = process_order_buchmann_ref.dot
 
-.SECONDARY:
+test: $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ; \
+   ./$(EXE_SCASS) --a --t --k 2> /dev/null; \
+   (tail -n +3 $(MODULE_GRAPH) | diff $(MODULE_GRAPH_REF) -) > /dev/null || res=1 ; \
+	./$(EXE_SCASS) --m --t --k 2> /dev/null; \
+   (tail -n +3 $(PORT_GRAPH) | diff $(PORT_GRAPH_REF) -) > /dev/null || res=1 ; \
+   (tail -n +3 $(SIGNAL_GRAPH) | diff $(SIGNAL_GRAPH_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PROCESS_ORDER) | diff $(PROCESS_ORDER_M_REF) > /dev/null -) || res=1 ; \
+	./$(EXE_SCASS) --p --t --k 2> /dev/null; \
+   (tail -n +3 $(PORT_GRAPH) | diff $(PORT_GRAPH_REF) -) > /dev/null || res=1 ; \
+  	(tail -n +3 $(SIGNAL_GRAPH) | diff $(SIGNAL_GRAPH_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PROCESS_ORDER) | diff $(PROCESS_ORDER_B_REF) -) > /dev/null || res=1 ; \
+   if [ x"$$res" = x ] ; then echo "OK" ; else echo "KO" ; fi ;
 
-main : $(EXE) 
 
-test : ${EXE}
-	./system_systemcass.x --a --t --k; \
-  (tail -n +3 module_graph.dot | diff module_graph_cass_reference.dot -) || eval ${failcom}
-	./system_systemcass.x --m --t --k; \
-  (tail -n +3 port_graph.dot | diff port_graph_reference.dot -) || eval ${failcom} ; \
-  (tail -n +3 signal_graph.dot | diff signal_graph_reference.dot -) || eval ${failcom} ; \
-	(tail -n +3 process_order.dot | diff process_order_mouchard_reference.dot -) || eval ${failcom}
-	./system_systemcass.x --p --t --k; \
-  (tail -n +3 port_graph.dot | diff port_graph_reference.dot -) || eval ${failcom} ; \
-  (tail -n +3 signal_graph.dot | diff signal_graph_reference.dot -) || eval ${failcom} ; \
-	(tail -n +3 process_order.dot | diff process_order_buchmann_reference.dot -) || eval ${failcom}
-	@echo Test OK.
-
-%.png : %.dot
-	dot -Tpng -o $*.png $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f signal_order.txt module_order.dot signal_graph.dot port_graph.dot
-	-rm -f module_graph.dot process_order.dot
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
-	
Index: sources/test_regression/20122006/chrono.h
===================================================================
--- sources/test_regression/20122006/chrono.h	(revision 54)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifndef __CHRONO_H__
-#define __CHRONO_H__
-
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-struct chrono_t {
-	unsigned int sec;
-	chrono_t () 
-	{
-		sec = 0;
-	}
-	void start () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec;
-	}
-	void cont () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec - sec;
-	}
-	void stop ()
-	{
-		cont ();
-	}
-	operator unsigned int () const
-	{ return sec; }	
-	friend std::ostream& operator << (std::ostream& o, const chrono_t &c)
-	{
-		return o << c.sec << "sec";
-	}
-};
-
-#endif
-
Index: sources/test_regression/20122006/system.cpp
===================================================================
--- sources/test_regression/20122006/system.cpp	(revision 54)
+++ sources/test_regression/20122006/system.cpp	(revision 55)
@@ -1,299 +1,316 @@
-#include <systemc.h>
+
 #include <signal.h>
-#include "chrono.h"
+#include <iostream>
+
+#include "systemc.h"
+#include "test.h"
 
 using namespace std;
-	
+
+
 struct M_0i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_out<bool>                    o1;
-
-	void eval () {
-    o1 = (rand()%2) == 0;
-	}
-
-	SC_CTOR (M_0i1o) : clk ("clk"), o1("o1") {
-		SC_METHOD(eval);
-		sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-		//o1(); /* no need */
-#endif
-	};
-};
+    sc_in_clk clk;
+    sc_out<bool> o1;
+
+    void eval() {
+        o1 = (rand() % 2) == 0;
+    }
+
+    SC_CTOR (M_0i1o) : clk ("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+};
+
 
 struct M_1i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_out<bool>                    o1;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-
-	SC_CTOR (M_1i1o) : clk ("clk"), i1 ("i1"), o1("o1") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-	};
-};
+    sc_in_clk   clk;
+    sc_in<bool>  i1;
+    sc_out<bool> o1;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+
+    SC_CTOR (M_1i1o) : clk("clk"), i1 ("i1"), o1("o1") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+    }
+
+};
+
 
 
 struct M_2i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-
-	SC_CTOR (M_2i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-	};
-};
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    SC_CTOR (M_2i2o) : clk ("clk"), i1 ("i1"), i2("o1"), o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+    }
+};
+
 
 struct M_4i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-  void eval3 () {
-    cout << i3 << i4 << "\n";
-  }
-
-	SC_CTOR (M_4i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"),
-i3 ("i3"), i4 ("i4") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-		SC_METHOD(eval3);
-		sensitive << clk.pos();
-		// sensitive << i3 << i4;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-	};
-};
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_in<bool>  i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    void eval3() {
+        cout << i3 << i4 << "\n";
+    }
+
+    SC_CTOR (M_4i2o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"),
+    o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+        SC_METHOD(eval3);
+        sensitive << clk.pos();
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        // No port dependency
+#endif
+    }
+
+};
+
 
 struct M_4i3o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-	sc_out<bool>                    o3;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-  void eval3 () {
-    o3 = ~i3;
-  }
-  void eval4 () {
-    cout << i4 << "\n";
-  }
-
-	SC_CTOR (M_4i3o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"), i3 ("i3"), i4 ("i4"), o3 ("o3") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval4);
-		sensitive << clk.pos();
-		// sensitive << i4;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-		SC_METHOD(eval3);
-		sensitive << clk.neg();
-		sensitive << i3;
-#ifdef SYSTEMCASS_SPECIFIC
-		o3(i3);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-	};
-};
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_in<bool>  i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+    sc_out<bool> o3;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    void eval3() {
+        o3 = ~i3;
+    }
+
+    void eval4() {
+        cout << i4 << "\n";
+    }
+
+    SC_CTOR (M_4i3o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"), o1("o1"), o2("o2"), o3("o3") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+        SC_METHOD(eval4);
+        sensitive << clk.pos();
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        // No port dependency
+#endif
+        SC_METHOD(eval3);
+        sensitive << clk.neg();
+        sensitive << i3;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o3(i3);
+#endif
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+    }
+
+};
+
 
 struct M_1i0o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-
-	void eval1 () {
-    cout << i1.read() << "\n";
-	}
-
-	SC_CTOR (M_1i0o) : clk ("clk"), i1 ("i1") {
-		SC_METHOD(eval1);
-		sensitive << clk.pos();
-		// sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-	};
-};
-
-int sc_main (int argc, char *argv[])
-{
-	sc_clock                     signal_clk("my_clock",1, 0.5);
-	sc_signal<bool>              s1 ("s01"),
-                               s2 ("s02"),
-                               s3 ("s03"),
-                               s4 ("s04"),
-                               s5 ("s05"),
-                               s6 ("s06"),
-                               s7 ("s07"),
-                               s8 ("s08"),
-                               s9 ("s09"),
-                               s10("s10"),
-                               s11("s11"),
-                               s12("s12"),
-                               s13("s13"),
-                               s14("s14"),
-                               s15("s15");
-                               
-
-	M_0i1o      a("a");
-	M_4i2o      b("b");
-	M_1i1o      c("c");
-	M_4i3o      d("d");
-	M_1i1o      e("e");
-	M_1i1o      f("f");
-	M_2i2o      g("g");
-	M_1i1o      h("h");
-	M_1i0o      i("i");
-	M_0i1o      j("j");
-	M_0i1o      k("k");
-	M_0i1o      l("l");
-	
-	a.clk         (signal_clk);
-	b.clk         (signal_clk);
-	c.clk         (signal_clk);
-	d.clk         (signal_clk);
-	e.clk         (signal_clk);
-	f.clk         (signal_clk);
-	g.clk         (signal_clk);
-	h.clk         (signal_clk);
-	i.clk         (signal_clk);
-	j.clk         (signal_clk);
-	k.clk         (signal_clk);
-	l.clk         (signal_clk);
-	
-	a.o1          (s1);
-	b.i1          (s1);
-		
-	b.o2          (s2);
-	c.i1          (s2);
-
-	c.o1          (s3);
-	d.i1          (s3);
-	
-	d.o1          (s4);
-	b.i3          (s4);
-	
-	d.o2          (s5);
-	b.i4          (s5);
-	
-	b.o1          (s6);
-	e.i1          (s6);
-	
-	e.o1          (s7);
-	f.i1          (s7);
-	
-	f.o1          (s8);
-	b.i2          (s8);
-	
-	d.o3          (s9);
-	g.i1          (s9);
-	
-	g.o1          (s10);
-	h.i1          (s10);
-	
-	h.o1          (s11);
-	d.i4          (s11);
-	
-	j.o1          (s12);
-	g.i2          (s12);
-	
-	g.o2          (s13);
-	i.i1          (s13);	
-	
-	l.o1          (s14);
-	d.i3          (s14);
-	
-	k.o1          (s15);
-	d.i2          (s15);
-
-	// Init & run
-	sc_initialize ();
-
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    sc_in_clk   clk;
+    sc_in<bool> i1;
+
+    void eval1() {
+        cout << i1.read() << "\n";
+    }
+
+    SC_CTOR (M_1i0o) : clk("clk"), i1("i1") {
+        SC_METHOD(eval1);
+        sensitive << clk.pos();
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        // No port dependency
+#endif
+    }
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock", 1, 0.5);
+    sc_signal<bool> s1 ("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M_0i1o a("a");
+    M_4i2o b("b");
+    M_1i1o c("c");
+    M_4i3o d("d");
+    M_1i1o e("e");
+    M_1i1o f("f");
+    M_2i2o g("g");
+    M_1i1o h("h");
+    M_1i0o i("i");
+    M_0i1o j("j");
+    M_0i1o k("k");
+    M_0i1o l("l");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+    e.clk(signal_clk);
+    f.clk(signal_clk);
+    g.clk(signal_clk);
+    h.clk(signal_clk);
+    i.clk(signal_clk);
+    j.clk(signal_clk);
+    k.clk(signal_clk);
+    l.clk(signal_clk);
+
+    a.o1(s1);
+    b.i1(s1);
+
+    b.o2(s2);
+    c.i1(s2);
+
+    c.o1(s3);
+    d.i1(s3);
+
+    d.o1(s4);
+    b.i3(s4);
+
+    d.o2(s5);
+    b.i4(s5);
+
+    b.o1(s6);
+    e.i1(s6);
+
+    e.o1(s7);
+    f.i1(s7);
+
+    f.o1(s8);
+    b.i2(s8);
+
+    d.o3(s9);
+    g.i1(s9);
+
+    g.o1(s10);
+    h.i1(s10);
+
+    h.o1(s11);
+    d.i4(s11);
+
+    j.o1(s12);
+    g.i2(s12);
+
+    g.o2(s13);
+    i.i1(s13);	
+
+    l.o1(s14);
+    d.i3(s14);
+
+    k.o1(s15);
+    d.i2(s15);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
     return EXIT_SUCCESS;
-  }
-
-	chrono_t chrono;
-	chrono.start ();
-
-  sc_start (atoi(argv[1]));
-
-	chrono.stop ();
-	unsigned int t = chrono;
-	cout << "Time elapsed (sec) : " << t << endl;
-	cout << "Cycles done        : " << sc_simulation_time () << endl;
-	cout << "Performance        : " << sc_simulation_time () / t << endl;
-	printf("\nPress <RETURN> to exit simulation.");
-	char buf_ret[2];
-	cin.getline(buf_ret,1);
-	return EXIT_SUCCESS;
 }
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/21062005/Makefile
===================================================================
--- sources/test_regression/21062005/Makefile	(revision 54)
+++ sources/test_regression/21062005/Makefile	(revision 55)
@@ -1,55 +1,15 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp #system2.cpp system3.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-.SECONDARY:
 
-main : $(EXE) 
 
-test : main
-	./system_systemcass.x || eval ${failcom} ; \
-	echo Test OK.
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -Wno-deprecated -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -Wno-deprecated -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	-rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/21062005/system.cpp
===================================================================
--- sources/test_regression/21062005/system.cpp	(revision 54)
+++ sources/test_regression/21062005/system.cpp	(revision 55)
@@ -1,76 +1,77 @@
-#include "systemc.h"
+
 #include <iostream>
 #include <string>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
 
-static int errnum = 0;
 
-struct internal_model : sc_module
-{
-  sc_in<int>     i;
-  sc_out<int>    o;
-	internal_model (sc_module_name n) : sc_module (n),
-    i("i"),
-		o("o")
-  {
-  }
+
+struct internal_model : sc_module {
+    sc_in<int> i;
+    sc_out<int> o;
+    internal_model(sc_module_name n) : sc_module(n), i("i"), o("o") {}
 };
 
-struct model : sc_module
-{
-  sc_in<int>     i1, i2, i3;
-  sc_out<int>    o1, o2, o3;
-	sc_signal<int> r1, r2;
-  internal_model internal1,internal2;
-  sc_signal<int> internal_signal;
-	model (sc_module_name n) : sc_module (n),
+
+struct model : sc_module {
+    sc_in<int> i1, i2, i3;
+    sc_out<int> o1, o2, o3;
+    sc_signal<int> r1, r2;
+    internal_model internal1,internal2;
+    sc_signal<int> internal_signal;
+    model(sc_module_name n) : sc_module(n),
     i1("i1"), i2("i2"), i3("i3"),
-		o1("o1"), o2("o2"), o3("o3"),
-		r1("r1"), r2("r2"),
-    internal1 ("internal1"),
-    internal2 ("internal2"),
-    internal_signal ("internal_signal")
-  {
-    internal1.i (i3);
-    internal2.i (internal1.o);
-    internal1.o (internal_signal);
+    o1("o1"), o2("o2"), o3("o3"),
+    r1("r1"), r2("r2"),
+    internal1("internal1"),
+    internal2("internal2"),
+    internal_signal("internal_signal") {
+        internal1.i(i3);
+        internal2.i(internal1.o);
+        internal1.o(internal_signal);
 #if defined(ERROR)
-    internal1.o (internal2.i); // SystemC 2.0.1 & 2.1.v1 error: no match for call to `(sc_out<int>) (sc_in<int>&)'
+        internal1.o(internal2.i); // SystemC 2.0.1 & 2.1.v1 error: no match for call to `(sc_out<int>) (sc_in<int>&)'
 #endif
-    internal2.o (o3);
-  }
+        internal2.o(o3);
+    }
+
 };
 
-int
-sc_main (int argc, char ** argv)
-{
-  model    m("m");
-  sc_clock clk ("clock");
-	sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
 
-  m.i1 (s1);
-  m.i2 (s1); //
-  m.i3 (s1);
-  m.o1 (s4); //
-  m.o2 (s2);
-  m.o3 (s3);
+int sc_main (int argc, char ** argv) {
+    model m("m");
+    sc_clock clk("clock");
+    sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
 
-	sc_start (0);
+    m.i1 (s1);
+    m.i2 (s1);
+    m.i3 (s1);
+    m.o1 (s4);
+    m.o2 (s2);
+    m.o3 (s3);
 
-	sc_start (1);
-	sc_start (10);
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  cerr << "Test OK.\n";
-  return 0;
+    sc_start(sc_time(1, sc_core::SC_NS));
+    sc_start(sc_time(10, sc_core::SC_NS));
+
+    cout << "OK" << endl;
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/24082009/Makefile
===================================================================
--- sources/test_regression/24082009/Makefile	(revision 54)
+++ sources/test_regression/24082009/Makefile	(revision 55)
@@ -1,51 +1,16 @@
+
 include ../env.mk
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+      time_scass=$$(/usr/bin/time -f "%e" 2>&1 ./$(EXE_SCASS) --nodynamiclink | tail -n 1) ; \
+      time_sc=$$(/usr/bin/time -f "%e" 2>&1 ./$(EXE_SC) | tail -n 1) ; \
+      echo "OK (time SystemCass: $$time_scass - time SystemC : $$time_sc)" ; \
+   else echo "KO" ; \
+   fi ;
+ 
 
-RESULTS   = perf
-
-.SECONDARY:
-
-main : $(EXE) 
-
-test : ${RESULTS}
-	@echo OK
-
-perf : system_systemcass.x
-	time (./system_systemcass.x --nobanner --p --nodynamiclink 1000000 )
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
-	-rm -rf ${RESULTS}
Index: sources/test_regression/24082009/system.cpp
===================================================================
--- sources/test_regression/24082009/system.cpp	(revision 54)
+++ sources/test_regression/24082009/system.cpp	(revision 55)
@@ -1,67 +1,80 @@
-#include <systemc.h>
+
 #include <signal.h>
 
+#include "systemc.h"
+#include "test.h"
+
 using namespace std;
-  
+
 struct A : sc_module {
-  sc_in_clk                       clk;
-  sc_in     <int>                 i1;
-  sc_signal <int>                 r1;
-  sc_out    <int>                 o1;
+    sc_in_clk clk;
+    sc_in <int> i1;
+    sc_signal <int> r1;
+    sc_out <int> o1;
 
-  void transition () {
-    int i;
-    for (i = 0; i < 1000; ++i)
-      ;
-    r1 = i1;
-  }
-  void gen_moore () {
-    int i;
-    for (i = 0; i < 1000; ++i)
-      ;
-    o1 = r1;
-  }
+    void transition() {
+        int i;
+        for (i = 0; i < 1000; ++i);
+        r1 = i1;
+    }
 
-  SC_CTOR (A) : clk ("clk"), o1("o1") {
-    SC_METHOD(transition);
-    sensitive << clk.pos();
-    SC_METHOD(gen_moore);
-    sensitive << clk.neg();
-  };
+    void gen_moore() {
+        int i;
+        for (i = 0; i < 1000; ++i);
+        o1 = r1;
+    }
+
+    SC_CTOR (A) : clk("clk"), o1("o1") {
+        SC_METHOD(transition);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-  sc_clock                     signal_clk("my_clock",1, 0.5);
-  sc_signal<int>               s1("s1"),s2("s2"),s3("s3"),s4("s4");
 
-  A      a("a");
-  A      b("b");
-  
-  a.clk         (signal_clk);
-  b.clk         (signal_clk);
-  
-  a.i1          (s1);
-  a.o1          (s2);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<int> s1("s1"), s2("s2"), s3("s3"), s4("s4");
 
-  b.i1          (s3);
-  b.o1          (s4);
+    A a("a");
+    A b("b");
 
-  // Init & run
-  sc_initialize ();
+    a.clk(signal_clk);
+    b.clk(signal_clk);
 
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    a.i1(s1);
+    a.o1(s2);
+
+    b.i1(s3);
+    b.o1(s4);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    s1.write(1);
+
+    sc_start(sc_time(100000, sc_core::SC_NS));
+
+    cout << s1.read() << endl;
+    cout << s2.read() << endl;
+
     return EXIT_SUCCESS;
-  }
+}
 
-  s1.write (1);
 
-  sc_start (atoi(argv[1]));
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
 
-  cout << s1.read() << endl;
-  cout << s2.read() << endl;
-
-  return EXIT_SUCCESS;
-}
Index: sources/test_regression/25032005/Makefile
===================================================================
--- sources/test_regression/25032005/Makefile	(revision 54)
+++ sources/test_regression/25032005/Makefile	(revision 55)
@@ -1,56 +1,22 @@
+
 include ../env.mk
+SIGNAL_GRAPH = signal_graph.dot
+PROCESS_ORDER = process_order.dot
+MODULE_GRAPH = module_graph.dot
+SIGNAL_ORDER = signal_order.txt
+ERASE = $(SIGNAL_GRAPH) $(PROCESS_ORDER) $(SIGNAL_ORDER) $(MODULE_GRAPH)
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+SIGNAL_GRAPH_REF = signal_graph_ref.dot
+PROCESS_ORDER_REF = process_order_ref.dot
+SIGNAL_ORDER_REF = signal_order_ref.txt
 
-.SECONDARY:
-
-main : $(EXE) 
-
-test : main
-	./system_systemc.x ; \
-	./system_systemcass.x --p --t || eval ${failcom} ; \
-	((tail --lines=+3 signal_graph.dot  | diff signal_graph_reference.dot -) || (tail -n +3 signal_graph.dot | diff signal_graph_reference2.dot -)) || eval ${failcom}
-	tail --lines=+3 process_order.dot | diff process_order_reference.dot -
-	diff signal_order_reference.txt signal_order.txt
-	@echo Test OK.
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f port_graph.dot signal_order.txt process_order.dot signal_graph.dot
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -f *~
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SC) 2> /dev/null || res=1 ; \
+	./$(EXE_SCASS) --p --t 2> /dev/null || res=1 ; \
+	(tail -n +3 $(SIGNAL_GRAPH) | diff $(SIGNAL_GRAPH_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PROCESS_ORDER) | diff $(PROCESS_ORDER_REF) -) > /dev/null || res=1 ; \
+	diff $(SIGNAL_ORDER_REF) $(SIGNAL_ORDER) > /dev/null || res=1 ;\
+	if [ x"$$res" = x ] ; then echo "OK" ; else echo "KO" ; fi ;
 	
Index: sources/test_regression/25032005/chrono.h
===================================================================
--- sources/test_regression/25032005/chrono.h	(revision 54)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifndef __CHRONO_H__
-#define __CHRONO_H__
-
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-struct chrono_t {
-	unsigned int sec;
-	chrono_t () 
-	{
-		sec = 0;
-	}
-	void start () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec;
-	}
-	void cont () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec - sec;
-	}
-	void stop ()
-	{
-		cont ();
-	}
-	operator unsigned int () const
-	{ return sec; }	
-	friend std::ostream& operator << (std::ostream& o, const chrono_t &c)
-	{
-		return o << c.sec << "sec";
-	}
-};
-
-#endif
-
Index: sources/test_regression/25032005/signal_order_ref.txt
===================================================================
--- sources/test_regression/25032005/signal_order_ref.txt	(revision 55)
+++ sources/test_regression/25032005/signal_order_ref.txt	(revision 55)
@@ -0,0 +1,5 @@
+s5 
+s4 
+s3 
+s1 
+s2 
Index: sources/test_regression/25032005/signal_order_reference.txt
===================================================================
--- sources/test_regression/25032005/signal_order_reference.txt	(revision 54)
+++ 	(revision )
@@ -1,5 +1,0 @@
-s5 
-s4 
-s3 
-s1 
-s2 
Index: sources/test_regression/25032005/system.cpp
===================================================================
--- sources/test_regression/25032005/system.cpp	(revision 54)
+++ sources/test_regression/25032005/system.cpp	(revision 55)
@@ -1,144 +1,146 @@
-#include <systemc.h>
 #include <signal.h>
-#include "chrono.h"
+
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
-  
+
 struct A : sc_module {
-  sc_in_clk                       clk;
-  sc_out<bool>                    o1;
+    sc_in_clk clk;
+    sc_out<bool> o1;
 
-  void eval () {
-    o1 = (rand()%2) == 0;
-  }
+    void eval() {
+        o1 = (rand() % 2) == 0;
+    }
 
-  SC_CTOR (A) : clk ("clk"), o1("o1") {
-    SC_METHOD(eval);
-    sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-//    s1();
-#endif
-  };
+    SC_CTOR (A) : clk("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
 };
 
+
 struct B : sc_module {
-  sc_in_clk                       clk;
-  sc_in<bool>                     i1;
-  sc_in<bool>                     i2;
-  sc_out<bool>                    o1;
-  sc_out<bool>                    o2;
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_out<bool> o1;
+    sc_in<bool>  i2;
+    sc_out<bool> o2;
 
-  void eval1 () {
-    o1 = ~i1;
-  }
-  void eval2 () {
-    o2 = ~i2;
-  }
+    void eval1() {
+        o1 = ~i1;
+    }
 
-  SC_CTOR (B) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
-    SC_METHOD(eval1);
-    sensitive << clk.neg();
-    sensitive << i1;
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    SC_CTOR (B) : clk("clk"), i1("i1"), o1("o1"), i2("i2"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    o1(i1);
+        o1(i1);
 #endif
-    SC_METHOD(eval2);
-    sensitive << clk.neg();
-    sensitive << i2;
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    o2(i2);
+        o2(i2);
 #endif
-  };
+    }
+
 };
 
+
 struct C : sc_module {
-  sc_in_clk                       clk;
-  sc_in<bool>                     i1;
-  sc_in<bool>                     i2;
-  sc_out<bool>                    o1;
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_out<bool> o1;
+    sc_in<bool>  i2;
 
-  void eval1 () {
-    o1 = i1 ^ i2;
-  }
+    void eval1() {
+        o1 = i1 ^ i2;
+    }
 
-  SC_CTOR (C) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2") {
-    SC_METHOD(eval1);
-    sensitive << clk.neg();
-    sensitive << i1 << i2;
+    SC_CTOR (C) : clk ("clk"), i1("i1"), o1("o1"), i2("i2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1 << i2;
+        dont_initialize();
 #ifdef SYSTEMCASS_SPECIFIC
-    o1(i1);
-    o1(i2);
+        o1(i1);
+        o1(i2);
 #endif
-  };
+    }
+
 };
 
+
 struct D : sc_module {
-  sc_in_clk                       clk;
-  sc_out<bool>                    o1;
+    sc_in_clk clk;
+    sc_out<bool> o1;
 
-  void eval () {
-    o1 = (rand()%2) == 0;
-  }
+    void eval() {
+        o1 = (rand() % 2) == 0;
+    }
 
-  SC_CTOR (D) : clk ("clk"), o1("o1") {
-    SC_METHOD(eval);
-    sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-//    s1();
-#endif
-  };
+    SC_CTOR (D) : clk("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
-int sc_main (int argc, char *argv[])
-{
-  sc_clock                     signal_clk("my_clock",1, 0.5);
-  sc_signal<bool>              s1("s1"),s2("s2"),s3("s3"),s4("s4"),s5("s5");
 
-  A      a("a");
-  B      b("b");
-  C      c("c");
-  D      d("d");
-  
-  a.clk         (signal_clk);
-  b.clk         (signal_clk);
-  c.clk         (signal_clk);
-  d.clk         (signal_clk);
-  
-  a.o1          (s1);
-  b.i1          (s1);
-    
-  d.o1          (s2);
-  c.i2          (s2);
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<bool> s1("s1"), s2("s2"), s3("s3"), s4("s4"), s5("s5");
 
-  b.o1          (s3);
-  c.i1          (s3);
-  
-  c.o1          (s4);
-  b.i2          (s4);
-  
-  b.o2          (s5);
-  
-  // Init & run
-  sc_initialize ();
+    A a("a");
+    B b("b");
+    C c("c");
+    D d("d");
 
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+
+    a.o1(s1);
+    b.i1(s1);
+
+    d.o1(s2);
+    c.i2(s2);
+
+    b.o1(s3);
+    c.i1(s3);
+
+    c.o1(s4);
+    b.i2(s4);
+
+    b.o2(s5);
+
+    // Init & run
+    sc_start(sc_time(1, sc_core::SC_NS));
+
     return EXIT_SUCCESS;
-  }
+}
 
-  chrono_t chrono;
-  chrono.start ();
 
-  sc_start (atoi(argv[1]));
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
 
-  chrono.stop ();
-  unsigned int t = chrono;
-  cout << "Time elapsed (sec) : " << t << endl;
-  cout << "Cycles done        : " << sc_simulation_time () << endl;
-  cout << "Performance        : " << sc_simulation_time () / t << endl;
-  printf("\nPress <RETURN> to exit simulation.");
-  char buf_ret[2];
-  cin.getline(buf_ret,1);
-  return EXIT_SUCCESS;
-}
Index: sources/test_regression/28102005/Makefile
===================================================================
--- sources/test_regression/28102005/Makefile	(revision 54)
+++ sources/test_regression/28102005/Makefile	(revision 55)
@@ -1,54 +1,14 @@
+
 include ../env.mk
+include ../Makefile.common
 
-SYSTEM    = system.cpp
-EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
-EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
-EXE       = ${EXE_SCASS} ${EXE_SC}
-LOG       = $(SYSTEM:.cpp=.log)
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+test : all
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) > $(LOG_SCASS) 2> /dev/null
+	@./$(EXE_SC) > $(LOG_SC) 2> /dev/null
+	@if diff $(LOG_SC) $(LOG_SCASS) > /dev/null ; then \
+    echo "OK" ; \
+    else echo "KO" ; \
+    fi ;
 
-.SECONDARY:
 
-main : $(EXE) 
-
-test : main
-	@./system_systemcass.x || eval ${failcom}
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -Wno-deprecated -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -Wno-deprecated -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out *~
-	-rm -f ${LOG}
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f module_order.gif signal_graph.gif
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf system_systemcass.x.vcd system_systemc.x.vcd
-	
Index: sources/test_regression/28102005/system.cpp
===================================================================
--- sources/test_regression/28102005/system.cpp	(revision 54)
+++ sources/test_regression/28102005/system.cpp	(revision 55)
@@ -1,85 +1,82 @@
-#include <systemc.h>
+
 #include <iostream>
 #include <cstring>
 
-#define ASSERT(x) \
-  { errnum++; \
-    if (!(x)) \
-    { \
-    cerr << "ASSERT : " #x "\n"; \
-    exit (errnum); \
-    } \
-  }
-
-#ifdef DEBUG
-#define CERR(x) \
-  { cerr << "" #x " = " << x << "\n"; }
-#else
-#define CERR(x)
-#endif
+#include "systemc.h"
+#include "test.h"
 
 
 using namespace std;
 
-static int errnum = 0;
 
-void
-check_time (int i)
-{
-  const sc_time &t = sc_time_stamp ();
-  CERR(i);
-  CERR(t.to_double());
+void check_time(int i) {
+    const sc_time & t = sc_time_stamp();
+    cout << i << endl;
+
 #ifdef SYSTEMCASS_SPECIFIC
-  ASSERT((int) (t.to_double ()) == i);
+    ASSERT((int) (t.to_double()) == i);
 #else
-  ASSERT((int) (t.to_double ()) == i * 1000);
+    ASSERT((int) (t.to_double()) == i * 1000);
 #endif
-  CERR(t.to_seconds ());
-	double seconds = t.to_seconds()*1000000000;
-  CERR(seconds);
-  ASSERT(((int)seconds) == i);
-  char s[256];
-  const char *unit;
+
+    cout << t.to_seconds() << endl;
+    double seconds = t.to_seconds() * 1000000000;
+    cout << seconds << endl;
+    ASSERT(((int) seconds) == i);
+    char s[256];
+    const char * unit;
+
 #ifdef SYSTEMCASS_SPECIFIC
-  unit = "NS";
+    unit = "NS";
 #else
-  if (i == 0)
-    unit = "s";
-  else if (i < 1000)
-    unit = "ns";
-  else
-    unit = "ns";
+    if (i == 0) {
+        unit = "s";
+    }
+    else {
+        unit = "ns";
+    }
 #endif
-  sprintf (s, "%d %s", i,unit);
-  CERR(s);
-  CERR(t.to_string());
-  ASSERT(strcmp (t.to_string ().c_str(), s)== 0); 
+
+    sprintf(s, "%d %s", i, unit);
+
+    ASSERT(strcmp(t.to_string().c_str(), s) == 0); 
 }
 
-int
-sc_main (int argc, char ** argv)
-{
-  sc_clock clk ("clock");
 
-  check_time (0);
-  sc_start (0);
+int sc_main (int argc, char ** argv) {
+    sc_clock clk("clock");
 
-  check_time (0);
-  sc_start (1);
-  check_time (1);
+    check_time(0);
+    sc_start(sc_time(0, sc_core::SC_NS));
 
-  sc_start (15);
-  check_time (16);
+    check_time(0);
+    sc_start(sc_time(1, sc_core::SC_NS));
+    check_time(1);
 
-  sc_start (7);
-  check_time (23);
+    sc_start(sc_time(15, sc_core::SC_NS));
+    check_time(16);
 
-  sc_start (100);
-  check_time (123);
+    sc_start(sc_time(7, sc_core::SC_NS));
+    check_time(23);
 
-  sc_start (1000);
-  check_time (1123);
-  cerr << "Test OK.\n";
-  return 0;
+    sc_start(sc_time(100, sc_core::SC_NS));
+    check_time(123);
+
+    sc_start(sc_time(1000, sc_core::SC_NS));
+    check_time(1123);
+
+    return 0;
 }
 
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/29032005/Makefile
===================================================================
--- sources/test_regression/29032005/Makefile	(revision 54)
+++ sources/test_regression/29032005/Makefile	(revision 55)
@@ -1,66 +1,26 @@
+
 include ../env.mk
+SIGNAL_GRAPH = signal_graph.dot
+PROCESS_ORDER = process_order.dot
+MODULE_GRAPH = module_graph.dot
+PORT_GRAPH = port_graph.dot
+SIGNAL_ORDER = signal_order.txt
+ERASE = $(SIGNAL_GRAPH) $(PROCESS_ORDER) $(SIGNAL_ORDER) $(MODULE_GRAPH) $(PORT_GRAPH)
+include ../Makefile.common
 
-EXE_SCASS = system_systemcass.x
-EXE_SC    = system_systemc.x
-EXE       = ${EXE_SCASS} ${EXE_SC}
-OBJECTS   = $(EXE:.x=.o)
-LINKS     = $(OBJECTS:.o=.cpp)
+SIGNAL_GRAPH_REF = signal_graph_ref.dot
+PROCESS_ORDER_REF = process_order_ref.dot
+PORT_GRAPH_REF = port_graph_ref.dot
+SIGNAL_ORDER_REF = signal_order_ref.txt
 
-.SECONDARY:
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ;
+	@./$(EXE_SCASS) --p --t --k 2> /dev/null || res=1 ; \
+	(tail -n +3 $(SIGNAL_GRAPH) | diff $(SIGNAL_GRAPH_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PROCESS_ORDER) | diff $(PROCESS_ORDER_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PORT_GRAPH) | diff $(PORT_GRAPH_REF) -) > /dev/null || res=1 ; \
+	diff $(SIGNAL_ORDER_REF) $(SIGNAL_ORDER) > /dev/null || res=1 ; \
+	if [ x"$$res" = x ] ; then echo "OK" ; else echo "KO" ; fi ;
+	
 
-main : $(EXE) 
 
-test : ${EXE}
-	@for i in ${EXE_SCASS} ; do \
-  ./$$i --p --t --k; \
-  (tail -n +3 port_graph.dot | diff port_graph_reference.dot -) || eval ${failcom} ; \
-  ((tail -n +3 signal_graph.dot | diff signal_graph_reference.dot -) \
-  || (tail -n +3 signal_graph.dot | diff signal_graph_reference2.dot -) \
-  || (tail -n +3 signal_graph.dot | diff signal_graph_reference3.dot -)) \
-  || eval ${failcom} ; \
-  ((tail -n +3 process_order.dot | diff process_order_reference.dot -) \
-  || (tail -n +3 process_order.dot | diff process_order_reference2.dot -)  \
-  || (tail -n +3 process_order.dot | diff process_order_reference3.dot -)) \
-  || eval ${failcom} ; \
-  (diff signal_order_reference.txt signal_order.txt) \
-  || (diff signal_order_reference2.txt signal_order.txt) \
-  || (diff signal_order_reference3.txt signal_order.txt) \
-  || eval ${failcom} ; \
-  done
-	@echo Test OK.
-
-%.gif : %.dot
-	dot -Tgif -o $*.gif $*.dot
-
-%_systemc.x : %_systemc.o $(SYSTEMC_LIB)
-	$(CXX) -o $@ $*_systemc.o $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
-
-%_systemcass.x : %_systemcass.o  $(SYSTEMCASS_LIB)
-	$(CXX) -o $@ $*_systemcass.o $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
-
--include Makefile.deps
-
-%_systemc.cpp : %.cpp 
-	ln -s $*.cpp $*_systemc.cpp
-
-%_systemcass.cpp : %.cpp 
-	ln -s $*.cpp $*_systemcass.cpp
-
-%_systemc.o : %_systemc.cpp 
-	$(CXX) $(CFLAGS_SYSTEMC) -MM $*_systemc.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMC) -c $*_systemc.cpp -o $*_systemc.o
-
-%_systemcass.o : %_systemcass.cpp
-	$(CXX) $(CFLAGS_SYSTEMCASS) -MM $*_systemcass.cpp >> Makefile.deps
-	$(CXX) $(CFLAGS_SYSTEMCASS) -c $*_systemcass.cpp -o $*_systemcass.o
-
-clean :
-	rm -f Makefile.deps
-	-rm -f *.o gmon.out
-	-rm -f signal_order.txt module_order.dot signal_graph.dot
-	-rm -f $(EXE) $(OBJECTS) 
-	-for i in $(LINKS) ; do unlink $$i ; done 2> /dev/null
-	-rm -f core*
-	-rm -rf generated_by_systemcass
-	-rm -rf tracesystem_systemcass.x.vcd tracesystem_systemc.x.vcd
-	
Index: sources/test_regression/29032005/chrono.h
===================================================================
--- sources/test_regression/29032005/chrono.h	(revision 54)
+++ 	(revision )
@@ -1,39 +1,0 @@
-#ifndef __CHRONO_H__
-#define __CHRONO_H__
-
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <unistd.h>
-
-struct chrono_t {
-	unsigned int sec;
-	chrono_t () 
-	{
-		sec = 0;
-	}
-	void start () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec;
-	}
-	void cont () 
-	{
-		struct rusage usage;
-		getrusage(RUSAGE_SELF, &usage);
-		sec = usage.ru_utime.tv_sec - sec;
-	}
-	void stop ()
-	{
-		cont ();
-	}
-	operator unsigned int () const
-	{ return sec; }	
-	friend std::ostream& operator << (std::ostream& o, const chrono_t &c)
-	{
-		return o << c.sec << "sec";
-	}
-};
-
-#endif
-
Index: sources/test_regression/29032005/signal_order_ref.txt
===================================================================
--- sources/test_regression/29032005/signal_order_ref.txt	(revision 55)
+++ sources/test_regression/29032005/signal_order_ref.txt	(revision 55)
@@ -0,0 +1,15 @@
+s04 
+s03 
+s02 
+s08 
+s07 
+s06 
+s01 
+s05 
+s15 
+s11 
+s10 
+s09 
+s13 
+s12 
+s14 
Index: sources/test_regression/29032005/signal_order_reference.txt
===================================================================
--- sources/test_regression/29032005/signal_order_reference.txt	(revision 54)
+++ 	(revision )
@@ -1,15 +1,0 @@
-s04 
-s03 
-s02 
-s08 
-s07 
-s06 
-s01 
-s05 
-s11 
-s10 
-s09 
-s13 
-s12 
-s14 
-s15 
Index: sources/test_regression/29032005/signal_order_reference2.txt
===================================================================
--- sources/test_regression/29032005/signal_order_reference2.txt	(revision 54)
+++ 	(revision )
@@ -1,15 +1,0 @@
-s13 
-s11 
-s10 
-s09 
-s14 
-s05 
-s15 
-s04 
-s03 
-s02 
-s08 
-s07 
-s06 
-s01 
-s12 
Index: sources/test_regression/29032005/signal_order_reference3.txt
===================================================================
--- sources/test_regression/29032005/signal_order_reference3.txt	(revision 54)
+++ 	(revision )
@@ -1,15 +1,0 @@
-s04 
-s03 
-s02 
-s08 
-s07 
-s06 
-s01 
-s05 
-s15 
-s11 
-s10 
-s09 
-s13 
-s12 
-s14 
Index: sources/test_regression/29032005/system.cpp
===================================================================
--- sources/test_regression/29032005/system.cpp	(revision 54)
+++ sources/test_regression/29032005/system.cpp	(revision 55)
@@ -1,299 +1,307 @@
-#include <systemc.h>
+
 #include <signal.h>
-#include "chrono.h"
+
+#include "systemc.h"
+#include "test.h"
+
 
 using namespace std;
-	
+
 struct M_0i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_out<bool>                    o1;
-
-	void eval () {
-    o1 = (rand()%2) == 0;
-	}
-
-	SC_CTOR (M_0i1o) : clk ("clk"), o1("o1") {
-		SC_METHOD(eval);
-		sensitive << clk.neg();
-#ifdef SYSTEMCASS_SPECIFIC
-		//o1(); /* no need */
-#endif
-	};
+    sc_in_clk clk;
+    sc_out<bool> o1;
+
+    void eval() {
+        o1 = (rand() % 2) == 0;
+    }
+
+    SC_CTOR (M_0i1o) : clk("clk"), o1("o1") {
+        SC_METHOD(eval);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
 };
 
 struct M_1i1o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_out<bool>                    o1;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-
-	SC_CTOR (M_1i1o) : clk ("clk"), i1 ("i1"), o1("o1") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-	};
-};
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_out<bool> o1;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+
+    SC_CTOR (M_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+    }
+
+};
+
 
 
 struct M_2i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-
-	SC_CTOR (M_2i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-	};
-};
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    SC_CTOR (M_2i2o) : clk("clk"), i1("i1"), i2("i2"), o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+    }
+
+};
+
 
 struct M_4i2o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-  void eval3 () {
-    cout << i3 << i4 << "\n";
-  }
-
-	SC_CTOR (M_4i2o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"),
-i3 ("i3"), i4 ("i4") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-		SC_METHOD(eval3);
-		sensitive << clk.pos();
-		// sensitive << i3 << i4;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-	};
-};
+    sc_in_clk clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_in<bool>  i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    void eval3() {
+        cout << i3 << i4 << "\n";
+    }
+
+    SC_CTOR (M_4i2o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"),
+    o1("o1"), o2("o2") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+        SC_METHOD(eval3);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+
+};
+
 
 struct M_4i3o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-	sc_in<bool>                     i2;
-	sc_in<bool>                     i3;
-	sc_in<bool>                     i4;
-	sc_out<bool>                    o1;
-	sc_out<bool>                    o2;
-	sc_out<bool>                    o3;
-
-	void eval1 () {
-    o1 = ~i1;
-	}
-	void eval2 () {
-    o2 = ~i2;
-	}
-  void eval3 () {
-    o3 = ~i3;
-  }
-  void eval4 () {
-    cout << i4 << "\n";
-  }
-
-	SC_CTOR (M_4i3o) : clk ("clk"), i1 ("i1"), o1("o1"), i2 ("i2"), o2 ("o2"), i3 ("i3"), i4 ("i4"), o3 ("o3") {
-		SC_METHOD(eval1);
-		sensitive << clk.neg();
-		sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		o1(i1);
-#endif
-		SC_METHOD(eval4);
-		sensitive << clk.pos();
-		// sensitive << i4;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-		SC_METHOD(eval3);
-		sensitive << clk.neg();
-		sensitive << i3;
-#ifdef SYSTEMCASS_SPECIFIC
-		o3(i3);
-#endif
-		SC_METHOD(eval2);
-		sensitive << clk.neg();
-		sensitive << i2;
-#ifdef SYSTEMCASS_SPECIFIC
-		o2(i2);
-#endif
-	};
-};
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_in<bool>  i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+    sc_out<bool> o3;
+
+    void eval1() {
+        o1 = ~i1;
+    }
+    
+    void eval2() {
+        o2 = ~i2;
+    }
+
+    void eval3() {
+        o3 = ~i3;
+    }
+
+    void eval4() {
+        cout << i4 << "\n";
+    }
+
+    SC_CTOR (M_4i3o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"), o1("o1"), o2("o2"), o3("o3") {
+        SC_METHOD(eval1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+        SC_METHOD(eval4);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(eval3);
+        sensitive << clk.neg();
+        sensitive << i3;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o3(i3);
+#endif
+        SC_METHOD(eval2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+    }
+};
+
 
 struct M_1i0o : sc_module {
-	sc_in_clk                       clk;
-	sc_in<bool>                     i1;
-
-	void eval1 () {
-    cout << i1.read() << "\n";
-	}
-
-	SC_CTOR (M_1i0o) : clk ("clk"), i1 ("i1") {
-		SC_METHOD(eval1);
-		sensitive << clk.pos();
-		// sensitive << i1;
-#ifdef SYSTEMCASS_SPECIFIC
-		// No port dependency
-#endif
-	};
-};
-
-int sc_main (int argc, char *argv[])
-{
-	sc_clock                     signal_clk("my_clock",1, 0.5);
-	sc_signal<bool>              s1 ("s01"),
-                               s2 ("s02"),
-                               s3 ("s03"),
-                               s4 ("s04"),
-                               s5 ("s05"),
-                               s6 ("s06"),
-                               s7 ("s07"),
-                               s8 ("s08"),
-                               s9 ("s09"),
-                               s10("s10"),
-                               s11("s11"),
-                               s12("s12"),
-                               s13("s13"),
-                               s14("s14"),
-                               s15("s15");
-                               
-
-	M_0i1o      a("a");
-	M_4i2o      b("b");
-	M_1i1o      c("c");
-	M_4i3o      d("d");
-	M_1i1o      e("e");
-	M_1i1o      f("f");
-	M_2i2o      g("g");
-	M_1i1o      h("h");
-	M_1i0o      i("i");
-	M_0i1o      j("j");
-	M_0i1o      k("k");
-	M_0i1o      l("l");
-	
-	a.clk         (signal_clk);
-	b.clk         (signal_clk);
-	c.clk         (signal_clk);
-	d.clk         (signal_clk);
-	e.clk         (signal_clk);
-	f.clk         (signal_clk);
-	g.clk         (signal_clk);
-	h.clk         (signal_clk);
-	i.clk         (signal_clk);
-	j.clk         (signal_clk);
-	k.clk         (signal_clk);
-	l.clk         (signal_clk);
-	
-	a.o1          (s1);
-	b.i1          (s1);
-		
-	b.o2          (s2);
-	c.i1          (s2);
-
-	c.o1          (s3);
-	d.i1          (s3);
-	
-	d.o1          (s4);
-	b.i3          (s4);
-	
-	d.o2          (s5);
-	b.i4          (s5);
-	
-	b.o1          (s6);
-	e.i1          (s6);
-	
-	e.o1          (s7);
-	f.i1          (s7);
-	
-	f.o1          (s8);
-	b.i2          (s8);
-	
-	d.o3          (s9);
-	g.i1          (s9);
-	
-	g.o1          (s10);
-	h.i1          (s10);
-	
-	h.o1          (s11);
-	d.i4          (s11);
-	
-	j.o1          (s12);
-	g.i2          (s12);
-	
-	g.o2          (s13);
-	i.i1          (s13);	
-	
-	l.o1          (s14);
-	d.i3          (s14);
-	
-	k.o1          (s15);
-	d.i2          (s15);
-
-	// Init & run
-	sc_initialize ();
-
-  if (argc == 1)
-  {
-    cout << "Usage :\n" << argv[0] << " [#cycles]\n";
+    sc_in_clk   clk;
+    sc_in<bool> i1;
+
+    void eval1() {
+        cout << i1.read() << "\n";
+    }
+
+    SC_CTOR (M_1i0o) : clk("clk"), i1("i1") {
+        SC_METHOD(eval1);
+        sensitive << clk.pos();
+        dont_initialize();
+    }
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock",1, 0.5);
+    sc_signal<bool> s1("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M_0i1o a("a");
+    M_4i2o b("b");
+    M_1i1o c("c");
+    M_4i3o d("d");
+    M_1i1o e("e");
+    M_1i1o f("f");
+    M_2i2o g("g");
+    M_1i1o h("h");
+    M_1i0o i("i");
+    M_0i1o j("j");
+    M_0i1o k("k");
+    M_0i1o l("l");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+    e.clk(signal_clk);
+    f.clk(signal_clk);
+    g.clk(signal_clk);
+    h.clk(signal_clk);
+    i.clk(signal_clk);
+    j.clk(signal_clk);
+    k.clk(signal_clk);
+    l.clk(signal_clk);
+
+    a.o1(s1);
+    b.i1(s1);
+
+    b.o2(s2);
+    c.i1(s2);
+
+    c.o1(s3);
+    d.i1(s3);
+
+    d.o1(s4);
+    b.i3(s4);
+
+    d.o2(s5);
+    b.i4(s5);
+
+    b.o1(s6);
+    e.i1(s6);
+
+    e.o1(s7);
+    f.i1(s7);
+
+    f.o1(s8);
+    b.i2(s8);
+
+    d.o3(s9);
+    g.i1(s9);
+
+    g.o1(s10);
+    h.i1(s10);
+
+    h.o1(s11);
+    d.i4(s11);
+
+    j.o1(s12);
+    g.i2(s12);
+
+    g.o2(s13);
+    i.i1(s13);	
+
+    l.o1(s14);
+    d.i3(s14);
+
+    k.o1(s15);
+    d.i2(s15);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
     return EXIT_SUCCESS;
-  }
-
-	chrono_t chrono;
-	chrono.start ();
-
-  sc_start (atoi(argv[1]));
-
-	chrono.stop ();
-	unsigned int t = chrono;
-	cout << "Time elapsed (sec) : " << t << endl;
-	cout << "Cycles done        : " << sc_simulation_time () << endl;
-	cout << "Performance        : " << sc_simulation_time () / t << endl;
-	printf("\nPress <RETURN> to exit simulation.");
-	char buf_ret[2];
-	cin.getline(buf_ret,1);
-	return EXIT_SUCCESS;
 }
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/30032005a/Makefile
===================================================================
--- sources/test_regression/30032005a/Makefile	(revision 55)
+++ sources/test_regression/30032005a/Makefile	(revision 55)
@@ -0,0 +1,27 @@
+
+include ../env.mk
+SIGNAL_GRAPH = signal_graph.dot
+PROCESS_ORDER = process_order.dot
+MODULE_GRAPH = module_graph.dot
+PORT_GRAPH = port_graph.dot
+SIGNAL_ORDER = signal_order.txt
+ERASE = $(SIGNAL_GRAPH) $(PROCESS_ORDER) $(SIGNAL_ORDER) $(MODULE_GRAPH) $(PORT_GRAPH)
+include ../Makefile.common
+
+SIGNAL_GRAPH_REF = signal_graph_ref.dot
+PROCESS_ORDER_REF = process_order_ref.dot
+SIGNAL_ORDER_REF = signal_order_ref.txt
+MODULE_GRAPH_REF = module_graph_ref.dot
+
+test : $(EXE_SCASS)
+	@echo -ne "| Testing $$(basename $$(pwd)): " ; \
+   ./$(EXE_SCASS) --t 2> /dev/null || res=1 ; \
+	(tail -n +3 $(MODULE_GRAPH) | diff $(MODULE_GRAPH_REF) -) > /dev/null || res=1 ; \
+   ./$(EXE_SCASS) --p --t 2> /dev/null || res=1 ; \
+	(tail -n +3 $(SIGNAL_GRAPH) | diff $(SIGNAL_GRAPH_REF) -) > /dev/null || res=1 ; \
+	(tail -n +3 $(PROCESS_ORDER) | diff $(PROCESS_ORDER_REF) -) > /dev/null || res=1 ; \
+	diff $(SIGNAL_ORDER_REF) $(SIGNAL_ORDER) > /dev/null || res=1 ; \
+   if [ x"$$res" = x ] ; then echo "OK" ; else echo "KO" ; fi ;
+	
+
+
Index: sources/test_regression/30032005a/signal_order_ref.txt
===================================================================
--- sources/test_regression/30032005a/signal_order_ref.txt	(revision 55)
+++ sources/test_regression/30032005a/signal_order_ref.txt	(revision 55)
@@ -0,0 +1,6 @@
+s03 
+s02 
+s01 
+s06 
+s05 
+s04 
Index: sources/test_regression/30032005a/system.cpp
===================================================================
--- sources/test_regression/30032005a/system.cpp	(revision 55)
+++ sources/test_regression/30032005a/system.cpp	(revision 55)
@@ -0,0 +1,176 @@
+#include <signal.h>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+struct M1_3i3o : sc_module {
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+    sc_out<bool> o3;
+
+    sc_signal<bool> reg;
+
+    void eval_mealy1() {
+        o1 = ~i1;
+    }
+
+    void eval_mealy2() {
+        o2 = ~i2;
+    }
+
+    void tr_moore() {
+        reg = i3;
+    }
+
+    void gen_moore() {
+        o3 = ~reg;
+    }
+
+    SC_CTOR (M1_3i3o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), o1("o1"),
+    o2("o2"), o3("o3") {
+        SC_METHOD(eval_mealy1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+
+        SC_METHOD(eval_mealy2);
+        sensitive << clk.neg();
+        sensitive << i2;
+        dont_initialize();
+
+#ifdef SYSTEMCASS_SPECIFIC
+        o2(i2);
+#endif
+        SC_METHOD(tr_moore);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
+};
+
+
+struct M2_4i4o : sc_module {
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_in<bool>  i4;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+    sc_out<bool> o3;
+    sc_out<bool> o4;
+    sc_signal<sc_uint<2> > reg;
+
+    void tr_moore() {
+        reg = ((i1.read() & i3.read()) ? 2 : 0) + (i2.read() | i4.read());
+    }
+
+    void gen_moore() {
+        o1 = reg.read() & 1;
+        o2 = reg.read() & 2;
+        o3 = ~(reg.read() & 1);
+        o4 = ~(reg.read() & 2);
+    }
+
+
+    SC_CTOR (M2_4i4o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), i4("i4"), o1("o1"), o2("o2"), o3("o3"), o4("o4")  {
+        SC_METHOD(tr_moore);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore);                     
+        sensitive << clk.neg();                   
+        dont_initialize();
+    }                                           
+
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<bool> s1 ("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M1_3i3o a("a");
+    M1_3i3o b("b");
+    M2_4i4o Moore("Moore");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    Moore.clk(signal_clk);
+
+    Moore.o1(s1);
+    a.i1(s1);
+
+    a.o1(s2);
+    b.i1(s2);
+
+    b.o1(s3);
+    Moore.i1(s3);
+
+    Moore.o2(s4);
+    b.i2(s4);
+
+    b.o2(s5);
+    a.i2(s5);
+
+    a.o2(s6);
+    Moore.i2(s6);
+
+    Moore.o3(s7);
+    b.i3(s7);
+
+    Moore.o4(s8);
+    a.i3(s8);
+
+    b.o3(s9);
+    Moore.i4(s9);
+
+    a.o3(s10);
+    Moore.i3(s10);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
+}
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/30032005b/Makefile
===================================================================
--- sources/test_regression/30032005b/Makefile	(revision 55)
+++ sources/test_regression/30032005b/Makefile	(revision 55)
@@ -0,0 +1,3 @@
+
+include ../30032005a/Makefile
+
Index: sources/test_regression/30032005b/signal_order_ref.txt
===================================================================
--- sources/test_regression/30032005b/signal_order_ref.txt	(revision 55)
+++ sources/test_regression/30032005b/signal_order_ref.txt	(revision 55)
@@ -0,0 +1,8 @@
+s04 
+s03 
+s06 
+s05 
+s02 
+s01 
+s08 
+s07 
Index: sources/test_regression/30032005b/system.cpp
===================================================================
--- sources/test_regression/30032005b/system.cpp	(revision 55)
+++ sources/test_regression/30032005b/system.cpp	(revision 55)
@@ -0,0 +1,132 @@
+
+#include <signal.h>
+
+#include "systemc.h"
+#include "test.h"
+
+using namespace std;
+
+struct M1_1i1o : sc_module {
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_out<bool> o1;
+
+    void eval_mealy1() {
+        o1 = ~i1;
+    };
+
+    SC_CTOR (M1_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(eval_mealy1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+    }
+
+};
+
+
+struct M2_1i1o : sc_module {
+    sc_in_clk clk;
+    sc_in<bool> i1;
+    sc_out<bool> o1;
+
+    sc_signal<bool> reg;
+
+    void tr_moore1() {
+        reg = ~i1;
+    }
+
+    void gen_moore1() {
+        o1 = ~reg;
+    }
+
+    SC_CTOR (M2_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(tr_moore1);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore1);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock");
+    sc_signal<bool> s1 ("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M1_1i1o a("a");
+    M1_1i1o b("b");
+    M1_1i1o c("c");
+    M1_1i1o d("d");
+    M1_1i1o e("e");
+    M2_1i1o f("f");
+    M1_1i1o g("g");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+    e.clk(signal_clk);
+    f.clk(signal_clk);
+    g.clk(signal_clk);
+
+    a.i1(s1);
+
+    a.o1(s2);
+    b.i1(s2);
+    d.i1(s2);
+
+    b.o1(s3);
+    c.i1(s3);
+
+    c.o1(s4);
+
+    d.o1(s5);
+    e.i1(s5);
+
+    e.o1(s6);
+    f.i1(s6);
+
+    f.o1(s7);
+    g.i1(s7);
+
+    g.o1(s8);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/30032005c/Makefile
===================================================================
--- sources/test_regression/30032005c/Makefile	(revision 55)
+++ sources/test_regression/30032005c/Makefile	(revision 55)
@@ -0,0 +1,3 @@
+
+include ../30032005a/Makefile
+
Index: sources/test_regression/30032005c/signal_order_ref.txt
===================================================================
--- sources/test_regression/30032005c/signal_order_ref.txt	(revision 55)
+++ sources/test_regression/30032005c/signal_order_ref.txt	(revision 55)
@@ -0,0 +1,10 @@
+s04 
+s03 
+s02 
+s01 
+s07 
+s10 
+s09 
+s06 
+s05 
+s08 
Index: sources/test_regression/30032005c/system.cpp
===================================================================
--- sources/test_regression/30032005c/system.cpp	(revision 55)
+++ sources/test_regression/30032005c/system.cpp	(revision 55)
@@ -0,0 +1,166 @@
+
+#include <signal.h>
+
+#include "systemc.h"
+#include "test.h"
+
+
+using namespace std;
+
+
+struct M1_1i1o : sc_module {
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_out<bool> o1;
+
+    void eval_mealy1() {
+        o1 = ~i1;
+    }
+
+    SC_CTOR (M1_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(eval_mealy1);
+        sensitive << clk.neg();
+        sensitive << i1;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+#endif
+    }
+
+};
+
+
+struct M1_3i2o : sc_module {
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_in<bool>  i2;
+    sc_in<bool>  i3;
+    sc_out<bool> o1;
+    sc_out<bool> o2;
+
+    void eval_mealy1() {
+        o1 = ~i1 & i2;
+        o2 = ~i2 & i3;
+    }
+
+
+    SC_CTOR (M1_3i2o) : clk("clk"), i1("i1"), i2("i2"), i3("i3"), o1("o1"), o2("o2") {
+        SC_METHOD(eval_mealy1);
+        sensitive << clk.neg();
+        sensitive << i1 << i2;
+        sensitive << i3;
+        dont_initialize();
+#ifdef SYSTEMCASS_SPECIFIC
+        o1(i1);
+        o1(i2);
+        o2(i2);
+        o2(i3);
+#endif
+    }
+
+};
+
+
+struct M2_1i1o : sc_module {
+    sc_in_clk    clk;
+    sc_in<bool>  i1;
+    sc_out<bool> o1;
+
+    sc_signal<bool> reg;
+
+    void tr_moore1() {
+        reg = ~i1;
+    }
+
+    void gen_moore1() {
+        o1 = ~reg;
+    };
+
+    SC_CTOR (M2_1i1o) : clk("clk"), i1("i1"), o1("o1") {
+        SC_METHOD(tr_moore1);
+        sensitive << clk.pos();
+        dont_initialize();
+
+        SC_METHOD(gen_moore1);
+        sensitive << clk.neg();
+        dont_initialize();
+    }
+
+};
+
+
+int sc_main (int argc, char * argv[]) {
+    sc_clock signal_clk("my_clock",1, 0.5);
+    sc_signal<bool> s1 ("s01"),
+        s2 ("s02"),
+        s3 ("s03"),
+        s4 ("s04"),
+        s5 ("s05"),
+        s6 ("s06"),
+        s7 ("s07"),
+        s8 ("s08"),
+        s9 ("s09"),
+        s10("s10"),
+        s11("s11"),
+        s12("s12"),
+        s13("s13"),
+        s14("s14"),
+        s15("s15");
+
+
+    M1_3i2o a("a");
+    M1_1i1o b("b");
+    M1_3i2o c("c");
+    M1_1i1o d("d");
+    M1_1i1o e("e");
+
+    a.clk(signal_clk);
+    b.clk(signal_clk);
+    c.clk(signal_clk);
+    d.clk(signal_clk);
+    e.clk(signal_clk);
+
+    a.i1(s1);
+
+    a.o1(s2);
+    b.i1(s2);
+
+    b.o1(s3);
+    c.i1(s3);
+
+    c.o1(s4);
+
+    a.i2(s5);
+
+    a.o2(s6);
+    c.i2(s6);
+    d.i1(s6);
+
+    c.o2(s7);
+
+    a.i3(s8);
+
+    d.o1(s9);
+    e.i1(s9);
+
+    e.o1(s10);
+    c.i3(s10);
+
+    // Init & run
+    sc_start(sc_time(0, sc_core::SC_NS));
+
+    return EXIT_SUCCESS;
+}
+
+
+/*
+# Local Variables:
+# tab-width: 4;
+# c-basic-offset: 4;
+# c-file-offsets:((innamespace . 0)(inline-open . 0));
+# indent-tabs-mode: nil;
+# End:
+#
+# vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4
+*/
+
Index: sources/test_regression/Makefile
===================================================================
--- sources/test_regression/Makefile	(revision 54)
+++ sources/test_regression/Makefile	(revision 55)
@@ -52,48 +52,61 @@
 
 DIR = \
-      17032005 \
-      25032005 \
-      29032005 \
-      30032005 \
-      19042005 \
-      04052005 \
-      07052005 \
-      21062005 \
-      16062005 \
-      05092005 \
-      08092005 \
-      09092005 \
-      09092005b\
-      09092005c\
-      14092005 \
-      15092005 \
-      28102005 \
-      16112005 \
-      16122005 \
-      02052006 \
-      07122006 \
-      20122006 \
-      16022007 \
-      15042009 \
-      ${SOCVIEW_TEST} \
-#
+      02052006  \
+      04052005  \
+      05092005  \
+      07052005  \
+      07122006a \
+      07122006b \
+      08092005  \
+      09092005a \
+      09092005b \
+      09092005c \
+		11062007  \
+      14092005  \
+      15042009a \
+      15042009b \
+      15042009c \
+		15062006  \
+      15092005a \
+      15092005b \
+      15092005c \
+      15092005d \
+		17022006  \
+      17032005  \
+      20122006  \
+      21062005  \
+		24082009  \
+      25032005  \
+      28102005  \
+      29032005  \
+      30032005a \
+      30032005b \
+      30032005c \
+      16022007  \
+      16062005a \
+      16062005b \
+      16112005a \
+      16112005b \
+      16112005c \
+      16122005  \
+      19042005 
+      #$(SOCVIEW_TEST) \
 
-failcom   = 'exit 1'
 
-compile : ${DIR}
-	@for i in ${DIR} ; do \
-    echo Testing $$i... ; \
-    ($(MAKE) -C $$i) || eval ${failcom} ; \
-  done;
+all: compile
 
-test : ${DIR}
-	@for i in ${DIR} ; do \
-    echo Testing $$i... ; \
-    ($(MAKE) -C $$i test) || eval ${failcom} ; ($(MAKE) -C $$i clean) ; \
-  done;
+compile :
+	@for i in $(DIR) ; do \
+   ($(MAKE) --no-print-directory -C $$i) ; \
+   done;
+
+test : $(DIR)
+	@for i in $(DIR) ; do \
+   ($(MAKE) --no-print-directory -C $$i test | grep "Testing") ; \
+   done;
 	
 clean :
-	@for i in ${DIR} ; do \
-    echo Testing $$i... ; \
-    ($(MAKE) -C $$i clean) || eval ${failcom} ; \
-  done;
+	@for i in $(DIR) ; do \
+   ($(MAKE) --no-print-directory -C $$i clean) ; \
+   done;
+
Index: sources/test_regression/Makefile.common
===================================================================
--- sources/test_regression/Makefile.common	(revision 55)
+++ sources/test_regression/Makefile.common	(revision 55)
@@ -0,0 +1,50 @@
+
+SYSTEM    = system.cpp
+EXE_SCASS = $(SYSTEM:.cpp=_systemcass.x)
+EXE_SC    = $(SYSTEM:.cpp=_systemc.x)
+OBJ_SC    = $(EXE_SC:.x=.o) $(SRC:.cpp=_systemc.o)
+OBJ_SCASS = $(EXE_SCASS:.x=.o) $(SRC:.cpp=_systemcass.o)
+EXE       = $(EXE_SCASS) $(EXE_SC)
+LOG_SC    = $(EXE_SC:.x=.log)
+LOG_SCASS = $(EXE_SCASS:.x=.log)
+LOG       = $(LOG_SC) $(LOG_SCASS)
+OBJECTS   = $(OBJ_SC) $(OBJ_SCASS)
+
+OK = \033[00;32mOK\033[0m
+KO = \033[00;31mKO\033[0m
+
+
+all: msg $(EXE)
+
+msg:
+	@echo "| Compiling $$(basename $$(pwd))"
+
+
+$(EXE_SC): $(OBJ_SC) $(SYSTEMC_LIB)
+	@echo "| $@"
+	@$(CXX) -o $@ $(OBJ_SC) $(LFLAGS_SYSTEMC) 2>&1 | $(CPPFILT)
+
+$(EXE_SCASS): $(OBJ_SCASS) $(SYSTEMCASS_LIB)
+	@echo "| $@"
+	@$(CXX) -o $@ $(OBJ_SCASS) $(LFLAGS_SYSTEMCASS) 2>&1 | $(CPPFILT)
+
+-include Makefile.deps
+
+%_systemc.o: %.cpp 
+	@echo "| $@"
+	@$(CXX) $(CFLAGS_SYSTEMC) -MM $< > Makefile.deps
+	@$(CXX) $(CFLAGS_SYSTEMC) -c $< -o $@
+
+%_systemcass.o: %.cpp
+	@echo "| $@"
+	@$(CXX) $(CFLAGS_SYSTEMCASS) -MM $< > Makefile.deps
+	@$(CXX) $(CFLAGS_SYSTEMCASS) -c $< -o $@
+
+clean :
+	@echo "| Cleaning $$(basename $$(pwd))"
+	@rm -f Makefile.deps
+	@rm -f *.o
+	@rm -f $(LOG)
+	@rm -f methodprocess_graph.dot reduced_signal_graph.dot signal_order.txt signal_graph.dot port_graph.dot trace_file.vcd
+	@rm -f $(EXE) $(OBJECTS) $(ERASE)
+	
Index: sources/test_regression/env.mk
===================================================================
--- sources/test_regression/env.mk	(revision 54)
+++ sources/test_regression/env.mk	(revision 55)
@@ -1,5 +1,7 @@
-#TARGET_ARCH  		=Linux.SLA4x
-TARGET_ARCH  		= linux
-#TARGET_PLATFORM  =i386
+
+SYSTEMCASS = $(HOME)/src/systemcass/sandbox_test/objdir/
+SYSTEMC = /users/outil/soc/systemc/sc22-64
+
+TARGET_ARCH  		= linux64
 
 ifeq (${TARGET_ARCH},Darwin)
@@ -15,25 +17,22 @@
 endif
 
-#BFD_LIBERTY     = -lbfd -liberty
-#SYSTEMC         = /users/outil/systemc/systemc-2.0.1
 SYSTEMC_INC     = $(SYSTEMC)/include
 SYSTEMCASS_INC  = $(SYSTEMCASS)/include
 SYSTEMC_LIB     = $(SYSTEMC)/lib-${TARGET_ARCH}/libsystemc.a
 SYSTEMCASS_LIB  = $(SYSTEMCASS)/lib-linux/libsystemc.a
-#CXX         		= g++
-#CXX          		= icc -w1
-CPPFILT     		= c++filt
+CXX             = g++
+CPPFILT         = c++filt
 DEBUG           = -g -DDEBUG
 #OPT             = -O2
-#PROF        = -pg # gcc
-#PROF        = -qp # icc
-#EFENCE      = /users/cao/viaud/bin/lib/libefence.a -lpthread
-CFLAGS      = $(PROF) $(DEBUG) $(OPT) \
+#PROF            = -pg # gcc
+#PROF            = -qp # icc
+#EFENCE          = /users/cao/viaud/bin/lib/libefence.a -lpthread
+CFLAGS = $(PROF) $(DEBUG) $(OPT) \
               -Wall \
               -fopenmp \
-              -UENABLE_TRACE -UENABLE_PAT -I. \
+              -UENABLE_TRACE -UENABLE_PAT -I. -I.. \
               ${ENDIANESS_FLAG}
 
-LFLAGS      = $(PROF) $(BFD_LIBERTY) -ldl -fopenmp
+LFLAGS = $(PROF) $(BFD_LIBERTY) -ldl -fopenmp
 
 CFLAGS_SYSTEMC    = $(CFLAGS) \
@@ -50,10 +49,5 @@
                     ${DYNAMICLIB_FLAG} $(SYSTEMCASS_LIB) ${EFENCE}
 
-#ifndef TARGET_PLATFORM
-#$(error TARGET_PLATFORM is not defined.)
-#endif
-#ifndef TARGET_ARCH
-#$(error TARGET_ARCH is not defined.)
-#endif
+
 ifndef SYSTEMC
 $(error SYSTEMC is not defined.)
@@ -62,8 +56,5 @@
 $(error SYSTEMCASS is not defined.)
 endif
-#ifndef SOCVIEW
-#$(error SOCVIEW is not defined. This environment variable is optional.)
-#endif
 
-failcom   = 'exit 1'
 
+
Index: sources/test_regression/test.h
===================================================================
--- sources/test_regression/test.h	(revision 55)
+++ sources/test_regression/test.h	(revision 55)
@@ -0,0 +1,9 @@
+
+#define ASSERT(x)                    \
+{                                    \
+    if (!(x)) {                      \
+        cerr << "assert failed line " << __LINE__ << ", file " << __FILE__ << ": #x\n"; \
+        exit(1);                     \
+    }                                \
+}
+
