uvm_report_catcher/uvm_error demoter Example

Sometimes user will face a situation where you need some of the components from environment to demote error message means user want to disable error from a specific component. Of course user don’t want to change every uvm_error message to uvm_info.. It will take care of one of the amazing features from UVM i.e.  uvm_report_catcher…

UVM Phasing

Today I’m going to share something which is so common to almost every concept of UVM. In other way, we can say that this concept is the backbone of the UVM Verification Methodology. This is related to the process which deals from the starting of the simulation till end of the simulation. So in this…

Create() Vs new()

The recommended method in UVM for creating components or transaction objects is to use the built-in method::type_id::create() instead of calling the constructor new() directly. The create method internally makes a call to the factory to look up the requested type and then calls the constructor new() to actually create an object. This allows type overriding…

Concept of UVM Factory

Concept of UVM Factory

Factory stimulates everyone’s imagination to fall down on industrial settings and mechanical setup of machineries & processing units with products getting made and packaged before running on the transport rail & to be delivered to the warehouses. Hence the word “Factory” makes us curious to know about this jargon in Verification Methodology Context i.e. UVM….

Callbacks Vs Factory

Callbacks and factory both addresses different areas of reusability in UVM. Callback:  Add functionality to existing logic. Suitable for rare or minimal feature need to be enhanced in focus Popular for error injection/to corrupt the sequence from VIP. Easy to maintain callbacks Factory:  It used to substitute the existing component before build, keeps environment same….

How UVM Callback works?

Callback mechanism is used for altering the behavior of the transactor/BFM without modifying the existing BFM/transactor. Callback gives flexibility to plug-and-play and reuse the components i.e. driver, monitor etc..  Sometimes requirements are often unpredictable when the BFM/transactor is first written. So a transactor should provide some kind of hooks for executing the code which is…