Journal NaxRiscv, un CPU rapide open source

Posté par  (site web personnel) . Licence CC By‑SA.
28
4
jan.
2024

En parcourant le journal sur le 37C3, sur les conférences du Chaos Computer Club Allemand, je suis tombé sur la présentation d'un CPU open source, le NaxRiscv.

Pour ceux qui se souviennent, c'était le rêve d'un groupe d'illuminé autour du F-cpu dans les années 2000.

Le NaxRiscv est donc un CPU RISC-V out-of-order. Il exécute maximum 3 instructions à la volée ce qui permet d'être plus rapide qu'un ARM M4 à fréquence égale.

Ce CPU est écrit non pas (…)

Journal Hydromel : mon langage de description de matériel idéal ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
25
14
avr.
2022

Sur LinuxFr, on me connaît (ou pas) comme le développeur du logiciel de présentation Sozi mais ce n'est pas ma principale activité. Loin du JavaScript et du SVG, mon travail quotidien relève en fait du domaine des systèmes embarqués et des FPGA. Dans ce cadre, je pratique et j'enseigne le langage VHDL. J'anime également des TP d'initiation au langage Verilog, un peu par obligation.

VHDL et Verilog appartiennent à la famille des langages de description de matériel, ou HDL (…)

TapTempo en Verilog

79
20
sept.
2020
Matériel

Le projet TapTempo semble faiblir depuis quelques mois maintenant. En panne de langage informatique pour en faire une dépêche ?

N. D. M. — TapTempo est un détecteur de tempol’utilisateur frappe une touche en cadence régulière et le programme en déduit le tempo correspondant. Il a été décliné en de multiples langages de programmation.

Laissez‑moi vous présenter un langage assez particulier puisqu’il ne sert pas à faire de la programmation. Ce langage permet de décrire le comportement numérique d’un composant électronique (on parle alors de langage de description de matériel — HDL) : le Verilog.

C’est aussi un langage utilisé pour faire de la synthèse numérique sur les circuits logiques programmables (FPGA). Dans cet exemple, nous utiliserons la carte de développement à bas coût ColorLight 5A‑75B.

Vue d’ensemble du montage TapTempo

CocoTB 1.4.0, la maturité

Posté par  (site web personnel, Mastodon) . Édité par palm123, Davy Defaud et Nils Ratusznik. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
26
17
juil.
2020
Matériel

C’est dans la soirée du 8 juillet que l’annonce est tombée : la version 1.4.0 de CocoTB est sortie. Cette nouvelle version est une belle évolution de Cocotb avec une bonne intégration dans le système de paquets de Python ainsi que l’abandon de la prise en charge de Python 2. On peut aujourd’hui dire que CocoTB est une alternative sérieuse pour écrire ses bancs de test HDL.

Simplifier la visualisation de chronogrammes

Posté par  (site web personnel) . Édité par Davy Defaud, palm123 et gUI. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
35
13
nov.
2019
Matériel

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.

Un ASIC conçu intégralement avec des logiciels libres

Posté par  (site web personnel, Mastodon) . Édité par palm123, ZeroHeure, Davy Defaud, Pierre Jarillon, Benoît Sibaud et Jona. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes :
74
16
juin
2019
Matériel

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 Yosys Open Synthesis Suite 0.8

Posté par  (site web personnel, Mastodon) . Édité par ZeroHeure, Davy Defaud, palm123, bubar🦥 et BAud. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
37
24
oct.
2018
Matériel

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 Un composant électronique TapTempo avec Chisel3

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
57
15
avr.
2018

Le «défi» TapTempo est un peu en train de faiblir je trouve. Du coup je vous propose un nouveau langage pour réaliser TapTempo : Chisel. Et pour être plus précis, la version 3 de Chisel.

Contrairement à tous les langages proposés jusqu'ici, Chisel ne permet pas de réaliser un programme qui sera exécuté par une machine réelle ou virtuelle. Chisel permet de décrire l'architecture de la machine elle-même !

C'est ce qu'on appelle un langage de description matériel ou HDL (…)

SymbiFlow, vers la synthèse libre pour la Série 7 de Xilinx

30
2
jan.
2018
Matériel

N. D. M : Le Verilog HDL est un « langage de description matériel de circuits logiques en électronique », le FPGA est un « circuit intégré logique qui peut être reprogrammé », Xilinx une entreprise américaine de semi‐conducteurs, et le bitstream est utilisé pour décrire une configuration à charger dans un FPGA.

Comme le projet IceStorm qui permet de générer des bitstreams à partir du Verilog vers les FPGA ICE40 de Lattice est maintenant très avancé, W.Clifford se lance avec d’autres dans la rétro‐ingénierie des FPGA de la Série 7 de Xilinx.

Pour cela, un nouveau projet nommé SymbiFlow est créé pour fédérer les différents outils permettant de développer autour des FPGA de Xilinx. L’objectif à terme étant d’intégrer également les ICE40 à SymbiFlow.

Le projet inclut un sous‐projet nommé sobrement Project X-Ray permettant de documenter les différents éléments du FPGA Artix7 sous forme de carte en ASCII et HTML. Ce sous‐projet vise également à fournir des outils permettant de piloter Vivado avec des designs simplistes pour sortir des statistiques sur les bitstreams générés et approfondir la documentation.

Un des gros changements de SymbiFlow par rapport à Icestorm est la volonté de migrer le placement‐routage de Arachne-pnr vers VPR. Un sous‐projet de VTR développé depuis bien plus longtemps que Arachne-pnr.

Vu le succès remporté par le projet IceStorm, avec la quasi totalité des FPGA ICE40 documentés ainsi que leurs timings, on peut espérer voir arriver rapidement une chaîne de développement libre pour les FPGA de la Série 7 de Xilinx. Et voir ainsi le développement open source sur FPGA devenir une réalité.

Journal Après le kit HiFive, QWERTY Embedded Design propose un nouveau kit lowcost : LoFive

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
12
21
sept.
2017

Dans un premier journal, je vous avais parlé du kit de développement HiFive permettant de développer sur le microcontrôleur libre E310 et compatible avec la chaîne de développement arduino. Une petite société (QWERTY Embedded Design) avait lancé un financement «participatif» pour produire un kit compatible arduino basé sur ce processeur.

La production de ce premier batch s'étant bien déroulée, la société a lancé un autre module plus petit basé sur ce même processeur.

Le module minimaliste (25$) permet tout (…)