ljepson74 Posted February 2, 2013 Report Share Posted February 2, 2013 I'd like my sequence to not be created or not perform late randomization (either is fine) until a variable (int) in the driver has a certain value. How would you suggest doing this? a) Should I set a variable in uvm_config_db and then poll it in the sequence? (Although sequences know no time as I recall, so I'd have to do it elsewhere. ? ) Is it possible to "wait" on a value in uvm_config_db? c) other As currently setup, my sequence has: `uvm_create(req) //some late randomization here `uvm_send(req) my driver has: seq_item_port.get_next_item(req) send(req) //where pins are set seq_item_port.item_done() The value in the driver being waited for is akin to a stall. Apologies for the terseness of this question. After just encountering it late today, I thought I'd throw it out here to see if anyone had any ideas before I reexamine the situation. Quote Link to comment Share on other sites More sharing options...
dave_59 Posted February 2, 2013 Report Share Posted February 2, 2013 If you use start_item(req) - finish_item(req) instead of using the macros, you can achieve exactly what you want. You sequence will have req = my_sequence_item::type_id::create(_); start_item(req); // blocks until get_next_item() in driver //some late randomization here finish_item(req); // blocks until item_done() in driver. So don't call get_next_item() until the value in your driver has what you want it to have. Quote Link to comment Share on other sites More sharing options...
ljepson74 Posted February 7, 2013 Author Report Share Posted February 7, 2013 Thanks a lot, Dave. That solved my issue. 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.