Descrição do trabalho prático
Executar em um processador softcore em FPGA (exemplo de softcore: NIOS V da Altera, MicroBlaze da Xilinx ou algum RISC-V) uma rede neural CNN para a classificação de dígitos decimais escritos a mão conforme a base de dados MNIST. O projeto deverá explorar variações de configuração do processador softcore, como a adição de instruções customizadas, a adoção ou não de FPU, tamanho, níveis e modo de operação da memória cache, uso ou não de SO, e etc.. Aplicar também formas de otimização no código fonte. Assim, encontrar um conjunto de soluções que visem maximizar throughput, latência e acurácia das inferências da rede neural. Note que esses objetivos são conflitante, o que acarreta na formação de uma fronteira de Pareto. A rede pode ser treinada offline e a adoção de runtime é opcional (ONNX Runtime Micro ou TensorFlow Lite for Microcontrollers (TFLM)). Alternativamente, o grupo pode propor a aplicação da CNN em outro problema.
O trabalho pode ser desenvolvido em trio, dupla ou individualmente.