Intel® FPGA SDK for OpenCL™: Stratix® V Network Reference Platform Porting Guide
ID
683645
Date
11/06/2017
Public
2.1. Initializing Your Custom Platform
2.2. Removing Unused Hardware
2.3. Integrating Your Custom Platform with the Intel® FPGA SDK for OpenCL™
2.4. Setting up the Software Development Environment
2.5. Building the Software in Your Custom Platform
2.6. Establishing Host Communication
2.7. Connecting the Memory
2.8. Integrating an OpenCL Kernel
2.9. Programming Your FPGA Quickly Using CvP
2.10. Guaranteeing Timing Closure
2.11. Troubleshooting
3.1. Host-FPGA Communication over PCIe
3.2. DDR3 as Global Memory for OpenCL Applications
3.3. QDRII as Heterogeneous Memory for OpenCL Applications
3.4. Host Connection to OpenCL Kernels
3.5. Implementation of UDP Cores as OpenCL Channels
3.6. FPGA System Design
3.7. Guaranteed Timing Closure
3.8. Addition of Timing Constraints
3.9. Connection to the Intel® FPGA SDK for OpenCL™
3.10. FPGA Programming Flow
3.11. Host-to-Device MMD Software Implementation
3.12. OpenCL Utilities Implementation
3.13. Stratix V Network Reference Platform Implementation Considerations
3.8. Addition of Timing Constraints
A Custom Platform must apply the correct timing constraints to the Intel® Quartus® Prime project. In the Stratix® V Network Reference Platform, the top.sdc file contains all timing constraints applicable before IP instantiation in Platform Designer (Standard). The top_post.sdc file contains timing constraints applicable after Platform Designer (Standard). The order of the application is based on the order of appearance of the top.sdc and top_post.sdc in the top.qsf file.
One noteworthy constraint in s5_net is the multicycle constraint for the kernel reset in the top_post.sdc file. Using global routing saves routing resources and provides more balanced skew. However, the delay across the global route might cause recovery timing issues that limit kernel clock speed. Although Intel® requires all logic to exit reset mode in the same clock cycle, it is not necessary for the exit to happen in the same clock cycle as reset deassertion. Therefore, Intel® adds a multicycle setup constraint of 2 and multicycle hold of 1 to the kernel reset. Without these additions, even with reset drivers located directly adjacent to global clock buffers, the highest kernel Fmax that Intel® achieves is around 320 MHz.