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.
Non, VHDL et Verilog sont deux langage de description matériel. Les deux sont conçus initialement pour simuler le comportement final d'un composant numérique.
L'un est basé sur un semblant de ADA et était une commande de l'armée américaine. L'autre est un langage initialement proprio de la société Cadence qui l'a «libéré» pour faire concurrence à VHDL.
Les deux sont «simulable» bien sur vu qu'ils sont conçu pour ça. Il y a même des logiciels de simulation libre :
Pour le Verilog
Icarus assez complet.
Verilator, celui là est un peu spécial, il converti le modèle Verilog en un objet C++, ce qui permet d'accélérer nettement la simulation (100 fois plus rapide environ)
[^] # 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
# Un système d'exploitation pour gouziphone !
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Sortie de Replicant 6.0. Évalué à 2.
Hormis le dessin d'un robot ressemblant furieusement à celui d'android, rien ne dit que l'os libre en question est destiné aux téléphones à caresser !
Je dit ça car j'ai mis du temps à comprendre, mais ça doit être l'âge ;)
J'ai plus qu'une balle
[^] # Re: Cotisations != employé
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Un four à pain c'est considéré comme un employé ?. Évalué à 0.
On parle de cotisations social pas de taxe là. Les cotisations social vont dans les caisses de la sécu, retraite, prévoyance,… pour les gens.
J'ai plus qu'une balle
[^] # Re: Preuve formelle et supervision de la fabrication et de la distribution
Posté par martoni (site web personnel, Mastodon) . En réponse au journal HiFive1: Un Arduino à 320Mhz entièrement libre pour 2017. Évalué à 2.
On vote ?
Moi j'dis qu'il bluff pas.
(je ne savais pas que le Commissaire Bialès moulait sur linuxfr, la classe ;) )
J'ai plus qu'une balle
[^] # Re: Preuve formelle et supervision de la fabrication et de la distribution
Posté par martoni (site web personnel, Mastodon) . En réponse au journal HiFive1: Un Arduino à 320Mhz entièrement libre pour 2017. Évalué à 4.
À quand les captchas sur les commentaires linuxfr ?
Histoire d'éviter ce genre de robot pipotron-complotiste.
J'ai plus qu'une balle
[^] # Re: Code VHDL : peu de lignes ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal OPEN-V : premier microcontrôleur libre ?. Évalué à 2.
Et pourtant il en existe une pour le Lattice ice40 -> Icestorm
J'ai plus qu'une balle
[^] # Re: Code VHDL : peu de lignes ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal OPEN-V : premier microcontrôleur libre ?. Évalué à 7.
Non, VHDL et Verilog sont deux langage de description matériel. Les deux sont conçus initialement pour simuler le comportement final d'un composant numérique.
L'un est basé sur un semblant de ADA et était une commande de l'armée américaine. L'autre est un langage initialement proprio de la société Cadence qui l'a «libéré» pour faire concurrence à VHDL.
Les deux sont «simulable» bien sur vu qu'ils sont conçu pour ça. Il y a même des logiciels de simulation libre :
Pour le Verilog
Pour le VHDL : principalement GHDL
J'ai plus qu'une balle
[^] # Re: Code VHDL : peu de lignes ?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal OPEN-V : premier microcontrôleur libre ?. Évalué à 4.
Il y a même aucune ligne de code VHDL dans le lien donné puisque c'est du Verilog ;)
500 lignes de Verilog c'est déjà pas mal je trouve.
J'ai plus qu'une balle
# RISC-V
Posté par martoni (site web personnel, Mastodon) . En réponse au journal OPEN-V : premier microcontrôleur libre ?. Évalué à 2.
Bon j'avais commencé une dépêche sur le sujet, mais je me suis fait doubler ;)
C'est basé sur le cœur développé par l'université de Berkeley : Risc-V.
C'est un cœur qui commence à avoir son petit succès. Il a déjà été intégré dans d'autre projet d'ASIC je crois.
J'ai plus qu'une balle