BUILD PHASE

Hi all,
I have few doubts related to OVM:

1).What is the main purpose of OVM build phase??
2).What is the difference between seq_items and transactions in OVM??
3).How factory methods are helpful to build objects when compared to the traditional system verilog methods of using new() method??

Regards,
Rajesh.B

In reply to rbhanumu:

Hii,

  1. Phase concept is mainly due to form everything in a proper way. So in build phase You create all the required things
  2. Seq_items have some pre defined functions which can be overridden when compoared to transactions
  3. Create gives you flexibility of overriding the created object where as the new does not give
  1. The concept of phases in OVM/UVM arises because of giving symmetrical verification methodology, wherein all the phases have a particular usage. Now as we all know that classes are dynamic entities, we need to create the objects of them at run time. Build phase is for the creation purpose and is the first phase to be executed amongst all. In the build phase, you can also get the configuration(if any set in the top-level classes) and create your components accordingly.

  2. uvm_sequence_item is a class extended from uvm_transaction and include methods in addition to methods provided by uvm_transaction. UVM has deprecated the use of uvm_transaction class and has asked to use sequence item class

  3. you can see the usage of creating classes from create method instead of new while overriding the class. Else both methods will just create the object of classes.

  1. The build phase, or more specifically, the build_phase() method is there because SystemVerilog’s new() method cannot be overridden - you must call super.new() in the construction of any derived class. The OVM/UVM’s build method gives you the option to call super.build(). So only put code in new() that must never be overridden.
  2. ovm_sequence_item has a few additional properties that make is useful for stimulus/driver interaction. We suggest you never use ovm_transaction as it has been deprecated in the UVM.
  3. Please see OVM/Factory | Verification Academy and my SV OOP course, especially the third session.

In reply to rbhanumu: