Lattice Semiconductor FPGA
Lattice Semiconductor
Successful Place and Route
16-3
Block Asynchronous Paths: Prevents the timing tools from analyzing any paths from input pads to regis-
ters or from input pads to output pads.
Block RAM Reads during Write: If using PFU based RAM, this will prevent timing analysis on a RAM read
during a write on the same address in a single clock period.
Frequency/Period <net>: Each clock net in the design should contain a frequency or period preference.
Input Setup: Each synchronous input should have an input_setup preference.
Clock-to-Out: Each synchronous output should have a clock_to_out preference.
Block <net>: All asynchronous reset nets in the design should be blocked.
Multicycle: The multicycle preference allows the designer to relax a frequency/period constraint on
selected paths.
Proper Preferences
Providing proper preferences is key to a successful design. If the constraints of a preference file are tighter than the
system requirements, the design will end up being over-constrained. As a consequence, PAR run times will be con-
siderably longer. In addition, over-constraining non-critical paths will force PAR to waste unnecessary processing
power trying to meet these constraints, hence creating possible conflicts with real critical paths that ought to be
optimized first.
On the other hand, if a preference file is under-constrained compared to real system requirements, real timing
issues not previously seen during dynamic timing simulations and static timing analysis could be observed on a
test board, or during production.
Common causes of over-constrained timing preferences include:
Multicycle paths not specified.
Multiple paths to/from I/Os with different specifications.
Attempt to fool the PAR tool with tighter than necessary specifications.
Note that over-constrained designs will also need a significantly larger amount of processing power and computing
resources. As a result, it might be necessary to increase some of the allocated system resources (as in increasing
your PC virtual memory paging size).
Common causes of under-constrained timing preferences include:
I/O specifications not defined.
Asynchronous logic without MAXDELAY preferences.
Internally generated or unintentional clocks not specified in preference file.
Blocking critical paths.
In general, to make sure that no critical paths were left out due to under-constraining, it is recommended to check
for path coverage at the end of a Trace report file (.twr).
Figure 16-1. Trace Report (.twr) Timing Summary Example
Timing summary:
---------------
Timing errors: 4096
Score: 25326584
Constraints cover 36575 paths, 6 nets, and 8635 connections (99.0% coverage)