Hi All,
I am using grab/ungrab for running a interrupt sequence. For that i write a seq “interrupt_sub_seq”. This sequence reads one of the DUT register.
There is an other sequence called interrupt_main_sequence.
Interrupt_main_sequence is parent sequence for interrupt_sub_sequence.
I want to start interrupt_sub_sequence inside interrrupt_main_sequence with seq.start command. Pseudo code is below.
// interrupt main sequence body.
task body();
forever
begin
int_event.wait_trigger();
grab(m_sequencer);
interrupt_sub_seq_obj.start(m_sequencer);
ungrab(m_sequencer);
end
endtask
// interrupt sub sequence body contains
task body;
start_item(read_item);
finish_item(read_item);
endtask
Read for DUT registers are not happening by above code.
I found that compiler entered into interrupt_sub_sequence body. But Start item doesn’t complete.
In case if i modify code of interrupt main sequence by
// interrupt main sequence body.
task body();
forever
begin
int_event.wait_trigger();
grab(m_sequencer);
start_item(read_item);
finish_item(read_item);
ungrab(m_sequencer);
end
endtask
It executes fine. and i am able to read DUT registers.
Please tell me if there is any way so that i can execute my sub_sequence with seq.start_item() command
Thanks
Ashutosh