For both IDELAY and ODELAY in both Native and Component mode, when using TIME mode if there is a small initial DELAY_VALUE* that is set then in hardware, the delay will not be observed as requested.
*Note: this is called RX_DELAY_VALUE and TX_DELAY_VALUE in Native mode.
In Vivado 2016.3 a software change has been made so that any DELAY_VALUE (expect 0 for the TX_BITSLICE, See (Xilinx Answer Record 66434)) can be used. However DELAY_VALUE settings of < 20ps may still have a small round off error of upto +/-15ps.
For users of 2016.2 and earlier versions, if the initial DELAY_VALUE was equal to or greater than 20 ps then this is not an issue.
For users of 2016.2 with an initial DELAY_VALUE of less than 20 ps, the delay in hardware will not be what was requested. However all of the IDELAY/ODELAYs with bytes/banks that have the same DELAY_VALUE will be aligned to each other.
If you are using the Clock Forward feature of the High Speed SelectIO Wizard with the Phase set to 90 the clock to data alignemnet could be affected, there is an issue that due to incorrect delay on the data it will not be 90 degrees out of phase with the clock.
To work around the issue, choose an initial DELAY_VALUE equal to or greater than 20 ps.