Układy FPGA dają twórcom urządzeń niespotykane dotąd możliwości. W niewielkiej obudowie jest zawarty ogromny potencjał, między innymi możliwość wykonania rdzenia procesora wraz z otoczeniem, niekoniecznie tym najbliższym, ale również z modułami peryferyjnymi.
Mikrokontroler Freedom E310
RISC-V to darmowa i otwarta architektura mikrokontrolerowa ISA, opublikowana na postawie otwartej licencji, która zachęca do powszechnego stosowania i umożliwia każdemu implementację architektury we własnym urządzeniu lub symulacji FPGA, lub ASIC. Mogą to być urządzenia klasy ultra-low power IoT, urządzenia mobilne, komputery przenośne czy stacjonarne i serwerowe oraz urządzenia przeznaczone do aplikacji HPC.
RISC-V nie jest procesorem jako takim – jest to model programowy procesora ISA. Mimo to fundacja RISC-V Foundation zapewnia implementację referencyjnego procesora o nazwie Rocket wraz z narzędziami, które ułatwiają generowanie rdzeni oraz zestaw narzędzi kompilatora GNU.
SiFive to organizacja komercyjna, która została założona przez twórców RISC-V, dostarcza produkty, które zawierają rdzenie IP i platformy SoC, opracowane i publikowane jako IP core’y. Ich podstawowa platforma sprzętowa SoC o nazwie Freedom E300 jest oparta o rdzeń E3 Coreplex, dostępny jako IP core do implementacji w układach ASIC, może być także stosowana w układach FPGA. Projekt układu Freedom E310, który umieścimy w pamięci konfiguracyjnej płytki Arty, opiera się na architekturze SoC.
Konfiguracja sprzętowa
W zestawie Digilent Arty zintegrowano programator USB-JTAG, który może być użyty do programowania bezpośrednio układu FPGA Xilinx Artix-35T oraz pamięci QuadSPI, która zwykle jest używana do konfigurowania FPGA po włączeniu zasilania. Interfejs JTAG ARM-USB-TINY-H USB jest wymagany w celu zapewnienia połączenia z rdzeniem RISC-V do debugowania/programowania tego układu. W ten sposób mamy do dyspozycji w pełni programowalną platformę sprzętową, na której można zarówno dowolnie modyfikować projekt samego mikrokontrolera, jak i załadować własny kod i uruchomić go na platformie.