system verilog - test case hanging at start_item -
i've been facing problem start_item. every time gets start_item
, entire test hangs , there's no way can find out issue is. pointers appreciated.
here's code looks like:
task good_bad_seq_0_task (); rx_eth10g req; rx_eth10g rsp; rx_eth10g_knobs t; int good_bad_seq_count; //'vy_good_bad_long_seq' loop variable int vy_good_bad_long_seq; int tmp_rand_status; tmp_rand_status = std::randomize (good_bad_seq_count) { good_bad_seq_count inside {100}; }; if(!tmp_rand_status) begin `uvm_error(get_full_name(), "randomization failed!"); end `uvm_info(get_full_name(), $sformatf(": driving good_bad_long_seq %0d times ...",good_bad_seq_count), uvm_high) for(vy_good_bad_long_seq = 0; vy_good_bad_long_seq < good_bad_seq_count; vy_good_bad_long_seq++) begin req = new(); start_item (req); // nothing after executed t = good_bad_seq_knob; req.set_seqitem_type (t); if(!req.randomize ()) begin `uvm_error("rand_failed", $psprintf("randomization failed : %s",req.get_full_name())); end finish_item (req); get_response (rsp); end `uvm_info(get_full_name(), $sformatf(": completed %0d times ...",good_bad_seq_count), uvm_high) endtask: good_bad_seq_0_task
thanks lot.
the start_item(...)
task unblock once driver connected item's parent sequencer calls get_next_item(...)
. you'll need check driver implementation.
Comments
Post a Comment