Monday, February 22, 2016

difference between uvm_resource_db & uvm_config_db

From the usage perspective there is no difference between these two and recommendation is to use uvm_config_db


Both uvm_config_db and uvm_resource_db share the same underlying database to store and retrieve information.

In-fact you can write a value to uvm database using uvm_config_db ::set() method and retrieve the information either using  uvm_config_db ::get() method or using uvm_resource_db::read_by_name().  

The recommended method is to use uvm_config_db when hierarchical access is required.  When you want to share object and access it from different location without using the hierarchy you can use uvm_resource_db.

You can set a resource to the resource db using the uvm_resource_db::set()  method
Example:
        uvm_resource_db# (int)::set("enable","*",1,this);

To retrieve the information from the resource db you can use uvm_resource_db::read_by_name() method

Example:
   Bit success;
   success=uvm_resource_db#(int)::read_by_name("enable",get_full_name(),value,this);
   If(success==1’b0)
      `uvm_error("ERROR","cannot locate the resource ");

No comments:

Post a Comment