In reply to chr_sue:
Yes, $psprintf return a exact string, and that string is used in UVM macro uvm_object_registry#(T, Tname) to create a type. But seem Tname argument of uvm_object_registry can not be accept to overide.
I have replaced dti_axi4lite_object_utils(dti_axi4lite_m_burst #(AXI4LITE_ADDR_WIDTH, AXI4LITE_DATA_WIDTH), TYPE_NAME) with UVM macro uvm_object_utils(dti_axi4lite_m_burst #(AXI4LITE_ADDR_WIDTH, AXI4LITE_DATA_WIDTH)), and print factory, it show registered type is:
dti_axi4lite_m_burst #(AXI4LITE_ADDR_WIDTH, AXI4LITE_DATA_WIDTH)
Why does’t registered type is dti_axi4lite_m_burst #(12, 32) instead of dti_axi4lite_m_burst #(AXI4LITE_ADDR_WIDTH, AXI4LITE_DATA_WIDTH) ?