summaryrefslogtreecommitdiff
path: root/src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp')
-rw-r--r--src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp b/src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp
new file mode 100644
index 000000000..a53fdc6e8
--- /dev/null
+++ b/src/systemc/tests/systemc/tracing/vcd_trace/test14/test14.cpp
@@ -0,0 +1,65 @@
+
+#include <systemc.h>
+
+sc_trace_file* sc_tf;
+
+class Mod : public sc_module
+{
+ public:
+
+ sc_in_clk clk;
+
+ sc_in<sc_uint<37> > a;
+ sc_inout<bool > b;
+
+
+
+ SC_HAS_PROCESS(Mod);
+
+ void foo()
+ {
+ cout << sc_time_stamp() << "\n";
+ cout << " a = " << a << " b = " << b << "\n";
+ cout << "\n";
+ return;
+ } // foo()
+
+ Mod(const sc_module_name& name) : sc_module(name), a("a")
+ {
+ SC_METHOD(foo);
+ sensitive << clk.pos();
+ dont_initialize();
+ }
+
+ void start_of_simulation() {
+
+ sc_trace(sc_tf, a, a.name());
+ sc_trace(sc_tf, b, b.name());
+ }
+
+}; // class Mod
+
+
+
+
+
+int sc_main(int argc, char* argv[])
+
+{
+ sc_clock clk("clk", 50, SC_NS, 0.5, 0, SC_NS);
+ sc_signal<sc_uint<37> > a;
+ sc_signal<bool> b;
+ sc_tf = sc_create_vcd_trace_file("test14");
+ Mod mod("mod");
+ mod.clk(clk);
+ mod.a(a);
+ mod.b(b);
+ sc_trace(sc_tf, clk, clk.name());
+ sc_start(50, SC_NS);
+ a = 12;
+ b = true;
+ sc_start(50, SC_NS);
+ return 0;
+} // sc_main()
+
+