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).
En fait je n'ai présenté que le «core», si on intégrait que cette partie cela ne fonctionnerait pas bien du tout ;)
Le passage du langage HDL au «schéma électronique» se nomme la Synthèse. Il permet de transformer un code «haut-niveau» en netlist.
La netlist est ce qui correspond au schéma électronique, puisque c'est une liste des composants avec leurs connections.
Pour être intégrer dans un FPGA il y a encore une étape de package puis placement-routage et enfin la génération du fichier de configuration -> le bitstream.
Et oui, il faut également établir une correspondance entre les I/O (ici le bouton, les sorties bpm ainsi que l'horloge et le reset) sur le FPGA et le «core».
Je pense faire tout ça, une fois que j'aurai trouver une plate-forme qui me convient et surtout le temps !
Si je ne trompes pas (ça fait des années que je n'ai pas fait de Chisel, et encore moins du Chisel3), il manque une resynchronisation du signal button par rapport à l'horloge timepulse…
Nope, pas de problème de resynchronisation entre timepulse et count, car timepulse n'est pas une horloge. C'est un signal qui passe à '1' quand le compteur déborde (et repasse à zero) :
La valeur de timpulse est ensuite utilisée avec la fonction risingedge() définie avant :
defrisingedge(x:Bool)=x&&!RegNext(x)
Cette fonction «sauvegarde» la valeurs précédente du signal 'x' et s'en sert pour détecter un front montant en regardant la valeur présente du même signal. La sauvegarde se fait avec un registre (RegNext()).
Tout le code présenté est cadencé avec une seule horloge. Cette horloge est implicite, on ne la voit pas dans le code. Il n'y a donc pas de franchissement de domaine d'horloge … sauf pour le signal d'entrée mais comme dit dans l'article : c'est quelque chose qu'il faut ajouter à l'intégration dans le FPGA.
[^] # 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
[^] # Re: HDL
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un composant électronique TapTempo avec Chisel3. Évalué à 2.
En fait je n'ai présenté que le «core», si on intégrait que cette partie cela ne fonctionnerait pas bien du tout ;)
Le passage du langage HDL au «schéma électronique» se nomme la Synthèse. Il permet de transformer un code «haut-niveau» en netlist.
La netlist est ce qui correspond au schéma électronique, puisque c'est une liste des composants avec leurs connections.
Pour être intégrer dans un FPGA il y a encore une étape de package puis placement-routage et enfin la génération du fichier de configuration -> le bitstream.
Et oui, il faut également établir une correspondance entre les I/O (ici le bouton, les sorties bpm ainsi que l'horloge et le reset) sur le FPGA et le «core».
Je pense faire tout ça, une fois que j'aurai trouver une plate-forme qui me convient et surtout le temps !
J'ai plus qu'une balle
[^] # Re: Il manque une synchronisation
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un composant électronique TapTempo avec Chisel3. Évalué à 2.
Nope, pas de problème de resynchronisation entre timepulse et count, car timepulse n'est pas une horloge. C'est un signal qui passe à '1' quand le compteur déborde (et repasse à zero) :
La valeur de timpulse est ensuite utilisée avec la fonction risingedge() définie avant :
Cette fonction «sauvegarde» la valeurs précédente du signal 'x' et s'en sert pour détecter un front montant en regardant la valeur présente du même signal. La sauvegarde se fait avec un registre (RegNext()).
Tout le code présenté est cadencé avec une seule horloge. Cette horloge est implicite, on ne la voit pas dans le code. Il n'y a donc pas de franchissement de domaine d'horloge … sauf pour le signal d'entrée mais comme dit dans l'article : c'est quelque chose qu'il faut ajouter à l'intégration dans le FPGA.
J'ai plus qu'une balle
[^] # Re: bonne idée ...
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Naissance de la Taptempo-Federation. Évalué à 10.
)
J'ai plus qu'une balle
# Collision de nom ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Sortie de la version 7.12.0 de Bokeh. Évalué à 2.
Il n'y aurait pas une collision avec le nom de la librairie python permettant de faire des graphs en HTML/Javascript ?
J'ai plus qu'une balle
[^] # Re: À quand le brainfuck
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Perl6. Évalué à 1.
Vœux exaucé ;)
J'ai plus qu'une balle
# À quand le brainfuck
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Portage de TapTempo en Perl6. Évalué à 2. Dernière modification le 24 août 2019 à 18:09.
J'attends avec impatience le portage de TapTempo en brainfuck et en whitespace ;)
J'ai plus qu'une balle
[^] # Re: Serait-ce le même ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Seconde mise en demeure pour l'association LinuxFr. Évalué à 2.
Sinon paf pastèque !
J'ai plus qu'une balle
[^] # Re: Les brouzoufs
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Seconde mise en demeure pour l'association LinuxFr. Évalué à 9.
Ça c'est quand tu as un livre à vendre. Pas sûr que pour un avocat ça soit de la bonne pub par contre (surtout s'il perd).
J'ai plus qu'une balle
[^] # Re: dubitatif
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Après le kit HiFive, QWERTY Embedded Design propose un nouveau kit lowcost : LoFive. Évalué à 2.
Je me suis peut-être un peu emballé en parlant de «module pro». C'est plutôt une version light du module qu'ils ont produit avant. Tout simplement.
J'ai plus qu'une balle
[^] # Re: Bronsorisé par une tapette géante ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Il dit qu'il s'est fait bronsoniser. Évalué à 4.
Monsieur n'est pas une tapette, monsieur est commissaire de police.
J'ai plus qu'une balle
# Bronsorisé par une tapette géante ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Il dit qu'il s'est fait bronsoniser. Évalué à 4.
Comment ça je bluff ?!
J'ai plus qu'une balle