Dans un précédent article [1], nous avons découvert LiteX, une solution permettant de créer des périphériques et SoC en toute simplicité, sans avoir à apprendre à utiliser des langages de description de matériel comme Verilog et VHDL. Aujourd'hui, poussons plus loin l'exploration de ce framework doublé d'une infrastructure de construction et basé sur Python en faisant fonctionner un système d'exploitation GNU/Linux sur une plateforme « full FPGA » RISC-V.
Initialement développé par Enjoy-Digital comme base pour des projets clients et disponible sous licence open source très permissive de type BSD, LiteX [2] est un framework et un ensemble de composants permettant de créer tout type de matériel, avec un accent tout particulier mis sur l'implémentation de systèmes complets à base RISC-V. Principalement écrit en Python, avec la boîte à outils Migen pour la description de circuits logiques, LiteX s'accompagne d'une collection de périphériques (interface DRAM, Ethernet, contrôleur SATA, SPI, i2c, support de carte SD/TF, etc.) qui viendront se greffer à un processeur softcore supporté (VexRiscv, Rocket, LM32, Mor1kx, PicoRV32, BlackParrot, etc.) pour créer un SoC sur mesure qu'on pourra ensuite soit simuler (avec Verilator), soit configurer sur l'une des quelque 180 cartes cibles prisent en charge.
Notre objectif ici sera non seulement de créer un SoC RISC-V complet, mais également d'y faire fonctionner un système...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première