Jump to content
lanfranco.salinari

Should uvm_hdl_force_time be declared automatic?

Recommended Posts

Hello,

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

 

fork

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

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

 join_none

 

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,

 

Lanfranco

 

Share this post


Link to post
Share on other sites

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

 

http://dvteclipse.com/uvm-verissimo/index.html

 

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:

 

http://dvteclipse.com/uvm-verissimo/UVM_1_2_RELEASE/index.html?N4IgzgrgtlCGBOBPEAuALvCBTANCAxgBZb4DWYAKvFlgMpYA2JaAlgPYB2qAzAEx5ES5KjXpN8rThUQAHLKgCMeQizSVYAIyYB5eABMs8VAG1jSkLDD4QAXRzGADHkvWbdkCrUVNTegiKoICB4BlYACrAcjGLM7BzScop4YGiwaBBgAGIsDGiGAGqwDNioTgTEZFk5efCFxfIoxiC0-RQAQgB0CrxdHby2eABmOVhVuQVFJY02AL5AAA

 

 

Cristian

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×