text: #include <systemc>
  
  using sc_core::sc_delta_count;
  using sc_core::sc_is_running;
  using sc_core::SC_ZERO_TIME;
  using sc_core::sc_start;
  using sc_core::sc_event;
  using sc_core::SC_NS;
  using std::cout;
  using std::endl;
  
  // D.1 6) sc_delta_count()
  
  SC_MODULE(M)
  {
    SC_CTOR(M)
    {
      SC_THREAD(T);
    }
    void T()
    {
      cout << "T() " << sc_is_running() << "  " << sc_delta_count() << endl;
      wait(10, SC_NS);
      cout << "T() " << sc_is_running() << "  " << sc_delta_count() << endl;
      wait(10, SC_NS);
      cout << "T() " << sc_is_running() << "  " << sc_delta_count() << endl;
      wait(10, SC_NS);
      cout << "T() " << sc_is_running() << "  " << sc_delta_count() << endl;
    }
  };
  
  SC_MODULE(Top)
  {
    M *m;
    SC_CTOR(Top)
    {
      m = new M("m");
    }
  };
  
  int sc_main(int argc, char* argv[])
  {
    sc_assert(sc_delta_count() == 0);
  
    Top top("top");
    sc_start();
  
    cout << endl << "Success" << endl;
    return 0;
  }
  