Configuration and Resource Classes

The configuration and resources classes provide access to a centralized database where type specific information can be stored and received.  The uvm_resource_db is the low level resource database which users can write to or read from.  The uvm_config_db is layered on top of the resoure database and provides a typed interface 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 received.
class uvm_resource_db #(
    type  T  =  uvm_object
)
All of the functions in uvm_resource_db#(T) are static, so they must be called using the :: operator.
class uvm_config_db#(
    type  T  =  int
) extends uvm_resource_db#(T)
All of the functions in uvm_config_db#(T) are static, so they must be called using the :: operator.
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.