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