When instantiating multiple instances of the same SelectIO Wizard IP core, the following error might be displayed:
The SelectIO Wizard IP core contains IODELAY_GROUP constraints in the HDL code which is common for all instances.
Because all instances use the same HDL code, but have different signals, this DRC error is issued.
To work around this issue you will need to edit the IODELAY_GROUP constraint in HDL and over-ride it with XDC constraints.
To edit the HDL open the <SelectIO Wizard IP name>_selectio_wiz.v file and search for the (* IODELAY_GROUP = "selectio_wiz_0_group" *) lines.
There will be one for the DELAY and another for the IDELAYCTRL. Comment out each of these lines as you are going to constrain the groups in the XDC file.
Then in the XDC file create an IODELAY_GROUP for each instance of the SelectIO Wizard.
The constraints can be kept generic, so all delay elements (IDELAYCTRL and IODELAY primitive) in an instance are constrained to the same group.
set_property IODELAY_GROUP <SelectIO Wizard IP name>_group1 [get_cells <SelectIO wizard IP hierarchical name #1>/inst/*delay*]
set_property IODELAY_GROUP <SelectIO Wizard IP name>_group2 [get_cells <SelectIO wizard IP hierarchical name #2>/inst/*delay*]