Attention, Risc-V n'est pas un processeur mais juste un standard pour le jeux d'instructions (le langage d'un processeur). Libre aux gens d'implémenter ensuite l'ISA (Instruction Set Architecture) comme il le veulent.
On trouve déjà tout un tas de processeurs basés sur Risc-V, et pas seulement des «soft-core» :
E310, U540 de SiFive: Le E310 peut se commander sous la forme du board «arduino compatible». Le 540 est déjà un peu plus cher, mais permet de faire tourner linux sans problème.
K210 de Kendryte: un RV64 dual core permettant de faire du traitement vidéo ou du signal.
Est-ce que la carte d'extension que tu présente ici est aussi ouverte que le CPU ?
Nope …
Par contre c'est un peu un petit nouveau qui arrive sur le marché du FPGA. Certe Microsemi faisait déjà des FPGA avant mais avec le PolarFire ils semblent chercher à venir titiller Altera (pardon Intel) et Xilinx sur leurs milieux de gamme et c'est déjà une bonne nouvelle je trouve.
À l'heure actuelle il n'existe aucun FPGA avec une documentation ouverte pour les configurer (le bitstream). Il existe cependant des FPGA qui ont été reversés (voir icestorm et SymbiFlow).
Je connais un seul FPGA libre et avec une chaine de développement complètement libre, mais tu vas être déçu : c'est juste un projet universitaire: Archipelago. Le FPGA en question n’existe pas en silicium.
Le projet reste intéressant pour maitriser la chaîne de développement complète.
Je trouve ça intéressant qu'on puisse se mettre au RISC-V prochainement. Vivement des cartes grand public, je ne compte pas spécialement me jeter sur 3000€ de matos là tout de suite. :-D
Risc-V se veut un set d'instructions générique allant du petit micro-contrôleurs low-power au gros super calculateur avec set d'instructions vectorisé.
Évidemment tu ne fera pas tourner Linux sur ces petits cores, pour ça il faut soit le silicium de SiFive soit un très gros FPGA pour y synthétiser un core avec MMU.
Existe-t-il un comparatif entre Verilator et GHDL pour des benchmarks équivalents dans les deux langages ?
Ça n'est pas vraiment comparable dans la mesure où GHDL est un simulateur «complet» qui simule toute la norme VHDL alors que Verilator se contente de la sous-partie «synthétisable».
J'avais commencé à faire un comparatif verilator/icarus avec mon projet blp (blinking led project), il faudrait que j'ajoute GHDL au comparatif. Mais je suis certain que GHDL sera nettement plus lent que Verilator, le comparatif Icarus/GHDL serait plus pertinent.
Il existe un projet d'adapter verilator (verilatorVHDL) pour supporter le VHDL, mais il n'est pas encore abouti à ma connaissance.
Si verilator n'est capable de prendre en entrée que du Verilog synthétisable, c'est parce qu'il convertit ce code en un objet en C++ et/ou SystemC
Je suis un peu étonné par cette phrase. Si le code Verilog est converti en C++, pourquoi serions-nous limité à du code synthétisable ?
La différence fondamentale entre un simulateur «normal» et verilator (au dela du fait qu'il ne fasse que convertir le modèle en un objet C++) est qu'il ne gère pas le temps !
Pour faire tourner le simulateur, on écrit des valeurs sur les ports d'entrées de notre design, on appel la fonction «eval()» qui va évaluer les valeurs de sorties. Puis on recommence.
C'est à nous de gérer le temps en appelant la fonction eval() à interval régulier. Tous les #xx sont ignorés.
Je sais bien que c'est chez les polonais que ça se passe, mais en matière d'open-hardware la conférence ORConf est plutôt un truc important non ?
Du 21 au 23 septembre à Gdansk.
C'est là qu'on y découvre tout ce qui se fait en open-source en matière de langages de description Hardware ainsi que tout les outils libre liés aux FPGA/ASIC.
Et je ne parle même pas des architectures libre (riscv tenant bien sûr le haut du pavé:).
Pour ceux qui veulent faire de l'open-hardware jusqu'au bout de leurs ongles en silicium.
Je vois qu'on a à faire à un expert en Scala qui ne bluff pas lui !
J'avoue ne pas comprendre le quart des concepts que tu viens de décrire dans ton journal. De mon coté, TapTempo était mon premier réel programme en Scala.
Je n'ai fait du scala que pour du HDL jusqu'ici (Chisel).
Mais pour aller plus loin avec Chisel il est rapidement nécessaire d'apprivoiser les concepts fonctionnel de Scala.
Voila un programme à décortiquer pour mes vacances.
Bon le site en question ne sera resté qu'une seule journée en ligne. Arm ayant assez vite compris la bourde ;)
Du coup le site «concurrent» va lui aussi fermer ses portes ce weekend comme l'indique l'auteur dans un message sur le github.
C'est un clap de fin pour une histoire qui nous aura fait bien rire.
On remercie la société Arm d'avoir mis un tel coup de projecteurs sur cette architecture de processeur promise à un bel avenir.
Le Risc-V est déjà dans le kernel Linux mainline. Il existe un proc Risc-V fonctionnant sous Linux (quad-core 64bits + un core «realtime») produit par SiFive (la boite créée par les chercheurs de Berkley): HiFive Unleashed.
Et le plus beau dans tout ça, c'est qu'ils ont «oublié» d'enregistrer le nom de domaine arm-basics. Du coup il y a une version concurrente du site https://www.arm-basics.com/.
D'après la datasheet de la carte de développement, le bouton est branché via une résistance de «pull-up». La valeur est donc à '1' par défaut et à '0' quand on appuie dessus. Comme TapTempo déclenche sur front montant du signal bouton, c'est au relâchement que le comptage est pris en compte.
Pour ceux qui se posent la question, le FPGA en question sera un Cyclone10. Ce qui est bizarre c'est que le modèle n'est donné nul part dans la spec. Seule la photo montre bien un composant cyclone10.
À la vue de la description donnée sur la page du produit, le modèle serait probablement un Cyclone10 LP 10CL016.
On peut sans doute réussir à miner du bitcoin avec ça, mais on sera (très) loin derrière une carte graphique de PC à mon avis ;)
Ce qui est intéressant par contre si cette carte se démocratise ce sont les outils! On pourrait espérer l'émergence d'outils de synthèse/placementroutage un peu plus libro-compatible et plus léger que l'énorme Quartus fourni par Altera/intel. Mais je rêve un peu.
Enfin un HDL open source à la base :) Ce n'est pas si courant.
Ça se discute, il commence à y avoir pas mal de nouveau langages open-source intéressants aujourd'hui. j’essaie d'en maintenir une liste plus ou moins exhaustive avec mon schéma OpenSourceFPGAMap.
Je pense notamment à Migen, MyHDL (python) ou à Clash (Haskell), sans compter les dérivés de scala (pourquoi cet amour immodéré pour scala ?) : SpinalHDL et DFiant. Tout ces nouveaux langage génère ensuite du Verilog et/ou du VHDL pour être accepter par les logiciels de synthèse/simulation du marché.
Mais Chisel me semble le plus abouti «industriellement» dans la mesure où il sert de base à la société SiFive pour produire ses cœurs E310 et U500 basé sur le set d'instructions Risc-V.
Je me suis également servi de Chisel pour réaliser un design client sans «trop» de problème.
Après pour l'histoire du «behavioral», le principe de chisel est de faire un design synchrone et synthétisable. Du coup si c'est pas synthétisable ou synchrone alors le code n'est pas juste et doit provoquer une erreur. Il n'y a donc pas de séparation entre le comportementale (behavioral) et le synthétisable (RTL).
[^] # Re: RISC-V
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Thales rejoint la fondation RISC-V pour participer à la sécurisation des uProcesseurs open source. Évalué à 8. Dernière modification le 28 novembre 2018 à 14:28.
Attention, Risc-V n'est pas un processeur mais juste un standard pour le jeux d'instructions (le langage d'un processeur). Libre aux gens d'implémenter ensuite l'ISA (Instruction Set Architecture) comme il le veulent.
On trouve déjà tout un tas de processeurs basés sur Risc-V, et pas seulement des «soft-core» :
Quand au softcore pour les FPGA il y en a une tripotté.
J'ai plus qu'une balle
# Un nouveau standard ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche E.T. téléphone Meson. Évalué à 0.
Pourquoi est-que je ne peux pas m’empêcher de penser au strip de xkcd en lisant ça ?
J'ai plus qu'une balle
[^] # Re: Ouverture de la carte d'extension ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Risc-V est prêt pour le desktop™ !. Évalué à 5.
Nope …
Par contre c'est un peu un petit nouveau qui arrive sur le marché du FPGA. Certe Microsemi faisait déjà des FPGA avant mais avec le PolarFire ils semblent chercher à venir titiller Altera (pardon Intel) et Xilinx sur leurs milieux de gamme et c'est déjà une bonne nouvelle je trouve.
À l'heure actuelle il n'existe aucun FPGA avec une documentation ouverte pour les configurer (le bitstream). Il existe cependant des FPGA qui ont été reversés (voir icestorm et SymbiFlow).
Je connais un seul FPGA libre et avec une chaine de développement complètement libre, mais tu vas être déçu : c'est juste un projet universitaire: Archipelago. Le FPGA en question n’existe pas en silicium.
Le projet reste intéressant pour maitriser la chaîne de développement complète.
J'ai plus qu'une balle
[^] # Re: Info intéressante, présentée avec du troll que j'aime
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Risc-V est prêt pour le desktop™ !. Évalué à 7. Dernière modification le 29 septembre 2018 à 10:18.
Risc-V se veut un set d'instructions générique allant du petit micro-contrôleurs low-power au gros super calculateur avec set d'instructions vectorisé.
Donc si tu veux faire du Risc-V à prix un peu plus raisonnable c'est déjà possible avec le E310 par exemple, et je ne parle pas de la myriade de cores disponible pour FPGA.
Évidemment tu ne fera pas tourner Linux sur ces petits cores, pour ça il faut soit le silicium de SiFive soit un très gros FPGA pour y synthétiser un core avec MMU.
J'ai plus qu'une balle
[^] # Re: Pourquoi seulement du Verilog synthétisable ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Verilator 4.002. Évalué à 4.
Cool, il faut que j'aille voir ça !
J'ai plus qu'une balle
[^] # Re: Pourquoi seulement du Verilog synthétisable ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Verilator 4.002. Évalué à 4. Dernière modification le 24 septembre 2018 à 09:14.
Ça n'est pas vraiment comparable dans la mesure où GHDL est un simulateur «complet» qui simule toute la norme VHDL alors que Verilator se contente de la sous-partie «synthétisable».
J'avais commencé à faire un comparatif verilator/icarus avec mon projet blp (blinking led project), il faudrait que j'ajoute GHDL au comparatif. Mais je suis certain que GHDL sera nettement plus lent que Verilator, le comparatif Icarus/GHDL serait plus pertinent.
Il existe un projet d'adapter verilator (verilatorVHDL) pour supporter le VHDL, mais il n'est pas encore abouti à ma connaissance.
La différence fondamentale entre un simulateur «normal» et verilator (au dela du fait qu'il ne fasse que convertir le modèle en un objet C++) est qu'il ne gère pas le temps !
Pour faire tourner le simulateur, on écrit des valeurs sur les ports d'entrées de notre design, on appel la fonction «eval()» qui va évaluer les valeurs de sorties. Puis on recommence.
C'est à nous de gérer le temps en appelant la fonction eval() à interval régulier. Tous les #xx sont ignorés.
J'ai plus qu'une balle
# Et ORConf 2018 ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un peu d'Open Hardware pour la rentrée (et beaucoup de linuxboot). Évalué à 10.
Je sais bien que c'est chez les polonais que ça se passe, mais en matière d'open-hardware la conférence ORConf est plutôt un truc important non ?
Du 21 au 23 septembre à Gdansk.
C'est là qu'on y découvre tout ce qui se fait en open-source en matière de langages de description Hardware ainsi que tout les outils libre liés aux FPGA/ASIC.
Et je ne parle même pas des architectures libre (riscv tenant bien sûr le haut du pavé:).
Pour ceux qui veulent faire de l'open-hardware jusqu'au bout de leurs ongles en silicium.
https://orconf.org/
J'ai plus qu'une balle
# Un scalaiste qui ne bluff pas ;)
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un autre taptempo en Scala. Évalué à 6.
Merci,
Je vois qu'on a à faire à un expert en Scala qui ne bluff pas lui !
J'avoue ne pas comprendre le quart des concepts que tu viens de décrire dans ton journal. De mon coté, TapTempo était mon premier réel programme en Scala.
Je n'ai fait du scala que pour du HDL jusqu'ici (Chisel).
Mais pour aller plus loin avec Chisel il est rapidement nécessaire d'apprivoiser les concepts fonctionnel de Scala.
Voila un programme à décortiquer pour mes vacances.
J'ai plus qu'une balle
[^] # Re: Régionalisation
Posté par martoni (site web personnel, Mastodon) . En réponse au journal TapTempo en Scala. Évalué à 2.
Je pense que c'est possible en effet. Déjà en intégrant les propositions de j_m on devrait pouvoir isoler les données (texte) du code.
J'ai plus qu'une balle
[^] # Re: Faut se calmer, là !
Posté par martoni (site web personnel, Mastodon) . En réponse au journal TapTempo en Scala. Évalué à 2.
J'avoue que je me pose la même question ;)
Ma fonction faisait 10 lignes, celle-ci en fait 12 !
Après peut-être y a-t-il une «loi» de séparation du code fonctionnel et des données que je ne respecte pas en effet.
J'ai plus qu'une balle
[^] # Re: Faut se calmer, là !
Posté par martoni (site web personnel, Mastodon) . En réponse au journal TapTempo en Scala. Évalué à 2.
Aucune chances, rien que l'affichage du help fait plus de 5 lignes. ;)
J'ai plus qu'une balle
[^] # Re: Objet et Fonctionnel
Posté par martoni (site web personnel, Mastodon) . En réponse au journal TapTempo en Scala. Évalué à 3. Dernière modification le 24 juillet 2018 à 10:03.
La réponse est oui certainement ;)
Il serait intéressant de transformer le programme pour qu'il soit plus fonctionnel/objet en effet.
J'ai plus qu'une balle
[^] # Re: Point de vue pragmatique mais
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 1.
On peut également faire du RUST sans os sur le kit hifive1.
J'ai plus qu'une balle
# Clap de fin
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 8. Dernière modification le 13 juillet 2018 à 08:11.
Bon le site en question ne sera resté qu'une seule journée en ligne. Arm ayant assez vite compris la bourde ;)
Du coup le site «concurrent» va lui aussi fermer ses portes ce weekend comme l'indique l'auteur dans un message sur le github.
C'est un clap de fin pour une histoire qui nous aura fait bien rire.
On remercie la société Arm d'avoir mis un tel coup de projecteurs sur cette architecture de processeur promise à un bel avenir.
J'ai plus qu'une balle
[^] # Re: Serveur inaccessible
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 4.
Y a un responsable com' chez Arm qui a dû se faire virer …
J'ai plus qu'une balle
[^] # Re: Point de vue pragmatique mais
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 8.
Le Risc-V est déjà dans le kernel Linux mainline. Il existe un proc Risc-V fonctionnant sous Linux (quad-core 64bits + un core «realtime») produit par SiFive (la boite créée par les chercheurs de Berkley): HiFive Unleashed.
J'ai plus qu'une balle
[^] # Re: petite remarque
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 10.
Au contraire, c'est une vrai reconnaissance pour Risc-V !
J'ai plus qu'une balle
# arm-basics.com
Posté par martoni (site web personnel, Mastodon) . En réponse au journal «Understand the fact» la campagne de Arm contre le set d'instructions libre Risc-V. Évalué à 10.
Et le plus beau dans tout ça, c'est qu'ils ont «oublié» d'enregistrer le nom de domaine arm-basics. Du coup il y a une version concurrente du site https://www.arm-basics.com/.
ARM architecture : Understand the facts
J'ai plus qu'une balle
[^] # Re: xkcdify ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Intégration de TapTempo-Chisel sur APF27. Évalué à 1.
Comparer mon diagramme à xkcd est un grand honneur ! Mais je ne pense pas lui arriver à la cheville ;)
Je débute avec ma tablette wacom et j'utilise MyPaint pour gribouiller.
J'ai plus qu'une balle
[^] # Re: clic clac
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Intégration de TapTempo-Chisel sur APF27. Évalué à 1.
Par contre je me suis vautré pour le lien de la vidéo. Le vrai lien vers la vidéo est celui-ci.
J'ai plus qu'une balle
[^] # Re: clic clac
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Intégration de TapTempo-Chisel sur APF27. Évalué à 3.
C'est ça ;)
D'après la datasheet de la carte de développement, le bouton est branché via une résistance de «pull-up». La valeur est donc à '1' par défaut et à '0' quand on appuie dessus. Comme TapTempo déclenche sur front montant du signal bouton, c'est au relâchement que le comptage est pris en compte.
J'ai plus qu'une balle
# Quel FPGA ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Arduino de retour avec deux nouvelles cartes : MKR Vidor 4000 et Uno WiFi Rev 2. Évalué à 10.
Pour ceux qui se posent la question, le FPGA en question sera un Cyclone10. Ce qui est bizarre c'est que le modèle n'est donné nul part dans la spec. Seule la photo montre bien un composant cyclone10.
À la vue de la description donnée sur la page du produit, le modèle serait probablement un Cyclone10 LP 10CL016.
On peut sans doute réussir à miner du bitcoin avec ça, mais on sera (très) loin derrière une carte graphique de PC à mon avis ;)
Ce qui est intéressant par contre si cette carte se démocratise ce sont les outils! On pourrait espérer l'émergence d'outils de synthèse/placementroutage un peu plus libro-compatible et plus léger que l'énorme Quartus fourni par Altera/intel. Mais je rêve un peu.
J'ai plus qu'une balle
[^] # Re: French in the text
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Une victoire pour Framagit. Évalué à -1.
Ils auraient pu mettre le texte de la licence en français aussi. On a pas une licence opensource cocorico en france (CECCIL ?) d'ailleurs ?
Mais ça reste une bonne nouvelle :)
J'ai plus qu'une balle
# Version 3.1.0 toute fraîche
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un composant électronique TapTempo avec Chisel3. Évalué à 1.
Pour info, la version 3.1.0 vient de sortir ce soir : https://chisel.eecs.berkeley.edu/blog/?p=189
J'ai plus qu'une balle
[^] # Re: un nouveau HDL !
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un composant électronique TapTempo avec Chisel3. Évalué à 1.
Ça se discute, il commence à y avoir pas mal de nouveau langages open-source intéressants aujourd'hui. j’essaie d'en maintenir une liste plus ou moins exhaustive avec mon schéma OpenSourceFPGAMap.
Je pense notamment à Migen, MyHDL (python) ou à Clash (Haskell), sans compter les dérivés de scala (pourquoi cet amour immodéré pour scala ?) : SpinalHDL et DFiant. Tout ces nouveaux langage génère ensuite du Verilog et/ou du VHDL pour être accepter par les logiciels de synthèse/simulation du marché.
Mais Chisel me semble le plus abouti «industriellement» dans la mesure où il sert de base à la société SiFive pour produire ses cœurs E310 et U500 basé sur le set d'instructions Risc-V.
Je me suis également servi de Chisel pour réaliser un design client sans «trop» de problème.
Après pour l'histoire du «behavioral», le principe de chisel est de faire un design synchrone et synthétisable. Du coup si c'est pas synthétisable ou synchrone alors le code n'est pas juste et doit provoquer une erreur. Il n'y a donc pas de séparation entre le comportementale (behavioral) et le synthétisable (RTL).
J'ai plus qu'une balle