2.1. Host-to- Intel® Stratix® 10 FPGA Communication over PCIe® 2.2. DDR4 as Global Memory for OpenCL Applications 2.3. Host Connection to OpenCL Kernels 2.4. Partial Reconfiguration 2.5. Other Components in the Reference Design 2.6. Intel® Stratix® 10 FPGA System Design 2.7. Guaranteed Timing Closure of the Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Design 2.8. Intel® FPGA SDK for OpenCL™ Compilation Flows 2.9. Addition of Timing Constraints 2.10. Connection of the Intel® Reference Platform to the Intel® FPGA SDK for OpenCL™ 2.11. Intel® Stratix® 10 FPGA Programming Flow 2.12. Implementation of Intel® FPGA SDK for OpenCL™ Utilities 2.13. Considerations in Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Implementation
2.1.1. Instantiation of Intel® Stratix® 10 PCIe* Hard IP with Direct Memory Access 2.1.2. Device Identification Registers for Intel® Stratix® 10 PCIe Hard IP 2.1.3. Instantiation of the version_id Component 2.1.4. Board Support Package Software Layer 2.1.5. Direct Memory Access 2.1.6. Message Signaled Interrupt 2.1.7. Instantiation of board_cade_id_0 Component – JTAG Cable Autodetect Feature
3.1. Initializing Your Intel® Stratix® 10 Custom Platform 3.2. Modifying the Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Design 3.3. Integrating Your Intel® Stratix® 10 Custom Platform with the Intel® FPGA SDK for OpenCL™ 3.4. Setting up the Intel® Stratix® 10 Custom Platform Software Development Environment 3.5. Establishing Intel® Stratix® 10 Custom Platform Host Communication 3.6. Branding Your Intel® Stratix® 10 Custom Platform 3.7. Changing the Device Part Number 3.8. Connecting the Memory in the Intel® Stratix® 10 Custom Platform 3.9. Modifying the Kernel PLL Reference Clock 3.10. Integrating an OpenCL Kernel in Your Intel® Stratix® 10 Custom Platform 3.11. Troubleshooting Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Porting Issues
1. Intel® FPGA SDK for OpenCL™ Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Porting Guide
2.7. Guaranteed Timing Closure of the Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Design
3.3. Integrating Your Intel® Stratix® 10 Custom Platform with the Intel® FPGA SDK for OpenCL™
When modifying the Intel® Stratix® 10 GX FPGA Development Kit Reference Platform into your own Custom Platform, ensure that guaranteed timing closure holds true for your Custom Platform. Follow the steps below to ensure your design meets timing, to check your BSP with multiple kernels and to implement top revision compile flow.
- Set AOCL_BOARD_PACKAGE_ROOT to point to your custom platform. Use flat.qsf file in INTELFPGAOCLSDKROOT/board/s10_ref reference platform to determine the type of information you must include in the flat.qsf file for your Custom Platform.
- Update the <your_custom_platform>/hardware/<board_name>/board_spec.xml file. Ensure that there is at least one global memory interface, and all global memory interfaces correspond to the exported interfaces from the board.qsys Platform Designer system file.
- After all your hardware design changes are finalized, compile flat revision with several seeds of the INTELFPGAOCLSDKROOT/board/custom_platform_toolkit/tests/boardtest/boardtest.cl kernel until you generate a design that closes timing cleanly.
To specify the seed number during compile, include the -seed=<N> option in your aoc command. Use -bsp-flow=flat option in your aoc command for flat compile.
aoc -bsp-flow=flat boardtest.cl -o=bin/boardtest.aocx
- Based on the output of your flat revision compiles, establish the floorplan of your design in base revision. Add Logic Lock regions in base.qsf only. base.qsf and top.qsf files automatically inherit all the settings in the flat.qsf file.
Important: Consider all design criteria outlined in the Intel® Stratix® 10 FPGA System Design section in this guide. Compile base revision with several seeds of the INTELFPGAOCLSDKROOT/board/ custom_platform_toolkit/tests/boardtest/boardtest.cl kernel until you generate a design that closes timing cleanly. This flow is used to create the timing closed base database for the static region which is needed for guaranteed timing support. Use -bsp-flow=base option in your aoc command for base compile.
aoc -bsp-flow=base boardtest.cl -o=bin/boardtest.aocxAttention: In a typical development of a custom platform, designers generally validate the functionality of boardtest using the flat flow before starting to add guaranteed timing functionality to their BSP.
- From the compiled output directory for base revision compile, copy base.qar file into your Custom Platform hardware directory to replace old base.qar with new base.qar containing post-fit netlist for your reference platform.
- Make sure AOCL_BOARD_PACKAGE_ROOT is set to your reference platform with new base.qar and compile top revision, that is, default compilation flow. Confirm that you can use the .aocx file to reprogram the FPGA by invoking the aocl program acl0 boardtest.aocx command.
- Using the default compilation flow, test your base.qar file across several OpenCL design examples and confirm that the following criteria are satisfied:
- All compilations close timing.
- The OpenCL design examples achieve satisfactory fmax (Check the acl quartus_report.txt for achieved fmax).
Did you find the information on this page useful?