Hyperflex® Architecture High-Performance Design Handbook
ID
683353
Date
7/07/2025
Public
Answers to Top FAQs
1. Hyperflex® FPGA Architecture Introduction
2. Hyperflex® Architecture RTL Design Guidelines
3. Compiling Hyperflex® Architecture Designs
4. Design Example Walk-Through
5. Retiming Restrictions and Workarounds
6. Optimization Example
7. Hyperflex® Architecture Porting Guidelines
8. Appendices
9. Hyperflex® Architecture High-Performance Design Handbook Archive
10. Hyperflex® Architecture High-Performance Design Handbook Revision History
2.4.2.1. High-Speed Clock Domains
2.4.2.2. Restructuring Loops
2.4.2.3. Control Signal Backpressure
2.4.2.4. Flow Control with FIFO Status Signals
2.4.2.5. Flow Control with Skid Buffers
2.4.2.6. Read-Modify-Write Memory
2.4.2.7. Counters and Accumulators
2.4.2.8. State Machines
2.4.2.9. Memory
2.4.2.10. DSP Blocks
2.4.2.11. General Logic
2.4.2.12. Modulus and Division
2.4.2.13. Resets
2.4.2.14. Hardware Re-use
2.4.2.15. Algorithmic Requirements
2.4.2.16. FIFOs
2.4.2.17. Ternary Adders
5.2.1. Insufficient Registers
5.2.2. Short Path/Long Path
5.2.3. Fast Forward Limit
5.2.4. Loops
5.2.5. One Critical Chain per Clock Domain
5.2.6. Critical Chains in Related Clock Groups
5.2.7. Complex Critical Chains
5.2.8. Extend to locatable node
5.2.9. Domain Boundary Entry and Domain Boundary Exit
5.2.10. Critical Chains with Dual Clock Memories
5.2.11. Critical Chain Bits and Buses
5.2.12. Delay Lines
5.2.4.1. Example of Loops Limiting the Critical Chain
The following screenshots show the relevant panels from the Fast Forward Details report and the logic contained in the critical chain.
Figure 120. Fast Forward Details Report showing Limiting Reason for Hyper-Optimization is a Loop
In Figure 121, the Register ID for the start and end points is the same, which is #1. This case indicates that the start and end points of the chain are the same, thereby creating a loop.
Figure 121. Critical Chain with Loop (lines 1-34)
Figure 122. Critical Chain with Loop (lines 35-65)
Figure 123 shows the output of the Addr_wr[0] register feeding back to its enable input through eight levels of combinational logic.
Figure 123. Critical Chain in Technology Map Viewer
The figure does not show the other inputs to the logic cone for the Addr_wr[0] register. Source Code for Critical Chain shows portions of the source, and some inputs to the Addr_wr registers.
Source Code for Critical Chain
assign Add_wr_pluse =Add_wr+1; assign Add_wr_pluse_pluse =Add_wr+4; always @ (Add_wr_pluse or Add_rd_ungray) if (Add_wr_pluse==Add_rd_ungray) Full =1; else Full =0; always @ (posedge Clk_SYS or posedge Reset) if (Reset) Add_wr <= 0; else if (Wr_en&&!Full) Add_wr <= Add_wr +1;