Hi,
I was trying to modify an existing 22 Ethernet code to 12 code. And, now when I have successfully managed to compile it the simulator hangs and says the threads have been killed or suspended. I do not understand which part of my code is blocking the execution of my TB component threads. Could you please suggest to me what am I going wrong?
Your environment is never finishing. The monitor has a forever loop which never exits, so the fork/join block in the environment run() task will never finish.
Okay got it, that resolves my simulation hang problems. But what about the threads being killed and the scoreboard and other components not being executed. What is blocking them?
You need to fix the run() task in your environment. If the component is never expected to finish, such as the driver/monitor/scoreboard, you want to call the component’s run() task from a fork/join_none block. If you are expecting the component to finish, you will call it from a fork/join block. If there is only one task call inside a fork/join block, don’t use fork/join.