09-13-2012 02:50 PM
I was implementing a design on Virtex5 FPGA and in the implementation/map stage, I ran into this error -
Pack:1653 - At least one timing constraint is impossible to meet because
component delays alone exceed the constraint. A timing constraint summary
below shows the failing constraints (preceded with an Asterisk (*)). Please
use the Timing Analyzer (GUI) or TRCE (command line) with the Mapped NCD and
PCF files to identify which constraints and paths are failing because of the
component delays alone. If the failing path(s) is mapped to Xilinx components
as expected, consider relaxing the constraint. If it is not mapped to
components as expected, re-evaluate your HDL and how synthesis is optimizing
the path. To allow the tools to bypass this error, set the environment
variable XIL_TIMING_ALLOW_IMPOSSIBLE to 1.
I am new to such timing issues so my questions are -
1) If I do use the env variable mentioned above and am able to bypass the error, is that recommended or can I run into more issues?
2) The map report says that signals of a particular fifo that I have are giving this problem. How can I trace the exact cause of this issue?
3) I was slowly adding modules into my design, and after adding some new modules, this error showed up ... so what would this indicate?
4) What would be a good fix for such an issue, and the approach?
I've also attached the timing report. Any light on this issue will be of great help to me ...
Thanks and regards,
09-13-2012 03:02 PM
You will not fix the problem by setting the environment variable, however you will allow Map
to complete so you can get a complete timing report that shows the failing paths. Without
that there is no way to debug the issue.
It is possible that you have too many levels of logic for your required clock period, or you
have some clock crossings that are being unnecesssarily constrained by the tools. Without
at least a post-map timing report you don't know which is the case.
Bottoms line, set the variable, let map complete and look at the post map report to find
the failing path(s). Then decide whether you need to fix the paths or add constraints to
09-13-2012 04:17 PM - edited 09-13-2012 04:21 PM
Where do I need to go to set this env variable so that I can complete the map and P&R?
How to do this depends on the operating system.
Why not search the web for this information? Would you like help with the search?
With the more recent versions of ISE, the Navigator GUI does not depend on environment variables.
Are you ready to update your ancient ISE 10.1 to a newer version?
-- Bob Elkind
09-14-2012 05:23 AM
09-14-2012 07:45 AM
thanks for the replies, i was able to set the env variable and make the bitfile. the bitfile looks to run properly, but in the design summary, i have 2 failing constraints. i have attached the report to the post (timing_report.jpg).
the first 2 constraints are not being met. I am not sure if the report indicates a setup or hold time failure. and if it is either, how can i resolve them? should i just remove the constraint?
any inputs for this will be of great help to me.
09-14-2012 08:03 AM
You need to create a Verbose timing report to see the individually failing paths and decide
whether these are actually problems or not.
The two constraints that fail are both setup issues (negative slack is only on the SETUP line).
They also appear to be PERIOD constraints, but that doesn't necessarily mean that the failing
paths don't cross clock domains. You need to look at the failing paths in the report viewer,
which will show source and destination clocks.
If the paths are crossing clock domains that you consider to be unrelated (even though they
may be generated from the same clock input via DCM or PLL), then you may be able to ignore
If the paths are on the same clock for source and destination, then you need to check if these
paths can safely take more than one clock period to propagate, and if so create multicycle
"FROM : TO" constraints for them.
If none of these are the case, then you need to look closely at the design and decude how to
help it run faster. Search the forums for "timing closure" to help with this sort of issue.