O FemtoRV é um processador minimalista de 32-bit com arquitetura RISC-V desenvolvido por Bruno Levy.
Inicialmente o FemtoRV foi projetado para rodar em uma iCEstick, uma placa com uma FPGA de apenas 1280 elementos lógicos! Com o passar do tempo novas placas também passaram a ser suportadas, como a iCEBreaker, ARTY, ULX3S entre outras.
Mesmo com diferentes placas suportadas, não há um port para placas com FPGAs Altera/Intel, pois o projeto utiliza ferramentas open-source como o Yosys e o NextPnR que no momento suportam apenas algumas famílias de FPGAs Lattice e Xilinx.
Para poder estudar o FemtoRV e a arquitetura RISC-V mesmo não possuindo nenhuma das placas suportadas resolvi fazer o port para a placa DE10-Lite que já possuo.
Utilizei a versão free do Quartus (Intel Quartus Prime Lite Edition 18.1) para síntese e o ModelSim, também na sua versão free já inclusa no Quartus (Starter Edition 10.5) para rodar as simulações.
Como ponto de partida utilizei o tutorial From Blinker to RISC-V do Bruno Levy.
Este repositório contém o resultado do processo de portabilidade, customização e implementação do FemtoRV e está organizado da seguinte forma:
A pasta modules contém todos os blocos do FemtoRV e um testbench simples para simulação e a pasta firmware contém dois programas de teste.