Découvrir le langage Lucid avec une carte de développement FPGA d'Alchitry
Un tutoriel de f-leb
Le 2020-12-01 18:44:35, par f-leb, Responsable Arduino et Systèmes Embarqués
Je vous propose un nouvel article dans lequel on découvre le langage Lucid (une surcouche du langage Verilog) pour apprendre à programmer sur une carte de développement FPGA d'Alchitry :
Le but de ce tutoriel est de s’initier au développement sur FPGA en langage Lucid (un langage dérivé du langage Verilog) avec une carte FPGA d’Alchitry. Ce tutoriel suppose que vous ayez un peu d’expérience en programmation de microcontrôleurs (sur Arduino par exemple), et en électronique numérique en général (logique combinatoire et séquentielle).
Code : |
1 2 3 4 5 6 7 8 9 10 11 | module product ( input a, input b, input c, output out ) { always { out = a & (b | c); // a AND (b OR C) } } |
Code d'un module en langage Lucid
Bonne lecture
-
nauteRédacteurBonjour Fabien
.
Merci pour cet excellent tutorielqui me fait découvrir un domaine dans lequel je n'avais pas encore osé mettre le nez . Envoyé par Tutoriel
De plus, les différents microcontrôleurs que l'on trouve dans le commerce, déjà câblés sur des mini cartes à bas prix, comblent la grande majorité des "makers". Si la réalisation nécessite quelques portes logiques supplémentaires, il est facile de les ajouter au montage sans grever le budget.
Je verrais plutôt les FPGA destinés à des montages très élaborés, voire à tester différentes configurations lors de l'élaboration de microcontrôleurs spécialisés, et donc, à priori, réservés aux professionnels. Cela dit, il n'y a pas si longtemps, on n'aurait pas non plus parié sur l'utilisation des microcontrôleurs par les hobbyistes. Il pourrait d'ailleurs être intéressant, et formateur, de simuler une carte Arduino UNO (par exemple), pour démontrer les possibilités de cette architecture.
J'ai bien aimé l'astuce pour transformer un signal "en dents de scie" en un signal triangulaire : simple et de bon goût.
Amicalement,
Hervéle 06/12/2020 à 12:21 -
Vincent PETITModérateur
Excellent tutoriel en effet !
Le FPGA peut aussi faire un bon coprocesseur pour un Arduino. Ce dernier peut lui déléguer des tâches chronographes.
Une telle configuration dans un projet comme celui-ci https://create.arduino.cc/projecthub...nalyzer-ca2926 augmenterait énormément les performances de cet analyseur de spectres.
Aujourd'hui on trouve beaucoup de bloc fonctionnel tout fait (déjà synthétisés en VHDL ou Verilog et peut-être en Lucid) et qu'on a plus qu'à importer.
A+le 06/12/2020 à 15:50 -
f-lebResponsable Arduino et Systèmes EmbarquésHello Hervé
Ou alors on le réserve pour des traitements en parallèle sur de nombreuses entrées-sorties, comme dans cette sculpture animée avec 18 servomoteurs :
Voir Painless FPGA Programming - The Alchitry Au kit can simplify projects that need a lot of input/outputle 06/12/2020 à 14:11