# 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.