A proof-of-concept repository that helps FPGA software engineers bridge an AMD/Xilinx Vitis HLS RTL export into an AWS EC2 FPGA F2 HDK Customer Logic (CL) project, which can then be packaged into an AFI using the standard AWS flow.
Note: Despite the repository name, this repo generates an AWS F2 HDK CL project from a Vitis HLS RTL export.
AFI creation is performed using the standard AWS HDK CL → DCP → AFI flow.
This repository provides a lightweight, opinionated bridge from Vitis HLS RTL export to a buildable AWS EC2 F2 HDK CL project. Once generated, you can proceed with the standard AWS tooling to produce an AFI via CL → DCP → AFI.
Status note (as of 2025-12-25): AWS F2 Vitis documentation indicates that Vitis-based AFI generation is not supported on F2 instances. Please verify the latest status in the AWS docs:
https://awsdocs-fpga-f2.readthedocs-hosted.com/latest/vitis/README.html
Given a Vitis HLS synthesis/export output directory, the generator automates the following:
s_axilite control interfacem_axi memory-mapped master interfaces_axilite and/or multiple m_axim_axi is present, include DDR crossbar in the CL project.m_axi, or multiple s_axilite.regs.py: a helper file containing extracted register/address metadata from the synthesized RTL (Verilog), intended to simplify host-side integration.hls_to_cl.pys_axilite, at most one m_axi)m_axi is detectedTUTORIAL.mdhls_to_cl.pyexamples_hls/
README.md: how to run HLS synthesis/export for each example, and where the generator expects outputs.vadd_ocl/: example HLS design with s_axilite only
s_axilite (required), no m_axivadd_ocl_ddr/: example HLS design with s_axilite + m_axi
s_axilite + m_axiexamples_cl/
README.md: how these CL folders were generated, what they correspond to, and how to validate outputs.cl_vadd_ocl/: reference CL generated by running hls_to_cl.py on examples_hls/vadd_ocl/cl_vadd_ocl_ddr/: reference CL generated by running hls_to_cl.py on examples_hls/vadd_ocl_ddr/ (includes the m_axi path)cl_python_runtime/
hls_to_cl_resources/
FAQ.md
Common questions, limitations, and troubleshooting notes for the scripts and integration flow.
LICENSE.md
Repository license (see also Third-party code and licenses).
README.mdThis workflow has two stages with different environment requirements:
aws-fpga (F2 branch) with hdk_setup.sh sourced in each shellNote: The generator can run anywhere, but building DCP/AFI requires an AWS HDK-capable environment (recommended: AWS FPGA Developer AMI).
For authoritative and up-to-date details, refer to the AWS Shell Interface Specification:
https://awsdocs-fpga-f2.readthedocs-hosted.com/latest/hdk/docs/AWS-Shell-Interface-Specification.html
For a step-by-step walkthrough, see:
This repository is maintained as a portfolio-quality proof of concept focused on cloud FPGA acceleration workflows, CL/shell integration, and build automation around AWS EC2 F2.
For collaboration or opportunities related to FPGA acceleration and systems-level tooling, please reach out via:
Unless otherwise indicated in a file’s header or accompanying notices, all original source code authored by this repository’s owner is licensed under the Apache License 2.0 (see LICENSE.md).
This repository includes third-party materials, including files copied from and/or modified from the AWS FPGA Hardware Development Kit (HDK). Such files retain their original copyright and license notices and are licensed under the license identified in the relevant file headers and/or accompanying notice files.
AWS-provided/AWS-derived files may be licensed under the Amazon Software License (see LICENSES/Amazon-Software-License.txt). The Amazon Software License is not the Apache License 2.0; it contains a use limitation and other terms that govern use of the AWS-provided/AWS-derived files. In the event of any conflict, the applicable third-party license terms control.