Jump to content

Should uvm_hdl_force_time be declared automatic?

Recommended Posts


it's the first time I post in UVM forums, and I hope I have chosen the right way to highlight a possible problem in UVM (up to 1.2, as far as I know).

The issue is that:


  task uvm_hdl_force_time(string path, uvm_hdl_data_t value, time force_time = 0);

is not declared "automatic". This has caused me some problems when trying to call it concurrently from 2 separate threads, e.g.:



    uvm_hdl_force_time("a", 0, 1us);

    uvm_hdl_force_time("b", 0, 1us);



Essentially only one signal was forced.

I had to copy the code in another task and declare it as "automatic" (by the way, I needed the force_time argument to be realtime, it would be nice to add such a task to UVM as well):


task automatic my_hdl_force_realtime(string path, uvm_hdl_data_t value, realtime force_time=0ns);


I suspect that this is not the only task/function having this problem in UVM, so this can be a more general issue.

Can someone please give me some feedback about this?

Thanks in advance,




Link to comment
Share on other sites

FYR, AMIQ continuously runs a set of linting checks on various UVM branches to indicate potential issues:




One of the checks addresses your concern:


SVTB.12.1.2 - Tasks defined outside of classes must be explicitly declared automatic or static


For example in the UVM 1.2 release there are several such tasks implicitly static:






Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...