Outils pour utilisateurs

Outils du site


fr:bricolage:electronique:projets:start_fpga

I'm an FPGA n00b

Ça fait des années que je vois de plus en plus la mention “FPGA” partout. Dans des mods pour consoles (émulation de lecteurs de disques, écrans modernes dans des consoles portables anciennes), pour remplacer les émulateurs software, dans les SDR et autres.

C'est super cool ce qu'ils arrivent à faire avec ces trucs, mais je ne m'y suis jamais plus intéressé que ça… jusqu'ici.

Je ne sais toujours pas très bien lequel de mes projets pourrait bénéficier de l'usage d'un FPGA. Mais peut-être qu'en apprivoisant la bête, je vais mieux comprendre dans quels domaines ça pourrait être utile.

Hardware

Mais comme ça m'intrigue et parce que j'ai envie de finir moins con, je me suis payé un petit DevBoard FPGA :

Sur les conseils de gens qui savent qu'un noob a pas besoin d'un FPGA monstrueux qui va couter 2 reins et la peau des fesses. Et qu'avoir direct quelques boutons et leds, c'est cool pour l'initiation.

Par contre, faut que j'avoue tout de suite : c'est une copie chinoise de l'excellent travail de 1Bitsquared. La prochaine fois que j'achète un de leur brol, je m'assurerai de commander ça depuis leur boutique européenne officielle. Histoire de rémunérer leur taf de qualité.

Software

Pour développer sur FPGA, il faut bien entendu des logiciels spécifique.

En l’occurrence, la personne qui m'a conseillé ce dev board m'a demandé si je voulais plutôt un environnement FOSS ou pas. Dans le doute, j'ai préféré opter pour du 100% FOSS. Elle m'a donc recommandé Torii-HDL, parce qu'en plus, c'est une des dev de cet environnement. Ce qui est super cool parce que si je galère (et je vais galérer, ne nous voilons pas la face), j'ai un contact qui s'y connait vraiment pour me dépanner. :D

Installation toolchain Torii

Faut un tas de merdier pour faire tourner le bouzin, mais sous fedora, j'ai installé la majorité avec dnf :
sudo dnf -y install icestorm Outils opensource pour programmer le FPGA
sudo dnf -y install nextpnr Outil de placement et de routage
sudo dnf -y install yosys Synthétiseur verilog

Et pour Torii même, j'ai suivi le tuto sur le site :
pip3 install –user –upgrade torii
pip3 install –user –upgrade torii-boards

La suite

OK, j'ai un FPGA et une suite logicielle pour le programmer, on fait quoi maintenant ?

Torii repose sur le python pour coder des programmes FPGA, c'est donc sur ce type de syntaxe que tous les développements reposeront. Je ne suis pas un grand fan de Python, mais on fera avec.

Blinkin' led

Le “hello world” de l'électronique : faire clignoter de la led !

Mode totalement cheaté sans aucun code :

Si tout a été bien installé comme il faut, on branche l'icebreaker au pc et on lance

python3 -m torii_boards.lattice.icebreaker

Après que le logiciel ait flashé le programme, il dit “Bye.”. Et normalement, les 5 leds en croix de l'extension avec les boutons et 2 leds sur la carte principale doivent clignoter de concert.

Mode galérade parce qu'il faut vraiment coder :

EN COURS DE GALERE !

La doc officielle est pas vraiment adaptée à mon petit cerveau lisse.

De ce que j'ai compris, il y a genre 2 “niveaux” de prog pour le programme principal. La partie purement python qui ne programme pas directement le FPGA et la partie qui elle programme réellement le FPGA via des opérateurs spécifiques à torii.
Ce à quoi on peut rajouter un “bloc test” permettant de faire tourner le code FPGA dans un simulateur. Ce qui permet de récupérer les états entrées/sorties dans un fichier .vcd ouvrable dans GTKWave.

fr/bricolage/electronique/projets/start_fpga.txt · Dernière modification : 2025/02/10 18:31 de kodein