Jump to content

SRachuj

Members
  • Posts

    3
  • Joined

  • Last visited

Everything posted by SRachuj

  1. Thank you very much, @maehne ! The example in the clause helped me a lot. I think, I can work with it, now. Best Regards
  2. Thank you @AmeyaVS for your response. Do you know of other approaches that achieve what I have written above? I thought, that it must be possible like this after reading a paper about distributing SystemC. But maybe, they didn't implement it in this way. Best Regards
  3. Hello, I have issues understanding sc_simcontext::next_time. The easiest way to describe what does not make sense for me is to give an example: #include <systemc> using namespace sc_core; SC_MODULE(A) { sc_out<bool> out; SC_CTOR(A) { SC_THREAD(t); } void t() { bool c = false; while (1) { wait(sc_time(1, SC_NS)); c = !c; out.write(c); } } }; SC_MODULE(B) { sc_in<bool> in; SC_CTOR(B) { SC_THREAD(t) } void t() { while (1) { wait(in.value_changed_event()); std::cout << "got: " << in.read() << std::endl; } } }; int sc_main(int argc, char** argv) { A a("a"); B b("b"); sc_signal<bool> s; a.out.bind(s); b.in.bind(s); while (1) { sc_time t; std::cout << sc_get_curr_simcontext()->next_time(t) << ": " << t << std::endl; sc_start(sc_time(1, SC_NS)); sleep(1); } } In this example, I would expect, that the output within the while loop of sc_main always prints 1 and the time until the next event happens (which should be 1 ns). However, when I run this program I get the following output: 0: 0 s 0: 0 s got: 1 0: 0 s got: 0 0: 0 s got: 1 0: 0 s got: 0 0: 0 s got: 1 0: 0 s got: 0 ^C Why do I always get "false" as the result for next_time? Did I misunderstand the what next_time does? Currently I'm using SystemC 2.3.1a. Thank you for your answers in advance!
×
×
  • Create New...