in virtual sequence i am running sequences like this. in the first fork join block two sequences are running and i am getting correct value in master monitor and slave monitor but from second fork join onwards i am getting incorrect values in the slave monitor. But if i run each fork join in separate virtual sequence and run those virtual sequence in different test cases , all the sequences are running correctly. As i am not using regression , is there any way to run more than one test cases at same time. i tried the following method but its not working.
task vir_seq::body();
fork
seq1.start(p_sequencer.m_seqr);
seq2.start(p_sequencer.s_seqr);
join
#10000;
fork
seq3.start(p_sequencer.m_seqr);
seq4.start(p_sequencer.s_seqr);
join
#10000;
fork
seq5.start(p_sequencer.m_seqr);
seq6.start(p_sequencer.s_seqr);
join
#10000;
endtask
In reply to Amarjit pradhan:
You will need to debug the issue. Most likely your test is deeding on some initial condition that is not properly reset between tests. This could be a problem in the DUT or your testbench.
But today i used regression for running 28 test cases ,for each test cases in irun log file monitor values are coming properly. Currently i am doing spi protocol , if i use the above process from second fork join onwards it is taking the previous character length value. I tried giving reset condition also after each fork join but that also not working . but if i use regression its working fine. Thanks Dave.
In reply to Amarjit pradhan:
One test is used to verify a certain functionality. I believe it is not a good idea to run more than one test at the same time, because you are mixing different verification tasks and each Task needs a certain Setup of your design and your testbench.
If you do not show more details nobody can really help you.