Skip to main content

AWS F2 FPGA Platform

AWS F2 instances provide access to Xilinx Virtex UltraScale+ VU9P FPGAs with 3 dies (SLRs), 16GB DDR4 memory, and high-bandwidth PCIe connectivity. Beethoven supports the complete F2 development workflow from simulation to cloud deployment.

Overview

The AWS F2 development workflow uses a two-instance approach:

  • Build Instance: EC2 instance with Vivado for running synthesis and place-and-route
  • F2 Instance: f2.2xlarge with actual FPGA for deployment and testing

Prerequisites

AWS Account Setup

  1. AWS CLI Configuration
aws configure
# Enter your AWS access key ID, secret key, and default region
  1. S3 Bucket for Artifacts
aws s3 mb s3://beethoven-<your-username>
  1. EC2 Key Pair Create or import an SSH key pair in your AWS region for instance access.

Required Tools (Local Machine)

  • Scala/sbt: For Beethoven hardware generation
  • AWS CLI: For managing instances and AFI creation
  • SSH: For connecting to build and F2 instances

F2 Instance Access

Request F2 instance access through AWS support if not already enabled for your account.

Workflow Summary

The complete F2 development workflow consists of 6 steps:

  1. Verify Architecture in Simulation - Test with BuildMode.Simulation
  2. Initialize F2 Build Instance - Run aws-init script for one-time setup
  3. Generate with Synthesis Mode - Use BuildMode.Synthesis (auto-copies to build instance)
  4. Run Build on Instance - Execute aws_build_dcp_from_cl.py for synthesis and P&R
  5. Transfer DCP - Use aws-build-mv to move design checkpoint to S3
  6. Deploy to F2 - Create AFI and load onto F2 instance