Having a knowledge of the external design allows the constraints to be set based on the design (not an artificial estimate or default value). Vivado needs information embedded in the XCI to correctly do memory initialization Update_mem does not work with a DCP as it needs hierarchy information...