silverlankaiz, il y a eu quelques tentatives de libération de gros FPGA par le passé. Je pense surtout au projet «debit» et son papier «from the bitstream to the netlist» qui s'était attaqué à la rétro-ingénierie du Spartan3. Mais il y a aussi, dans une certaine mesure, le projet Torc, mais développé par une université qui est financé par les gros du FPGA, du coup tout n'est pas reversé pour pas les froisser.
J’essaie de les recenser sur une page du front de libération des FPGA.
De tout les projets que je scrute depuis quelques années maintenant, le projet Icestorm est de très loin le projet le plus abouti. Le projet inclue même l'analyse des timings maintenant, ce qui était son gros point noir au début.
Merci pour tous les conseils jehan, bon le but n'est pas non plus de trop dégrader l'expérience utilisateur avec une popup dégueulasse qui encombre la vue.
L'idée est plutôt de faire un bandeau en haut de la page, ou un encart sur le coté donnant le message.
Juste histoire de contrer les messages qui me traitent de voleur à tout bout de champs quand je surf sur le web ;)
Chisel est un langage synthétisable et synchrone. Cela signifie que si ton code est correcte en chisel, il synthétisera !
Ce qui n'est pas le cas des HDL comme VHDL ou Verilog, qui eux sont des langages de simulation à l'origine. Prévu pour décrire le comportement d'un composant.
De plus Chisel est un langage synchrone. Écrire quelque chose d'asynchrone génèrera une erreur à la «compilation» contrairement au VHDL/Verilog. (Mais il existe des moyens d'avoir plusieurs domaines d'horloges tout de même).
C'est un langage beaucoup plus moderne que VHDL/Verilog qui est nettement moins verbeux et plus facile à factoriser (langage objet, fonctions plus facile à écrire, …).
Par contre c'est basé sur le scala, qui n'est pas un langage très courant dans le monde de l'embarqué. La courbe d'apprentissage du scala n'est pas forcément très douce pour qui est habitué au C/Python/…
Pour moi «brute-forcer» signifie : tester toutes les combinaison possibles bêtement une par une jusqu’à obtenir la bonne.
Après pour faire moins brute on peut réduire l'espace des combinaison possible en faisant des «attaques au dictionnaire» ou autre.
Mais le «brute-force» n'a rien de violent, c'est juste du calcul bête et long ;)
Tu peux tout à fait financer un projet libre et maintenir un fork pour ton compte. C'est un peu ce que font Ubuntu, Android et consort (pas sûr qu'ils financent beaucoup Debian et Linux en fait).
S'adosser à un projet libre énormément utilisé te donne une certaine pérennité. Tu n'as plus qu'a te concentrer sur les détails que tu veux spécialiser.
Perso je serais moins hostile à installer un système sachant qu'il est basé sur un truc connu et très utilisé plutôt que de me lancer sur un truc totalement nouveau développé par une petite équipe (quelque soit les millions engloutis dans un OS souverain, l'équipe sera nécessairement plus petite que celle développant Linux ou Debian).
C'est ouvert aux rédacteurs si tu veux soutenir la lutte n'hésites pas ;)
Pour MyHDL c'est vrai que je l'ai oublié, mais il est légèrement différent des trois cités. Les trois que j'ai cité se concentrent sur la conception de design synchrones, alors que MyHDL se veut un simple remplaçant de VHDL/Verilog en python. Ce qui est aussi très intéressant !
Si le projet à 12 ans et qu'il a été débuté en Europe il n'y a rien d'étonnant à le voir écrit en VHDL. Il est vrai que GHDL est un très bon outil pour simuler du VHDL (je l'utilise tout les jours), mais il est lent. Tout comme icarus est lent pour le Verilog.
VHDL et Verilog ne sont pas des langages conçues à l'origine pour faire de la synthèse FPGA, se ne sont que des langages de simulation.
Quitte à reprendre tout de zéro, pourquoi ne pas passer sur les nouveaux langages de synthèse comme Clash, Migen ou surtout Chisel ?
Ces langages sont conçues pour la synthèse (synchrone) et permettent de développer des «IP» de manière beaucoup moins verbeuses en limitant les copier/coller. Et il n'est plus nécessaire de se taper du VHDL/Verilog pour les testbench.
Avec Chisel par exemple il est possible de générer
- soit un code synthétisable en verilog pour les outils privateurs habituels (ISE, Quartus, …)
- soit un modèle C++ pour la simulation. Le modèle C++ pour la simulation est nettement plus rapide que les simulateurs GHDL ou Icarus. On peut même envisager de «faire tourner» un programme sur le modèle en simulation (à quelques centaines de kilohertz au lieu des MégaHertz certes, mais c'est tout de même pas mal pour de la simulation).
Les outils du FPGA sont vieux. ils s'encroûtent. il faut faire la révolution et libérer les FPGA avec de nouveaux outils/langages !
Armadeus Project est spécialisée depuis longtemps aussi dans les cartes à base d'arm.
Ils sortent en ce moment l'apf6 à base d'i.MX6.
Le support d'un bsp à base de buildroot est dispo sur sourceforge.
Ce qui est spécifique avec ces cartes, c'est qu'il y a toujours (hormis apf28) une version disponible avec un FPGA. Cela permet d'étendre la possibilité des périphériques déjà disponibles dans le processeur freescale.
La question n'est pas de savoir lequel est le meilleurs, mais plutôt dans lequel s'engager si on veut utiliser des logiciels libres pour développer avec.
En tout cas pas avec des logiciels libre. La base de cette lib n'est pas si libre que ça d'ailleurs, il faut s'identifier sur le site pour avoir accès au code.
Tout à fait d'accord avec toi, l'avenir n'est pas dans le Verilog ou le VHDL.
Mais quand je regarde les projets libres générant du langage HDL pour la synthèse, la plupart se basent sur le Verilog.
Comme souvent ces projets ne sont pas «terminés» il faut souvent mettre les mains dans le code généré, du coup si on veut utiliser des outils libres pour le faire du FPGA c'est au Verilog qu'il faut se mettre.
Le VHDL appris à l'école réduit le champs des possible dans le libre.
Je connaissais myhdl, mais quand j'avais regardé il était encore embryonnaire. Visiblement c'est un projet qui avance bien, je vais me pencher dessus à nouveau.
C'est assez ambitieux de pouvoir générer à la fois du VHDL et du Verilog pour la synthèse.
Pour OpenCL, les outils de conversions ne semblent pas spécialement libre par contre.
L'arduino est une carte de développement complète centrée sur un Atmel SAM3X8E avec un cœur ARM Cortex-M3. ARM Ltd ne fournissant pas ses IP en libre je doute que tu trouve une «IP» libre de ce composant.
Mais l'atmel est un microcontrôleur muni d'un certain nombre de périphériques que tu ne pourras pas synthétiser dans le FPGA. Tu pourras synthétiser des uarts et des PWM, mais pas les ADC puisqu'il n'y en a pas dans le spartan (FPGA). À voir avec la futur carte d'Armadeus, normalement son FPGA intégrera un ADC.
Quand à l'intégration de l'ethernet et de l'usb dans le FPGA, t'as peu de chance que ça rentre.
Disons plutôt que ça n'est pas pensé comme un PC. Il n'y a pas d'environnement de bureau, le debugage/pilotage des cartes se fait via un port série (ou USB selon les cartes). Les cartes peuvent tout à fait fonctionner sans écran, et c'est d'ailleurs leurs fonctionnement par défaut.
D'autre part, en plus du processeur ARM, il y a un FPGA, j'imagine que c'est une fonctionnalité centrale du projet ? (l'ARM est en quelque sorte au service du FPGA) ?
Hmm, il faut plutôt voir ça à l'inverse, le FPGA est branché sur l'espace mémoire de l'ARM et permet d'ajouter des «périphériques virtuels» (On parle aussi d'IP mais je ne trouve pas le mot adapté). Par exemple, si tu as besoin d'ajouter des ports séries ou des gpios tu peux les synthétiser dans le FPGA et les utiliser ensuite avec Linux sur l'ARM.
Pour intégrer ces périphériques virtuels Armadeus utilise un outils maison qui possède un certain nombre de composants en standard (GPIO, UART, PWM, …):
PeripheralOnDemand :POD http://www.armadeus.com/wiki/index.php?title=POD_Tutorial
Le fait d'avoir un ARM permet de reprogrammer le FPGA au besoin, sans redémarrage ?
[^] # Re: Il suffit d'inverser les codes de détection d'adblock
Posté par martoni (site web personnel, Mastodon) . En réponse au message Nous avons remarqué que vous n'utilisez pas de bloqueur de publicité .... Évalué à 1.
Voici :
http://www.fabienm.eu/wordpress/?p=901
;)
J'ai plus qu'une balle
[^] # Re: le logiciel permet de dessiner son projet au moyen de blocs reliés...
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Icestudio 0.2, du schéma au verilog. Évalué à 4.
Dans un journal non c'est systématique ;) Par contre dans une dépêche c'est la première fois vu que c'est ma première dépêche.
J'ai plus qu'une balle
[^] # Re: Il suffit d'inverser les codes de détection d'adblock
Posté par martoni (site web personnel, Mastodon) . En réponse au message Nous avons remarqué que vous n'utilisez pas de bloqueur de publicité .... Évalué à 1.
Je n'y manquerais pas ;)
J'ai plus qu'une balle
[^] # Re: La "libération" de ce FPGA est une excellente chose
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Icestudio 0.2, du schéma au verilog. Évalué à 3.
silverlankaiz, il y a eu quelques tentatives de libération de gros FPGA par le passé. Je pense surtout au projet «debit» et son papier «from the bitstream to the netlist» qui s'était attaqué à la rétro-ingénierie du Spartan3. Mais il y a aussi, dans une certaine mesure, le projet Torc, mais développé par une université qui est financé par les gros du FPGA, du coup tout n'est pas reversé pour pas les froisser.
J’essaie de les recenser sur une page du front de libération des FPGA.
De tout les projets que je scrute depuis quelques années maintenant, le projet Icestorm est de très loin le projet le plus abouti. Le projet inclue même l'analyse des timings maintenant, ce qui était son gros point noir au début.
Il y a une vieille présentation de Sébastien Bourdeauducq sur comment s'y prendre pour faire le reverse engineering d'un fpga aussi.
J'ai plus qu'une balle
[^] # Re: Il suffit d'inverser les codes de détection d'adblock
Posté par martoni (site web personnel, Mastodon) . En réponse au message Nous avons remarqué que vous n'utilisez pas de bloqueur de publicité .... Évalué à 1.
Merci pour tous les conseils jehan, bon le but n'est pas non plus de trop dégrader l'expérience utilisateur avec une popup dégueulasse qui encombre la vue.
L'idée est plutôt de faire un bandeau en haut de la page, ou un encart sur le coté donnant le message.
Juste histoire de contrer les messages qui me traitent de voleur à tout bout de champs quand je surf sur le web ;)
J'ai plus qu'une balle
[^] # Re: Interressant
Posté par martoni (site web personnel, Mastodon) . En réponse au journal De retour du 4e workshop RISC-V. Évalué à 2. Dernière modification le 18 juillet 2016 à 10:36.
Chisel est un langage synthétisable et synchrone. Cela signifie que si ton code est correcte en chisel, il synthétisera !
Ce qui n'est pas le cas des HDL comme VHDL ou Verilog, qui eux sont des langages de simulation à l'origine. Prévu pour décrire le comportement d'un composant.
De plus Chisel est un langage synchrone. Écrire quelque chose d'asynchrone génèrera une erreur à la «compilation» contrairement au VHDL/Verilog. (Mais il existe des moyens d'avoir plusieurs domaines d'horloges tout de même).
C'est un langage beaucoup plus moderne que VHDL/Verilog qui est nettement moins verbeux et plus facile à factoriser (langage objet, fonctions plus facile à écrire, …).
Par contre c'est basé sur le scala, qui n'est pas un langage très courant dans le monde de l'embarqué. La courbe d'apprentissage du scala n'est pas forcément très douce pour qui est habitué au C/Python/…
J'ai plus qu'une balle
[^] # Re:
Posté par martoni (site web personnel, Mastodon) . En réponse au journal testmysite.thinkwithgoogle.com. Évalué à 1.
Pas si arbitraire que ça, ça permet de savoir comment google référence le site aussi.
J'ai plus qu'une balle
[^] # Re: bruter-forcer...
Posté par martoni (site web personnel, Mastodon) . En réponse au journal miniurl ki pu. Évalué à 4.
Pour moi «brute-forcer» signifie : tester toutes les combinaison possibles bêtement une par une jusqu’à obtenir la bonne.
Après pour faire moins brute on peut réduire l'espace des combinaison possible en faisant des «attaques au dictionnaire» ou autre.
Mais le «brute-force» n'a rien de violent, c'est juste du calcul bête et long ;)
J'ai plus qu'une balle
[^] # Re: Oui, il est bon
Posté par martoni (site web personnel, Mastodon) . En réponse au journal le retour du Virus Informatique [presse]. Évalué à 9.
Bon la conception de cette tablette était financé par elf d'après l'article …
J'ai plus qu'une balle
[^] # Re: Supaire
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Un système d’exploitation français pour la souveraineté numérique. Évalué à 3.
Tu peux tout à fait financer un projet libre et maintenir un fork pour ton compte. C'est un peu ce que font Ubuntu, Android et consort (pas sûr qu'ils financent beaucoup Debian et Linux en fait).
S'adosser à un projet libre énormément utilisé te donne une certaine pérennité. Tu n'as plus qu'a te concentrer sur les détails que tu veux spécialiser.
Perso je serais moins hostile à installer un système sachant qu'il est basé sur un truc connu et très utilisé plutôt que de me lancer sur un truc totalement nouveau développé par une petite équipe (quelque soit les millions engloutis dans un OS souverain, l'équipe sera nécessairement plus petite que celle développant Linux ou Debian).
J'ai plus qu'une balle
[^] # Re: Je trouve que le nom est trop facilement prononçable ...
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Publication de la première version de fwtchrq.. Évalué à 1.
Ça me fait penser à un gag dans Kid paddle cherchant à faire un mot au scrabble ;)
J'ai plus qu'une balle
[^] # Re: VHDL ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Le retour de F-CPU, le processeur libre. Évalué à 2. Dernière modification le 20 avril 2015 à 11:47.
C'est ouvert aux rédacteurs si tu veux soutenir la lutte n'hésites pas ;)
Pour MyHDL c'est vrai que je l'ai oublié, mais il est légèrement différent des trois cités. Les trois que j'ai cité se concentrent sur la conception de design synchrones, alors que MyHDL se veut un simple remplaçant de VHDL/Verilog en python. Ce qui est aussi très intéressant !
J'ai plus qu'une balle
# VHDL ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Le retour de F-CPU, le processeur libre. Évalué à 7. Dernière modification le 20 avril 2015 à 08:53.
Si le projet à 12 ans et qu'il a été débuté en Europe il n'y a rien d'étonnant à le voir écrit en VHDL. Il est vrai que GHDL est un très bon outil pour simuler du VHDL (je l'utilise tout les jours), mais il est lent. Tout comme icarus est lent pour le Verilog.
VHDL et Verilog ne sont pas des langages conçues à l'origine pour faire de la synthèse FPGA, se ne sont que des langages de simulation.
Quitte à reprendre tout de zéro, pourquoi ne pas passer sur les nouveaux langages de synthèse comme Clash, Migen ou surtout Chisel ?
Ces langages sont conçues pour la synthèse (synchrone) et permettent de développer des «IP» de manière beaucoup moins verbeuses en limitant les copier/coller. Et il n'est plus nécessaire de se taper du VHDL/Verilog pour les testbench.
Avec Chisel par exemple il est possible de générer
- soit un code synthétisable en verilog pour les outils privateurs habituels (ISE, Quartus, …)
- soit un modèle C++ pour la simulation. Le modèle C++ pour la simulation est nettement plus rapide que les simulateurs GHDL ou Icarus. On peut même envisager de «faire tourner» un programme sur le modèle en simulation (à quelques centaines de kilohertz au lieu des MégaHertz certes, mais c'est tout de même pas mal pour de la simulation).
Les outils du FPGA sont vieux. ils s'encroûtent. il faut faire la révolution et libérer les FPGA avec de nouveaux outils/langages !
J'ai plus qu'une balle
# Armadeus
Posté par martoni (site web personnel, Mastodon) . En réponse au journal ARM: Etat des lieu dans la communauté linux. Évalué à 2.
Armadeus Project est spécialisée depuis longtemps aussi dans les cartes à base d'arm.
Ils sortent en ce moment l'apf6 à base d'i.MX6.
Le support d'un bsp à base de buildroot est dispo sur sourceforge.
Ce qui est spécifique avec ces cartes, c'est qu'il y a toujours (hormis apf28) une version disponible avec un FPGA. Cela permet d'étendre la possibilité des périphériques déjà disponibles dans le processeur freescale.
J'ai plus qu'une balle
[^] # Re: Logiciels de HLS
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Le VHDL prend-il l'eau ?. Évalué à 1.
La question n'est pas de savoir lequel est le meilleurs, mais plutôt dans lequel s'engager si on veut utiliser des logiciels libres pour développer avec.
J'ai plus qu'une balle
[^] # Re: Et System C?
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Le VHDL prend-il l'eau ?. Évalué à 1.
En tout cas pas avec des logiciels libre. La base de cette lib n'est pas si libre que ça d'ailleurs, il faut s'identifier sur le site pour avoir accès au code.
J'ai plus qu'une balle
[^] # Re: Logiciels de HLS
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Le VHDL prend-il l'eau ?. Évalué à 2.
Tout à fait d'accord avec toi, l'avenir n'est pas dans le Verilog ou le VHDL.
Mais quand je regarde les projets libres générant du langage HDL pour la synthèse, la plupart se basent sur le Verilog.
Comme souvent ces projets ne sont pas «terminés» il faut souvent mettre les mains dans le code généré, du coup si on veut utiliser des outils libres pour le faire du FPGA c'est au Verilog qu'il faut se mettre.
Le VHDL appris à l'école réduit le champs des possible dans le libre.
J'ai plus qu'une balle
[^] # Re: myHDL et OpenCL
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Le VHDL prend-il l'eau ?. Évalué à 2.
Je connaissais myhdl, mais quand j'avais regardé il était encore embryonnaire. Visiblement c'est un projet qui avance bien, je vais me pencher dessus à nouveau.
C'est assez ambitieux de pouvoir générer à la fois du VHDL et du Verilog pour la synthèse.
Pour OpenCL, les outils de conversions ne semblent pas spécialement libre par contre.
J'ai plus qu'une balle
# Liens
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Nouvelles de "Ada for Automation". Évalué à 3.
Un petit lien ?
le blog : http://slo-ist.fr/ada4autom
la doc : http://slo-ist.fr/A4A/Documentation/A4A-Book-fr.html
Ou le code : https://gitorious.org/ada-for-automation
J'ai plus qu'une balle
# Amen
Posté par martoni (site web personnel, Mastodon) . En réponse au journal "Le filtrage administratif, encore, vraiment ?" par Benjamin Bayart. Évalué à 10.
«dangereux pour la croissance économique».
La très Sainte Croissance Économique…
J'ai plus qu'une balle
[^] # Re: Manque un lien
Posté par martoni (site web personnel, Mastodon) . En réponse au journal GNU Radio et l’exploration spatiale. Évalué à 3.
Mouais, c'est surtout une grosse propagande pour chrome. Dès qu'on arrive sur le site il nous incite à le télécharger …
J'ai plus qu'une balle
[^] # Re: nos élus à l'heure du numerique
Posté par martoni (site web personnel, Mastodon) . En réponse au journal "Numérisons les intérêts des parlementaires". Évalué à 2.
Vu qu'on a leurs nom on doit pouvoir trouver leur email voir leur numéro de téléphone et les appeler pour leur demander des précisions.
J'ai plus qu'une balle
[^] # Re: Pari
Posté par martoni (site web personnel, Mastodon) . En réponse au journal Debian à l'heure du choix. Évalué à 5.
attention sinon pan pastèque.
J'ai plus qu'une balle
[^] # Re: IP Arduino sur FPGA
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Sortie de la version 5.3 du BSP du Projet Armadeus. Évalué à 1.
L'arduino est une carte de développement complète centrée sur un Atmel SAM3X8E avec un cœur ARM Cortex-M3. ARM Ltd ne fournissant pas ses IP en libre je doute que tu trouve une «IP» libre de ce composant.
Mais l'atmel est un microcontrôleur muni d'un certain nombre de périphériques que tu ne pourras pas synthétiser dans le FPGA. Tu pourras synthétiser des uarts et des PWM, mais pas les ADC puisqu'il n'y en a pas dans le spartan (FPGA). À voir avec la futur carte d'Armadeus, normalement son FPGA intégrera un ADC.
Quand à l'intégration de l'ethernet et de l'usb dans le FPGA, t'as peu de chance que ça rentre.
J'ai plus qu'une balle
[^] # Re: Différence avec Arduino et RaspberryPi ?
Posté par martoni (site web personnel, Mastodon) . En réponse à la dépêche Sortie de la version 5.3 du BSP du Projet Armadeus. Évalué à 4. Dernière modification le 09 janvier 2014 à 09:21.
Disons plutôt que ça n'est pas pensé comme un PC. Il n'y a pas d'environnement de bureau, le debugage/pilotage des cartes se fait via un port série (ou USB selon les cartes). Les cartes peuvent tout à fait fonctionner sans écran, et c'est d'ailleurs leurs fonctionnement par défaut.
Hmm, il faut plutôt voir ça à l'inverse, le FPGA est branché sur l'espace mémoire de l'ARM et permet d'ajouter des «périphériques virtuels» (On parle aussi d'IP mais je ne trouve pas le mot adapté). Par exemple, si tu as besoin d'ajouter des ports séries ou des gpios tu peux les synthétiser dans le FPGA et les utiliser ensuite avec Linux sur l'ARM.
Pour intégrer ces périphériques virtuels Armadeus utilise un outils maison qui possède un certain nombre de composants en standard (GPIO, UART, PWM, …):
PeripheralOnDemand :POD
http://www.armadeus.com/wiki/index.php?title=POD_Tutorial
Tout à fait: http://www.armadeus.com/wiki/index.php?title=FPGA_loader
Ce sont les fonctionnalités utilisable en général, il faut voir ensuite si elles sont disponibles en fonction de la carte utilisée:
http://www.armadeus.com/wiki/index.php?title=Hardware
J'ai plus qu'une balle