Lien Game Bub: open-source FPGA retro emulation handheld

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 (…)
CLEAR est un microcontrôleur RISC-V (VexRISCV) muni d’un eFPGA gravé en 130 nm et produit avec le programme chipignite de la société de production d'ASIC Efabless. La totalité du « dossier de fabrication » du composant est publiée (licences MIT, Apache 2.0 et d'autres moins non libres).
openFPGALoader est un utilitaire en ligne de commande, écrit en C++ et sous licence Apache 2.0. Il permet de configurer des FPGA de toutes marques. L’objectif du projet est de pouvoir prendre en charge tous les FPGA du marché ainsi que tous les adaptateurs et sondes de configuration.
Yosys est devenu le pivot opensource du développement des circuits intégrés FPGA et ASIC.
Le 27 septembre 2021 a été publiée la nouvelle version 0.10 de Yosys sur l’hébergeur de gestionnaire de versions GitHub.
Cette sortie tardive (la 0.9 date de 2019) est l’occasion de parler de ce logiciel libre de synthèse Verilog, pivot de la libération des FPGA (et des ASIC). Plutôt que de simplement présenter les changements nous allons présenter le logiciel et le principe de la synthèse «RTL».
Coucou !
Je suis nul en algèbre Bool, les 3 cours que j'ai pu avoir sur son introduction sont bien loin aujourd'hui, et j'ai besoin d'en connaitre plus.
Donc si quelqu'un à des conseils à me donner pour passer de gros noob à guru méditant dans des délais raisonnables, je lui construit une table de vérité en bois d'arbre pour sa salle à manger, aves ses rallonges =D
Par avance tous mes remerciements distingués.
La libération des FPGA s’accélère à grands pas, il devient presque difficile de suivre toutes les nouvelles sur le sujet. Mais les FPGA ne doivent pas nous faire oublier leurs grands frères que sont les ASIC.
Un FPGA est un composant ayant un silicium déjà « gravé » mais où il est possible de reconfigurer les connexions entre les éléments logiques à volonté. Dans le cas d’un ASIC, on va cette fois graver directement les transistors sur un silicium vierge et les relier via des couches métaliques une fois pour toutes. Il ne faut surtout pas se planter à l’étape de conception car on ne pourra pas modifier les interconnexions une fois la production lancée.
Pour configurer les différentes connexions des blocs de logiques contenus dans un FPGA il faut lui fournir un fichier de configuration appelé « bitstream ». Quand on parle de libération des FPGA, on pense principalement à la publication de ces spécifications.
Jusqu’à présent, cette « libération » s’est faite, pour une poignée de FPGA (majoritairement Lattice), par ingénierie inverse. Donc jamais à l’initiative du constructeur, ce dernier n’ayant même pas toujours connaissance de projet d’ingénierie inverse à destination de ses produits. Et il faut aller fouiller dans d’obscurs fils Twitter et autre forums de bidouilleurs pour les découvrir.
Mais la libération s’accélère, et une petite société peu connue dans le monde du FPGA vient de lancer un produit basé sur des outils libres pour le développement : l’EOS S3.
Cher Journal.
Hier, David Shah, un des principaux développeur d'outils open source pour les FPGA (NextPnR, Trellis, prjoxide, ..) postait une citation de la nouvelle licence Lattice sur twitter:
Lattice interdit expressément de faire la rétroingénierie du format de ses fichiers de configuration appelé «bitstream».
L'ironie du sort c'est que cette nouvelle licence vient avec un SDK de développement basé massivement sur des logiciels libres et qui ne génère pas les fameux bitstream Lattice).
Le lecteur assidu de LinuxFr.org sait déjà sans doute ce qu’est un FPGA. Rappelons‑en cependant brièvement la définition.
Les FPGA sont des composants constitués de « champs de portes programmables ». L’idée est de graver un certain nombre d’éléments logiques simples sous forme de matrice et de laisser au développeur le loisir de reconfigurer à l’infini les connexions entre ces portes. Une fois les connexions configurées, on se retrouve avec un composant numérique sur mesure qui ne ressemble à aucun composant disponible chez les fournisseurs classiques. C’est très pratique quand on a besoin d’architectures bâtardes, ou quand justement on développe un composant numérique : ça permet de reconfigurer à l’infini pour déverminer et évaluer les performances.
Pepijn de Vos a effectué un stage pour Symbiotic EDA. Et l’ingénierie inverse du GW1N était son sujet de stage. Il a rendu son rapport avant Noël sur GitHub et a publié le code source du projet Apicula.
Vous voulez en savoir plus, lisez la suite…
En début d’année 2019 se posait la question de savoir si ce serait l’année de la libération des FPGA. En ce début d’année 2020, essayons de faire un bilan.
FPGA, ASIC, HDL, RISC‑Ⅴ et PCB sont les chapitres que nous allons découvrir dans la suite de cet article. Si vous connaissez déjà ces sigles et acronymes, vous allez adorer ; mais si vous ne les connaissez pas, c’est indispensable car ces vocables sont à la base de la culture universelle de notre siècle.
Nous sommes actuellement arrivés à un moment clé pour le matériel informatique. Il en est au même point que le logiciel libre en était en 2000, quand il est devenu mature. Le mouvement est lancé et les projets deviennent utilisables. On ne rêve plus…
Le développement avec des langages de description matériel, le (System)Verilog par exemple, nécessite très souvent de visualiser les chronogrammes afin de vérifier le comportement du composant en développement. Ces chronogrammes sont générés par un simulateur tel qu’Icarus et GHDL, pour les versions libres, ou bien encore par ModelSim, VCS et consorts, pour les versions propriétaires.
GTKWave est la référence dans le monde du logiciel libre pour afficher les chronogrammes, mais il existe également autant d’afficheurs que de simulateurs propriétaires. De très nombreux développeurs ont sans doute été confrontés au côté rébarbatif de l’insertion à la souris des signaux à observer. GTKWave, ainsi que les simulateurs propriétaires, embarquent un interpréteur de langage Tcl afin de faciliter l’édition des signaux à observer avec, bien sûr, une syntaxe différente à chaque fois…
J’ai donc décidé de créer le module Python Wavedisp permettant de décrire hiérarchiquement les signaux à observer, ainsi que de procéder à la génération de scripts d’affichage pour différents outils de visualisation, dont GTKWave.
Cette dépêche est tirée d’un journal annonçant le k1g1, le premier FPGA libre… à sa connaissance.
Parmi les premiers commentaires du journal, on peut noter la promesse du succès mais pas avant dix ou vingt ans, des discussions sur les sociétés du domaine, l’évocation d’une puce de test, archipelago, le FPGA virtuel, etc.