• Tutoriais Alunos

Overview

O projeto final da disciplina deve ser um tutorial que tenha relação com ao menos um objetivo de aprendizagem da matéria:

  • Formular soluções que satisfazem requisitos de hardware e software de projetos com FPGA-SoC (System-on-a-chip)
  • Integrar em um protótipo solução para um sistema embarcado com requisitos de processamento e/ou tempo real via FPGA-SoC
  • Interfacear diferentes módulos em um sistema embarcado (processadores, firmware e sistema operacional)

Áreas

Alguns exemplos de áreas que podem ser exploradas:

  1. Aceleração/ implementação de algum algorítimo em hardware
    • processamento de dados, FFT, compressão, criptografia, ...
    • HLD/ HLS/ OpenCL/ FPGA Amazon
  2. Comparação de performance entre diferentes tecnologias
    • SoC vs GPU vs FPGA vs uC
  3. Sistema operacional
    • Escalonador real time kernel linux, Android, RTOS embarcado

Anos passados

De uma olhada no que os seus colegas já fizeram:

  • PS3 Hack
  • Android para Raspbery Pi 3
  • Periférico para controlar matriz de LED
  • Driver linux para acender LEDs
  • SoC e Python
  • SDAccel / Vittis - Algoritmo metropolis
  • Áudio na DE10
  • Criptografia em Hardware - FPGA
  • TensorFlow - Jetson Nano
  • OpenCL - FPGA
  • Yocto
  • Jetson Nano - GPU
  • FPGA na AWS
  • Linux device driver

Tecnologias/ Ferramentas

A seguir uma lista de tecnologias que podem ser estudadas no tutorial:

Hardwares

A seguir, eu tentei resumir os hardwares disponíveis no Insper e as respectivas tecnologias que podem ser utilizados para desenvolver os projetos:

Kit Empresa Tecnologia 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
instância F1 AWS FPGA x
Jetson TK2 NVIDIa ARM + GPU x x x

Exemplos de temas/ coisas legais

legenda: ‼ demanda uma dedicação maior

  • Criando um SoftProcessor e API para controlar um Drone
  • OpenCV acelerado com OpenCL - ZedBoard
  • !! Criar uma aplicação com HLS/OpenCL que acelera uma função na FPGA
    • Processamento de imagem/ compressão de dados/ criptografia/ fft/ ...
  • Criar uma aplicação com OpenCL na AWS
  • Embarcando ROS no SoC-FPGA (primeiro passo para controlarmos os robôs de robótica com a FPGA)
  • ‼ Usar o LCD LT24 com o Linux (Comunicação ARM-FPGA)
  • Real Time kernel é realmente tempo real? Estudo de latência...
  • Otimizando o boot time do linux
  • Executando Android na DE10-Standard
  • Interface gráficas em sistemas embarcados (exe: criar um totem de pagamento)
  • Device driver: Criar um driver no linux para algum sensor de distância
  • ‼ Criar um periférico para controlar a fita de LED RGB e criar um driver para o Linux controlar
  • BanchMark entre os diferentes kits de desenvolvimento
  • Usando o yocto como alternativa ao buildroot para gerar o Linux