Monday, October 8, 2018

Difference between "uvm_object_utils" and "uvm_component_utils"?

The reason there are two macros is because the factory design pattern fixes the number of arguments that a constructor can have. Classes derived from uvm_object have constructors with one argument, a string name. Classes derived from uvm_component have two arguments, a name and a uvm_component parent.  The two `uvm_*utils macros inserts code that gives you a factory create() method that delegates calls to the constructors of uvm_object or uvm_component. You need to use the respective macro so that the correct constructor arguments  get passed through. This means that you cannot add extra constructor arguments when you extend these classes in order to be able to use the UVM factory.


credit : https://www.quora.com/What-is-the-difference-between-uvm_object_utils-and-uvm_component_utils-How-should-these-macros-be-used-in-a-testbench

Ethernet and more

Ethernet is a protocol under IEEE 802.33 standard User Datagram Protocol (UDP) UDP is a connectionless transport protocol. I...