Intel® FPGA SDK for OpenCL™: Intel® Stratix® 10 GX FPGA Development Kit Reference Platform Porting Guide

ID 683809
Date 3/28/2022
Public
Document Table of Contents

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.
  1. 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.
  2. 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.
  3. 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
  4. 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.aocx
    Attention: 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.
  5. 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.
  6. 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.
  7. 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).