lanfranco.salinari Posted February 17, 2015 Report Share Posted February 17, 2015 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 Quote Link to comment Share on other sites More sharing options...
dave_59 Posted February 17, 2015 Report Share Posted February 17, 2015 This is a general issue with all tasks in the UVM that are not class methods. I have filed 0005216: tasks declared outside of class methods need to have an automatic lifetime Quote Link to comment Share on other sites More sharing options...
lanfranco.salinari Posted February 17, 2015 Author Report Share Posted February 17, 2015 Hello Dave, thank you very much for your feedback and for filing the bug; I hope it will be solved soon. Best regards, Lanfranco Quote Link to comment Share on other sites More sharing options...
cristian_amiq Posted February 23, 2015 Report Share Posted February 23, 2015 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.