Can any body help
In my env , I have master sequencer and slave sequencer with their respective sequence libraries . Here i have implemented virtual sequencer and virtual sequence library which will control the master and slave sequencers. I did it according to the user guide, But i have a problem in executing this virtual sequence. In test case i used this part of code
to configure the virtual sequencer
Is this the correct way to configure the virtual sequencer ?
Initially I got output random sequence and exhaustive sequences executing continuously …
later I included this part of code to stop the sub sequences in test environment
task run; #0
axi0.masters[0].sequencer.stop_sequences();
axi0.slaves[0].sequencer.stop_sequences();
endtask : run
After including this code all my random sequences got stopped but , its not executing desired sequence which i configured in the test case, Instead its executing one sequence picking randomly from virtual sequence library…
so where i need to control it.
Is it compulsory to use get_config_, if i have used set_cofig_ in hierarchy. I have warnings saying
" No get_config_string() call ever matched the following set_config_string() call from component… "
I would recommend starting your sequences explicity rather than relying on the sequencer library implemented using the sequencer_utils macros, otherwise it is difficult to understand what is going on. In other words, inside your virtual sequence you explicitly start your sub-sequences, and your virtual sequence is started within the run method of your test.
class v_seq extends ovm_sequence #(ovm_sequence_item);
You don’t have to use get_config, but there’s little point in using set_config if you’re not going to use the config objects. OVM warns you about the unused config items, this is to give you a clue if something is not working correctly and to let you know that there’s something you could clean up in your testbench.
By the way, I’ll also point out that the `ovm_sequence_utils macro and all other parts of the OVM sequence library have been deprecated in UVM. If you have plans eventually to move to UVM, it’s not a good idea to start using the OVM sequence library.
This is what I have done in order to use virtual sequence in my Verification Environment.
I have written below code in my build function of the test. I have total two sequencers just like your environment. Then I have virtual sequencer, which does synchronization between these two sequencers. As given in user guide, you have to first shut off the sequencers by setting their “count” to 0. Then set your virtual sequencer’s default sequence to your virtual sequence.
I dont think this has anything to do with the factory. The set_config* call sets something in component table and get_config* gets it. so there has to be a get_config followed by a set_config*.
Usually, set_config* calls are made in build phase which is top down. Hence if any variable is inside the configuration macros, they will get updated automatically later than the set_config* call from the component above.
Without using the configuration macros, you should call the set_config* manually after set_config calls.