AN 584: Timing Closure Methodology for Advanced FPGA Designs

ID 683145
Date 10/08/2021
Public
Document Table of Contents

1.4.2.1. Plan for Design Hierarchy and Block Partitioning

Flat designs are generally more difficult to optimize and debug because you cannot always isolate the timing issue. Using a hierarchical design methodology offers several advantages, such as:

  • Hierarchical designs allow easier debug and optimization of individual design blocks.
  • You can assign the design hierarchy elements into logical partitions that are functionally independent.
  • These partitions allow stand-alone block verification.
  • You can use design blocks for reuse and preserve synthesis and timing results for blocks that are fully coded and meeting timing.

Planning ahead by appropriately partitioning your design reduces the need for unplanned changes when closing timing at the end of the design cycle.

When you change RTL code or Compiler settings for one block in the design, this produces different compilation results compared to previous settings. The different compilation results can cause timing violations in blocks that do not reflect the same corresponding code or setting changes. However, with the block-based incremental compilation flow, you can preserve earlier results for a block that you do not want to change.

The incremental block-based compilation feature allows you to partition a design, compile the design partitions separately, and reuse the results for unchanged partitions. You can preserve performance of unchanged blocks and reduce the number of design iterations. The performance preservation of incremental block-based compilation allows you to focus timing closure on unpreserved partitions, or on blocks that have difficulty meeting timing requirements.

Design block reuse and incremental block-based compilation flows are available in the Intel® Quartus® Prime software. For more information on effectively using these flows, refer to Intel® Quartus® Prime Pro Edition User Guide: Block-Based Design.