is it necessary to pass user defined sequence_item type to the user defined uvm_driver class?
For example,
class jelly_bean_driver extends uvm_driver#(jelly_bean_transaction);
In the above case, I can just declared jelly_bean_driver as:
class jelly_bean_driver extends uvm_driver;
This should still work as jelly_bean_transaction is derived from uvm_sequence_item.
Also, let us take the following example,
seq_item_1 derives from uvm_sequence_item
seq_item_2 derived from seq_item_1
If driver is parameterized with seq_item_2 then one will not be able to use seq_item_1 in the testbench.
While if default parameter (uvm_sequence_item) is left as it is then one can use seq_item_1 or seq_item_2 both, due to polymorphic behavior