Jump to content

vrsm

Members
  • Content Count

    3
  • Joined

  • Last visited

  • Days Won

    1

vrsm last won the day on November 22

vrsm had the most liked content!

About vrsm

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I am able to find these links by searching, below are some functional coverage approaches available commercial/free, https://www.testandverification.com/case-studies/a-systemc-based-uvm-verification-infrastructure/ https://www.amiq.com/consulting/2018/02/22/cpp-implementation-of-functional-coverage-for-systemc/ I also found this older post in systemc verification, I understand functional coverage is performed in RTL verification widely. Are there any requirements which makes functional coverage necessary for systemc tlm models?
  2. Its because printer input.num_available() non-blocking call which is executed even before fork.output2 is written. Printer input.read() is working fine as it a blocking call which is waiting for fifo to get filled, once fork.output2 is written and fifo have a item now and now read() is unblocked and things are working fine. You cannot predict the thread execution order unless otherwise you are explicitly making them to happen in order. I suggest you keep multiple print statements to see how threads are executed in your simulation. num_available() is not mandatory for any implementation. But the correct way to use num_available in your experiment is, while(fifo.num_available() == 0) { wait(SC_ZERO_TIME); //by calling wait you are giving chance for other threads in simulation to run } cout<<" items in fifo "<<fifo.num_available()<<endl; Ram
  3. You are not writing to output2 of fork, hence printer input fifo is not filled. For debugging use num_available() to get the number of available items in the fifo. "value = input.read()" is not breaking out of the loop, here read() is a blocking call, as fifo is empty it kept blocking the thread. As there are no other pending events or waits simulation stopped naturally. Ram
×
×
  • Create New...