Dans le précédent article, nous avons exploré le fait de composer un SoC « maison » grâce au framework LiteX, de le synthétiser, de le configurer dans la mémoire du FPGA et de créer un petit code en C qui, une fois compilé, est exécuté par le softcore RISC-V. Mais ce n'était pas suffisant et j'ai continué les expérimentations, tombant sur plusieurs subtilités très intéressantes que je me dois de partager avec vous ici. Poursuivons donc notre découverte du fabuleux et captivant monde de LiteX...
Encore une fois, ce qui va suivre est vaguement générique et pourra être adapté à n'importe quelle plateforme FPGA sélectionnée, puisque l'objectif est précisément de comprendre la mécanique de LiteX ainsi que, ici, les liens qui unissent la configuration matérielle, au niveau du design, avec l'aspect logiciel, typiquement le code que vous allez écrire pour être exécuté par le softcore. C'est, je pense, l'un des éléments les plus intéressants puisqu'on manipule des concepts sur plusieurs niveaux, contrairement à ce qu'on fait généralement en développant pour un OS ou même un MCU en bare metal. Ici, la relation entre le matériel, comme la structuration de la mémoire par exemple, et le code, est totalement accessible et modulaire, comme nous le verrons un peu plus loin.
La base des manipulations expérimentales est, comme pour le précédent article, une carte Terasic DE0-Nano, mais celle-ci se verra accompagnée d'une petite copine dont j'avais évoqué l…
- 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