Visible to Intel only — GUID: blo1544541010795
Ixiasoft
1. Intel® Hyperflex™ FPGA Architecture Introduction
2. Intel® Hyperflex™ Architecture RTL Design Guidelines
3. Compiling Intel® Hyperflex™ Architecture Designs
4. Design Example Walk-Through
5. Retiming Restrictions and Workarounds
6. Optimization Example
7. Intel® Hyperflex™ Architecture Porting Guidelines
8. Appendices
9. Intel® Hyperflex™ Architecture High-Performance Design Handbook Archive
10. Intel® 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
Visible to Intel only — GUID: blo1544541010795
Ixiasoft
2.3.2.2.4. (Optional) Auto-Pipeline Insertion without a Variable Latency Module
You can optionally enable auto-pipeline insertion, without use of the variable latency module (hyperpipe_vlat) by following these steps for the target registers:
- To specify the maximum number of stages to insert, click Assignments > Assignment Editor, and then select Maximum Additional Pipelining for Assignment Name, enter the maximum number of pipelines for Value, and the hierarchical path to the register for To. Alternatively, you can add the following equivalent assignment to the .qsf.
set_instance_assignment -name HYPER_RETIMER_ADD_PIPELINING \ <maximum stages> -to <register path>
Note: If you embed the assignment in RTL with the altera_attribute statement, rather than adding to the .qsf, you must specify the numeric value as a string in Verilog HDL and VHDL. - To prevent any optimization of the bus before auto-pipelining inserts additional stages, specify the preserve pragma, and set Netlist Optimizations to Never Allow for the target registers in the Assignment Editor or with the following .qsf assignment. Any optimization of the bus before autopipelining can impact the signal integrity of if autopipelining adds additional stages to some but not all bits of the bus.
set_instance_assignment -name \ ADV_NETLIST_OPT_ALLOWED NEVER_ALLOW -to <register path>
- To ensure that related registers receive the same number of additional pipeline stages, create an assignment group to associate and assign all registers in the group. If you do not define an assignment group, the group names auto-generate with a prefix of add_pipelining_group, and each register that you specify for HYPER_RETIMER_ADD_PIPELINING becomes a group.
The following line shows the syntax of the .qsf group assignment:
set_instance_assignment -name \ HYPER_RETIMER_ADD_PIPELINING_GROUP <group name string> \ -to <register path>