Configuration and Resource Classes

The configuration and resources classes provide access to a centralized database where type specific information can be stored and recieved.  The uvm_resource_db is the low level resource database which users can write to or read from.  The uvm_config_db#(T) is layered on top of the resoure database and provides a typed intereface for configuration setting that is consistent with the uvm_component::Configuration Interface.

Information can be read from or written to the database at any time during simulation.  A resource may be associated with a specific hierarchical scope of a uvm_component or it may be visible to all components regardless of their hierarchical position.

Summary
Configuration and Resource Classes
The configuration and resources classes provide access to a centralized database where type specific information can be stored and recieved.
class uvm_resource_db #( type  T  =  uvm_object )
The uvm_resource_db#(T) class provides a convenience interface for the resources facility.
class uvm_config_db#( type  T  =  int ) extends uvm_resource_db#(T)
The uvm_config_db#(T) class provides a convenience interface on top of the uvm_resource_db to simplify the basic interface that is used for reading and writing into the resource database.
Components can be designed to be user-configurable in terms of its topology (the type and number of children it has), mode of operation, and run-time parameters (knobs).
virtual class uvm_component extends uvm_report_object
The uvm_component class is the root base class for UVM components.