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.
EOS S3, le bitstream libéré !
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.
Journal Lattice et l'open-source, la fin d'un rêve ?

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).
Apicula : lancement de la libération du FPGA Gowin GW1N
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…
La libération des FPGA et des ASIC bien engagée pour 2020
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…
Simplifier la visualisation de chronogrammes
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.
k1g1 : le premier FPGA Libre…
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.
Journal k1g1 : le premier FPGA Libre…

…à ma connaissance (la dernière fois que j'ai regardé, il n'y en avait pas d'autres)
Camarades moules,
Aujourd'hui est un grand jour pour moi, pour la communauté Libre et enfin pour l'Humanité. Oui, rien que ça. En effet, je viens de valider en simulation au niveau porte logique (gate-level simulation en anglais, j'ignore la traduction exacte) le premier cœur FPGA Libre basé sur ma propre architecture.
Mais avant d'aller plus loin, un peu de contexte.
Un FPGA, c'est qu'est-ce quoi
(…)Journal FireAnt : Un kit FPGA à moins de $30 avec un nouveau venu dans le domaine du FPGA

Cher journal,
Juste un petit mot pour te faire la pub (honte !) d'un nouveau FPGA nommé Trion T8 de chez Efinix.
Ce nouveau venu dans le monde du FPGA (ce qui est suffisamment rare pour le faire remarquer) propose des petits FPGA abordables pour les bidouilleurs. Et l'IDE fourni (qui n'est hélas toujours pas libre) est assez rafraîchissante et facile d'installation.
Pour se faire la main avec le produit, une société a lancé un financement participatif pour construire (…)
Un ASIC conçu intégralement avec des logiciels libres
Un ASIC (application‐specific integrated circuit, en anglais) est un circuit intégré d’électronique numérique conçu pour une application spécifique et qui ne peut être modifié une fois produit. Un ASIC est à mettre en opposition avec le FPGA qui lui est un circuit intégré d’électronique numérique que l’on peut reconfigurer à l’infini.
Les FPGA sont très liés aux ASIC. En effet, la plupart des outils utilisés en FPGA pour la synthèse HDL, la preuve formelle, le placement routage ou l’analyse des timings sont les mêmes que ceux à destination des ASIC. Seules les bibliothèques et les configurations changent. La grosse différence (de taille) avec les FPGA c’est que l’ASIC n’est pas reconfigurable, et les « frais d’initialisation » sont très élevés. Les délais de production sont également très longs (on parle en trimestres voire en semestres de délais).
Avec de telles contraintes, on comprend pourquoi les développeurs ne se mouillent pas trop avec des logiciels exotiques et restent sur ceux qu’ils connaissent. Vu les tarifs de production, le coût des licences des logiciels est assez négligeable. Pourquoi « grenouiller » avec des outils libres dans ce cas ?
Toutes ces contraintes n’ont pas découragé Tim Edwards de se lancer intégralement avec des outils libres dans la conception et la fabrication d’un microcontrôleur.
Sortie de la version 1.1 de Cocotb
Voici une excellente nouvelle pour la conception des composants électroniques numériques : la version 1.1 de Cocotb est sortie, la nouvelle vient de tomber sur la liste de diffusion de Cocotb.
C’est une grande nouvelle pour cette bibliothèque Python de co‐simulation HDL, sous licence BSD modifiée. En effet, malgré le travail de cinquante contributeurs, elle était bloquée dans sa version 1.0 depuis plus de quatre ans maintenant. La nouvelle organisation qui vient d’être mise en place devrait garantir la pérennité de Cocotb.
Journal 2019, l’année de la libération des FPGA ?

En matière de liberté le monde du FPGA est resté dans les années 90. Une époque obscure où l’on cachait le mode de fonctionnement des logiciels, où il fallait signer des accords de non divulgation (NDA) avant de pouvoir simplement utiliser un logiciel. Une époque où l’on croyait encore que la sécurité par l’obfuscation était le summum de l’état de l’art pour sécuriser et protéger son logiciel et ses données. Mais il est possible que les nouvelles de sorties de (…)
Sortie de Yosys Open Synthesis Suite 0.8
L’annonce a été faite mardi 16 octobre par W. Clifford : la version 0.8 de Yosis, un logiciel libre de synthèse Verilog est sortie.
Dans le processus de développement FPGA/ASIC la synthèse est l’étape de conversion du modèle matériel simulé en « netlist RTL », d’où l’on peut dériver le circuit réel.
Journal Risc-V est prêt pour le desktop™ !

Cher journal,
Savais tu que le set d'instructions libre Risc-V promu par ARM est désormais desktop ready™ ?
En effet, c'est WesternDigital qui vient de publier un tutoriel pour compiler la meilleur suite de logiciels connue pour le desktop : Fedora Gnome !
Le tuto cible un processeur U540 (4 cœurs 64bits U54 et 1 cœur E51) produit par SiFive. Si tu es pauvre tu pourras faire tourner cet OS desktop-ready avec Qemu.
Mais si tu es riche tu pourras (…)
Journal Intégration de TapTempo-Chisel sur APF27

Dans un premier journal je décrivais le «core» de TapTempoChisel. Passons maintenant à l'intégration sur un vrai FPGA physique.
J'ai choisi pour cela une carte APF27 de chez armadeus. Cette carte possède un FPGA Spartan3A de chez Xilinx mais elle possède également un microprocesseur i.MX27 permettant de faire tourner Linux. La philosophie de la carte étant d'avoir une zone «en friche» avec le FPGA permettant d'ajouter des périphériques sur mesure.
Périphérique que nous allons construire avec le projet TapTempo. Le (…)
