Sequences in fork...join block not executing concurrently

I have three sequences that I intend to run in fork…join block but that’s not happening. Here is how my top level virtual sequence look like,

fork
run_seq1();
run_seq2();
forever 10 cycles
run seq3();
join

seq1 and seq2 can run concurrently but after every 10 cycles when seq3 is started, it does not allow seq1 and seq2 to run.
The seq1 contain a body block which just drives the agent and do not expect a response. So it can complete in one cycle. Seq2 behaves similar to seq1. Seq 3 is a programming sequence which looks like this,

task body()
repeat(N)
{
Program N different registers
}
endtask.

For N cycles, seq1 and seq2 are not running.

Please let me know if more information is needed.

In reply to surya_mudgal:

That’s not nearly enough information. What do you see happening that’s not supposed to? Are these sequences being run on the same sequencer?

In reply to dave_59:

Nope !! the sequences are not run on the same sequencer. Expected behavior is to have sequences run independently and concurrently. I just wanted to know if there is any basic issue with the structure which is resulting in incorrect behavior.

In reply to surya_mudgal:

below is the expected result.


fork
/*_A_*/run_seq1();
/*_B_*/run_seq2();
/*_C_*/forever 10 cycles run seq3();
join

//Fork-Join will start all the processes inside it(_A_, _B_ & _C_) parallel and wait for the completion of all the processes.
//process _A_ and _B_ will complete in one cycle(as you mentioned)
//process _C_ is 'forever', it will never end

have you observed different behavior?

In reply to surya_mudgal:

Hey i think what you meant with the forever is just wait for 10 cycles and then execute the third sequence right? Hence do not use forever just use repeat and then execute otherwise the join will hang on the forever as said unless you disable it.

Anyway there should be something else in your environment causing the sequences 1/2 to stop accessing registers once the thrid one is fired. Are you running on same map ? Is there a unique bus deployed? I mean it could be lots of reasons why previous sequences stopped execution