Bonjour
Me mettre a "jouer" avec les FPGA est un truc qui me trotte dans la tête depuis un bon moment. Bon .. en ce moment je suis sur d'autres sujets, mais ça ne m'empeche pas de commencer à m'interesser au sujet à mes temps perdu. Cependant, je ne sais pas trop par ou commencer, quel materiel me procurer et pour quoi faire, ni quelles lecrures et tutoriels à suivre, et quel projet concret pour me permettre de faire des trucs sympas sans me lasser. Auriez-vous des suggestions à faire ? Sites internet, tutoriels, livres/materiels, idées de projets ..
Je sais, google pourrait etre mon ami, mais j'ai deja tente de faire quelques recherches sans vraiment trouver de reponse satisfaisante ( entre le pinterrest quasi systematique, les offres comerciales sponsorisées n'ayant rien a voir avec ma demande, et plein d'autres choses je me sens un peu perdu).
Merci d'avance pour votre retour.
# Logisim
Posté par OLeave . Évalué à 7.
Il existe plusieurs approches pour jouer avec les FPGA. J'aime bien celle du "hardeux sans matériel". Elle consiste à jouer avec un simulateur de portes logiques en partant d'exemples simples pour petit à petit, réaliser par exemple un processeur généraliste ou des circuits plus spécialisés.
Pour cela, Logisim est assez utilisé comme support d'enseignement, tu devrais trouver de quoi démarrer sur des supports de cours d’architecture des ordinateurs, celui-là par exemple.
# ghdl
Posté par Nicolas Boulay (site web personnel) . Évalué à 4.
Pour un compilateur vhdl :
https://fr.m.wikipedia.org/wiki/GHDL
"La première sécurité est la liberté"
# carte d'éval
Posté par gringonz . Évalué à 4.
Si tu veux jouer avec un vrai FPGA et pas faire seulement des simulations, il faudra acheter une carte de développement. On en trouve à un peu moins d'une centaine d'euros et ça peut monter a des milliers d'euros pour les très grosses cartes avec de très gros FPGA… En gros tu as principalement 2 fournisseurs de FPGA : Altera (maintenant Intel) et Xilinx (maintenant AMD). Il faudra aussi passer par des outils propriétaires pour la synthèse et le placement routage (je préfère le terme allocation de ressources). Ces outils sont en effet lié à l'architecture du circuit, et chaque vendeur de FPGA possède son propre outil (vivado pour xilinx et quartus pour altera). Ces outils tournent très bien sous linux. Il existe des tentative d'outils libres, mais quand on débute ça complique sans doute les choses.
Pour ce qui est de la simulation avant programmation, comme indiqué dans un autre poste ghdl fait très bien le boulot.
Enfin su tu as déjà bricolé avec des cartes style raspberry ne t'attend pas aux mêmes résultats, les cartes de dev sont souvent plus austère, et limitées au niveau interface. Cetains FPGA embarquent des coeurs de proc, mais la aussi l'installation d'un OS et faire causer ce proc avec l'électronique du FPGA ne s'improvise pas.
Ca peut être sympa d'avoir une carte avec des afficheurs 7 segments et quelques boutons poussoir, ça permet de débuter en douceur avec des exemples simples (afficher le résultat d'un compteur, faire un chronometre…).
# Il faut aimer nager
Posté par obpt . Évalué à 4.
Comme dit plus haut, tu auras deux gros choix à faire:
- La marque du FPGA. Les deux gros fournisseurs sont AMD/Xilinx et Intel/Altera, mais il existe aussi Lattice.
- Le choix du langage HDL. En gros, il y a VHDL, Verilog, et SystemVerilog. Il existe d'autres langages comme le SystemC ou myHDL, mais ils sont vraiment de niche.
Les outils développement te seront plus ou moins imposés par la marque du FPGA, ou l'inverse! Certaines personnes préfèrent choisir en fonction des outils, d'autres en fonction du matériel.
Il faut aussi vaguement penser à ce que tu veux faire avec ton FPGA. Est-ce que tu t'intéresses plus à un moyen d'intéragir avec le monde (mesures, contrôle d'appareil), ou plutôt accélérer des calculs. Dans le premier cas, il te faut une carte avec des interfaces externes, dans l'autre un FPGA monté sur un stick USB sera suffisant.
Au lieu de continuer à étaler l'arbre des possibles je vais proposer quelque chose. Cela permettra peut-être de lancer la discussion.
J'aime bien la carte Arty A7 pour faire du prototypage de certains blocs ASIC et contrôler un DUT au labo.
Elle n'est pas trop chère pour une carte FPGA (environ 200$). Elle peut être alimentée et programmée par un cable USB.
Sur la carte, il y a plein d'interfaces qui vont de la plus simple (LEDs, switches, boutons) à la moins simple (une mémoire DDR3). Il y a aussi un connecteur pour un shield Arduino et quatre connecteurs PMODs. Ces connecteurs permettent de brancher différents accessoires. Le niveau de tensions des IOs de l'Arty A7 et des PMODs sont à 3.3V. Quand on connecte un PMOD, les terres sont connectées aussi, ce qui peut éviter pas mal de maux de crâne quand le système ne fonctionne pas.
Digilent, le fabricant de la carte, fournit le fichier de contrainte du pinout, ce qui est franchement cool pour commencer.
Cet environnement permet de commencer très doucement (comme allumer une LED quand on presse un bouton) pour progresser vers quelque chose de plus compliqué (implémenter un RISC-V).
Le FPGA est supporté par la version gratuite de Vivado, l'outil de développement associé. Vivado inclut un simulateur qui est loin d'être parfait, mais qui a l'avantage d'être intégré. Cela t'évitera de devoir compiler les librairies Xilinx pour un simulateur externe.
Il reste le choix du langage HDL. Mon conseil serait de démarrer directement avec SystemVerilog. Je le trouve moche à lire (dixit le gars qui a plus de 10 ans de VHDL dans les pattes) et surtout il laisse à mon goût beaucoup trop de liberté au développeur; ce qui peut laisser des bugs jusqu'à très tard dans le développement du circuit. Par contre, je trouve SystemVerilog très puissant au niveau des structures de données et surtout au niveau des possibilités de tests (par exemple, la randomisation contrainte des patterns de test est incluse dans le langage). Il me semble aussi qu'il y a plus de projet open source en Verilog/SystemVerilog qu'en VHDL. Et finalement, il me semble que l'industrie est en train de basculer vers SystemVerilog (cette impression vient probablement du fait que j'ai dû faire le basculement moi-même).
Mes propositions sont discutables et on peut en discuter. Par exemple, si la carte est trop chère, on peut essayer de trouver une alternative.
# icestorm et lattice ice40 et autres liens
Posté par bobo38 . Évalué à 3. Dernière modification le 24 mai 2023 à 22:56.
Je regarde aussi les FPGA et les sets d'instructions, et les microcontroleurs depuis quelques mois. Le Web est rempli de truc à regarder. Pas mal de bouts de verilog et de VHDL sur GitHub.
À titre personnel, le verilog me parait plus digeste et moins verbeux
Côté matos, j'avais initialement trouvé les cartes artix7. Au fur et à mesure des explorations, je suis tombé sur icestorm: un projet en logiciel libre de synthèse/placement/routage pour FPGA Ice40 de Lattice. Ces jouets sont relativement abordables, les datasheets sont bien faites.
https://www.latticesemi.com/products/developmentboardsandkits/ice40ultraplusbreakoutboard
Les délais d'attente sont longs, mais en gros je viserais cette carte 62.40$ qui a le FPGA le plus gros de la gamme: Ice40 UltraPlus. Ou un truc du genre : il y a d'autres cartes avec ce FPGA faites par d'autres boites. Il faut voir ce que les fournisseurs européens ont, j'ai un peu peur des frais de port et de douanes.
Ice40UltraPlus:
Ça a l'air d'être une bonne plateforme pour jouer. Si quelqu'un a des cartes avec un iCE40 UltraPLus UP5K à conseiller je suis tout ouï
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.