User - defined frontdoor V/S UVM_FRONTDOOR

UVM Class Reference Manual specifies the following ::


function void set_frontdoor( uvm_reg_frontdoor ftdr,
                             uvm_reg_map map = null,
                             string fname = "",
                             int lineno = 0
                           )
 
Set a user-defined frontdoor for this register.

By default, registers are mapped linearly into the address space of the address maps that instantiate them. 
If registers are accessed using a different mechanism, a user-defined access mechanism must be defined and associated with the 
corresponding register abstraction class     


  • I am not fully clear on the above description . When should one use user-defined frontdoor ? .
  • How does it differ from UVM_FRONTDOOR ?
    When should I prefer using user-defined frontdoor over UVM_FRONTDOOR ?

In reply to hisingh:

The UVM has lots of hooks for things you will probably never need. See Doing Funny Stuff with the UVM Register Layer: Experiences Using Front Door Sequences, Predictors, and Callbacks – DVCon Proceedings Archive