• Students tutorials

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:

Kit Company Technology vhdl HLS OpenCL Linux OpenCV Cuda
Arria 10 SoC Intel FPGA + ARM x x x x x
DE10-Standard Intel FPGA + ARM x x x x x
DE10-nano-soc Intel FPGA + ARM x x x x x
Terasic SoC SoM Intel FPGA + ARM x x x x x
DE5a-NET-DDR4 Intel FPGA x x x x
ZedBoard Xilinx FPGA + ARM x x x x x
F1 instance AWS FPGA x
Jetson TK2 NVIDIA ARM + GPU x x x

Example topics/cool ideas

legend: β€Ό requires greater dedication

  • Creating a SoftProcessor and API to control a Drone
  • OpenCV accelerated with OpenCL - ZedBoard
  • !! Create an application with HLS/OpenCL that accelerates a function on the FPGA
    • Image processing/data compression/cryptography/fft/...
  • β€Ό Create an application with OpenCL on AWS
  • Embedding ROS on SoC-FPGA (first step to control robotics robots with FPGA)
  • β€Ό Use the LCD LT24 with Linux (ARM-FPGA Communication)
  • Real Time kernel is it really real time? Latency study...
  • Optimizing boot time for Linux
  • Running Android on DE10-Standard
  • Graphical interfaces in embedded systems (e.g.: create a payment kiosk)
  • Device driver: Create a Linux driver for some distance sensor
  • β€Ό Create a peripheral to control the RGB LED strip and create a driver for Linux to control it
  • Benchmark between different development kits
  • Using yocto as an alternative to buildroot to generate Linux