AR# 52502: Vivado - A single unconstrained IDELAYCTRL is not automatically replicated as in ISE MAP
Vivado - A single unconstrained IDELAYCTRL is not automatically replicated as in ISE MAP
In my design, only one unconstrained IDELAYCTRL is instantiated.
The design runs through bitstream generation in ISE without issue.
ISE MAP automatically replicates the IDELAYCTRL and there are three in total in the implementation result.
However in Vivado, the replication does not occur.
Since the calibrated IODELAYs span 3 clock regions, write_bitstream issues multiple DRC errors similar to the following:
[Drc 23-20] Rule violation (PLIDC-1) IDELAYCTRL DRC Checks - The IODELAY instance 'ADC_UNIT0/adc_interface_dpa_i/IDELAY_CLOCK_RX' has no associated IDelayCtrl. IDELAYCTRL instance is required to calibrate IODELAY instances.
This can occur when only one IDELAYCTRL is instantiated in a design but the IODELAYs have multiple IODELAY_GROUPs.
Vivado will only replicate the IDELAYCTRL if there is one instantiated and all IODELAYS are associated with the same IODELAY_GROUP.
Otherwise, you will need to instantiate all IDELAYCTRLs where required.
To resolve this issue, ensure that only a single IODELAY_GROUP is used which includes all of the IODELAYs and the instantiated IDELAYCTRL.