Skip to content

Overview

The final project for the course should be a tutorial related to at least one learning objective of the subject:

  • Formulate solutions that meet hardware and software requirements for FPGA-SoC (System-on-a-chip) projects
  • Integrate a prototype solution for an embedded system with processing and/or real-time requirements via FPGA-SoC
  • Interface different modules in an embedded system (processors, firmware, and operating system)

Areas

Some examples of areas that can be explored:

  1. Acceleration/implementation of some algorithm in hardware
    • data processing, FFT, compression, cryptography, ...
    • HLD/HLS/OpenCL/Amazon FPGA
  2. Performance comparison between different technologies
    • SoC vs GPU vs FPGA vs uC
  3. Operating system
    • Real-time scheduler, Linux kernel, Android, embedded RTOS

Previous Years

Take a look at what your colleagues have already done:

  • PS3 Hack
  • Android for Raspberry Pi 3
  • Peripheral to control LED matrix
  • Linux driver to turn on LEDs
  • SoC and Python
  • SDAccel / Vittis - Metropolis algorithm
  • Audio on DE10
  • Hardware Cryptography - FPGA
  • TensorFlow - Jetson Nano
  • OpenCL - FPGA
  • Yocto
  • Jetson Nano - GPU
  • FPGA on AWS
  • Linux device driver

Technologies/Tools

Below is a list of technologies that can be studied in the tutorial:

Hardware

Below, I tried to summarize the hardware available at Insper and the respective technologies that can be used to develop the projects:

KitCompanyTechnologyvhdlHLSOpenCLLinuxOpenCVCuda
Arria 10 SoCIntelFPGA + ARMxxxxx
DE10-StandardIntelFPGA + ARMxxxxx
DE10-nano-socIntelFPGA + ARMxxxxx
Terasic SoC SoMIntelFPGA + ARMxxxxx
DE5a-NET-DDR4IntelFPGAxxxx
ZedBoardXilinxFPGA + ARMxxxxx
F1 instanceAWSFPGAx
Jetson TK2NVIDIAARM + GPUxxx

Example topics/cool ideas

legend: ‼ requires greater dedication

Released under the project license.