Closed roynil closed 3 years ago
Hi,
The new await_completion mechanism uses information from a central register shared_vvc_activity_register to check if the VVC is busy or not instead of the executor_is_busy signal. This central register is updated one delta cycle before the executor_is_busy signal, which is only used in the old await_completion mechanism, because they are updated in different procedures.
Depending on how you are using the signal you could account for that delta cycle or you could use the shared_vvc_activity_register to determine if a VVC is busy. You would need to first get the index of the VVC and then check the activity status:
shared_vvc_activity_register.priv_get_vvc_idx()
shared_vvc_activity_register.priv_get_vvc_activity()
Note that the new mechanism is used in all UVVM's VVCs and whichever new VVCs you create with the vvc_generator script, however if you have old custom VVCs they will still use the old mechanism.
Best Regards, Erick
I have been using executor_is_busy to determine wether a vvc is busy or not. With the new implementation of await_completion this no longer work. It seems that executor_is_busy is still true when await_completion is done.