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
7.1.4. Pin Assignments
Black-boxing logic can be the cause of some pin assignment errors. Use the following guidelines to resolve pin assignments. Reassign high-speed communication input pins to correct such errors.
The FPGA checks for the status of high-speed pins and generates some errors if you do not connect these pins. When you black-box transceivers, you may encounter this situation. To address these errors, re-assign the HSSI pins to a standard I/O pin. Verify and change the I/O bank if necessary.
In the .qsf file, the assignment translates to the following:
set_instance_assignment –name IO_STANDARD “2.5 V” –to hip_serial_rx_in1 set_instance_assignment –name IO_STANDARD “2.5 V” –to hip_serial_rx_in2 set_instance_assignment –name IO_STANDARD “2.5 V” –to hip_serial_rx_in3 set_location_assignment IOBANK_4A –to hip_serial_rx_in1 set_location_assignment IOBANK_4A –to hip_serial_rx_in2 set_location_assignment IOBANK_4A –to hip_serial_rx_in3
Dangling pins
If you have high-speed I/O pins dangling because of black-boxing components, set them to virtual pins. Enter this assignment in the Assignment Editor, or in the .qsf file directly, as shown below:
set_instance_assignment –name VIRTUAL_PIN ON –to hip_serial_tx_in1 set_instance_assignment –name VIRTUAL_PIN ON –to hip_serial_tx_in2 set_instance_assignment –name VIRTUAL_PIN ON –to hip_serial_tx_in3
GPIO pins
If you have GPIO pins, make them virtual pins using this qsf assignment:
set_instance_assignment VIRTUAL_PIN –to *