Configuration object

What is the use of setting clone argument to 1 in set_config_object(use of clonning the object in set_config_object)?

It’s not of much use, and it is being removed from UVM 1.2. If fact set_config_object() is being removed as well; it was just left in for backward compatibility with OVM. We have always recommended using uvm_config_db#(object_type)::set() instead to give you better type safety and eliminating extra $casting steps.

Cloning is used when you pass an object to another object, and you don’t want your modifications to be seen by others, as well as not see modifications from others after passing the object. A configuration object is usually shared and you want to see the modifications as the test progresses.