Using raise and drop objection in scoreboard

Hi,

Is that adviced use raise objection and drop objection in scoreboard, instead of using set_drain_time in the testcase.

In reply to saravanantvs:

You should only raise and lower objections in the test. This is because the objections bracket all of the sequences executed at the test level. You should set the drain time if you need to extend the run_phase to account for data in process. Using phase_ready_to_end() could possibly result in a hanging testbench, whereas adjusting drain time won’t.

In reply to saravanantvs:

Hi,
Is that adviced use raise objection and drop objection in scoreboard, instead of using set_drain_time in the testcase.

Finally you can raise and drop objections in any uvm_component and in transient objects like sequences. If you have to many objection mechanisms in your environment you will run into trouble, earlier or later. The goal is to have a minimum of objection mechanism in your envronment. And the best place is the tests as Chuck is recommending. If you see there is still one transaction in your scoreboard not processed and the content is essential, think about to insert one additional seq_item. Then you get the essential one and the dummy item is in the scoreboard. setting the drain_time is also an option. But you do not know what is a reasonable value to set.

In reply to chr_sue:

Hi,

Then how the same scoreboard can be reused in soc simulation ?

In reply to saravanantvs:

Obejction in any component may limit the reuse, but having them in the test does not.
By the way the drain_time can be set in the toplevel module. This does nopt have any impact on reusing the scoreboard component.