Jump to content

vrsm

Members
  • Posts

    3
  • Joined

  • Last visited

  • Days Won

    1

vrsm last won the day on November 22 2019

vrsm had the most liked content!

Recent Profile Visitors

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

vrsm's Achievements

Member

Member (1/2)

2

Reputation

  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...