Jump to content


  • Content Count

  • Joined

  • Last visited

  1. Hi, I am very new in SystemC. This example is extracted from a slide, and it does not provide enough information. However, I guess that the constructor of the module as the following: SC_CTOR(example) { SC_CTHREAD(T1, clk.pos()); SC_CTHREAD(T2, clk.pos()); } Maybe, we can print the value of a and b at the end of the corresponding process. As I understand, the scheduler of systemC maintains a runnable queue of processes. In this example, T2 always runs before T1, right? Or, the scheduler will randomly pick up one process to be executed. Thanks,
  2. Hi all, Suppose I have a Module which has 2 processes (SC_CTHREAD) T1, T2, and a shared signal as the follows: sc_signal<int> a; void T1() { wait(); while(true) { a = 1; wait(); } } void T2() { int b; wait(); while(true) { b = a; wait(); } } The SystemC design is simulated by 2 clock cycles. Suppose that the execution sequence will be (T1,T2,T1,T2). I donot understand why the ouput is (a = 1, b = 0). Other execution sequences, like (T1,T2,T2,T1) produce the same output. I think that the output should be (a=1, b=1). Thanks,
  • Create New...