07-22-2015 09:09 PM
I got a crtical path, from INPUT of of IOBUFDS goes through OUT of IOBUFDS.
Vivado 2015.2, Don't understand why are they related, I was expecting T to make totally separate data path.
Is there special constraint needed? What am I missing?
Thanks,
07-22-2015 10:03 PM - edited 07-22-2015 10:07 PM
hi
As you can see in the below figure. When T is enabled(i.e '0'). I input not only drives IO port, but also drives O output.
hence I --> O is a valid path.
I understand that you might not consider 'O' output of IOBUFDS as along T is enabled(i.e '0').
If you see any timing violation in these kinds of logically unused paths, you can apply a set_false_path constraint on such paths.
As the timing is meeting anyway with reasonable slack. I suggest that you ignore them.
07-22-2015 09:50 PM
Hi,
Do you mean from the input of the IOBUFDS on the external side to the output on the fabric side? Or is this path between both fabric end input and output.
What is the exact path mentioned in the report as a critical path.
I dont think this path needs timing as only one of them is active based on the T selection. Probably cross-check other basic timing constraints which you might have missed which are to be applied to the inputs paths. e.g set_input_delay.
07-22-2015 10:03 PM - edited 07-22-2015 10:07 PM
hi
As you can see in the below figure. When T is enabled(i.e '0'). I input not only drives IO port, but also drives O output.
hence I --> O is a valid path.
I understand that you might not consider 'O' output of IOBUFDS as along T is enabled(i.e '0').
If you see any timing violation in these kinds of logically unused paths, you can apply a set_false_path constraint on such paths.
As the timing is meeting anyway with reasonable slack. I suggest that you ignore them.
07-23-2015 06:07 AM
Thanks for all replies; The diagram is literally accurate. I will add a false path.
01-13-2016 10:48 AM
Link added here for the same topic and scenario when applied to a single-ended (LVCMOS) bidirectional IOBUF:
set_disable_timing arc issue vs. set_false_path in bidirectional