Hi I'm having some doubts regarding IOBDELAY attribute in ISERDESE2. Let me first explain my architecture.
I was having the following architecture first:
Clock : pad --> IBUFDS --> BUFIO --> ISERDESE2
Data : pad --> IBUFDS --> ISERDESE2
Where ISERDESE2 was configured in "MEMORY" INTERFACE_TYPE. and IOBDELAY attribute is "NONE". But this setup was having hold errors. So I added IDELAY in data path.
Data : pad --> IBUFDS --> IDELAY --> ISERDESE2. For this I connected IDELAY output to DDLY input of ISERDESE2 and "D" input of ISERDESE2 is tied to zero, and other parameters are untouched. But when I checked timing there is no report on setup and hold for this path.
But When I changed IOBDELAY attribute to "BOTH", timing report is having setup ad hold information on this path. Why is this?
This logic is working on the hardware for both cases. (issues are there due to hold error).
According to UG471, If IOBDELAY matters even if "D" is disconnected, I should get "0" with IOBDELAY "NONE" case.