Intel® FPGA SDK for OpenCL™: Stratix® V Network Reference Platform Porting Guide

ID 683645
Date 11/06/2017
Public
Document Table of Contents

3.10.1.3. Base versus CvP Update Revisions in CvP Programming

Base revision and CvP update revision have separate but almost identical Intel® Quartus® Prime Settings Files named base.qsf and top.qsf, respectively.

The base.qsf file includes the following parameter settings:

set_global_assignment -name VERILOG_FILE system/synthesis/submodules/cvp_update_reset.v
set_global_assignment -name CVP_REVISION top
set_global_assignment -name ROUTING_BACK_ANNOTATION_FILE super_kernel_clock.rcf

The top.qsf file includes the following parameter settings:

set_global_assignment -name VERILOG_FILE system/synthesis/submodules/cvp_update_reset_zero.v
set_global_assignment -name REVISION_ TYPE CVP
set_global_assignment -name BASE_REVISION base
set_global_assignment -name INPUT_PERSONA persona/base.root_partition.personax -section_id Top
Figure 4. Base and CvP Revisions in top.qpfWhen you open the top-level Intel® Quartus® Prime Project File <path_to_s5_net>/hardware/s5_net/top.qpf in the Intel® Quartus® Prime software, the Project Navigator displays the base revision (base) and the CvP revision (top).
Figure 5. Base Revision Design PartitionsWhen you click Assignments > Design Partitions Window, the Design Partitions window lists two defined design partitions for the base revision.
  • acl_kernel_partition contains all kernel-related logic.
  • cvp_update_reset_partition contains the fix that works in conjunction with the pre_flow.tcl script to modify the PCIe® controller behavior.

For both partitions, the Allow Multiple Personas parameter is set to On. This setting indicates that the board interface logic remains unchanged, but these partitions might change across different compilations. The acl_kernel_partition comprises of different kernel logic resulting from the compilation of the OpenCL kernel source code, as shown below:

Figure 6. CvP Revision Design PartitionsThe Top partition, which contains everything other than acl_kernel_partition and cvp_update_reset_partition, preserves placement-and-routing by importing the input persona persona/base.root_partition.personax file.

In the case of a base revision compilation, invoking the export_persona -overwrite -partition Top Tcl command exports the persona/base.root_partition.personax file from the <path_to_s5_net>/hardware/s5_net/scripts/post_flow.tcl file. This .personax file is imported into all subsequent CvP update revision compilations. It preserves the placement and routing of all non-kernel-related logic so that CvP updates only change the logic residing in the kernel partition. Within the kernel partition, the kernel_system.qsys system is automatically generated at compilation time. It is a Platform Designer (Standard) subhierarchy of system.qsys. It contains one or more kernel IPs and wrapper logic to connect the kernel partition to the OpenCL board logic in board.qsys and the UDP logic in udp.qsys.