Whether you use one or several XDC files for your design, organize your constraints in the following sequence.
## Timing Assertions Section # Primary clocks
# Virtual clocks
# Generated clocks # Clock Groups
# Bus Skew constraints
# Input and output delay constraints
## Timing Exceptions Section # False Paths
# Max Delay / Min Delay # Multicycle Paths
# Case Analysis # Disable Timing
## Physical Constraints Section
# located anywhere in the file, preferably before or after the timing constraints # or stored in a separate constraint file
Start with the clock definitions. You can create the clocks before using them in any subsequent constraints. Any reference to a clock before its declaration results in an error, causing the corresponding constraint to be ignored. This applies both within an individual constraint file and across all the XDC files (or Tcl scripts) in your design.
The order of the constraint files matters. Ensure that the constraints in each file do not rely on the constraints of another file. If there are dependencies, read the file containing those dependencies last. If constraint files are interdependent, merge them into one file with correct sequence or split into several files and order them properly.