Aller au contenu


Photo
- - - - -

Question sur les cartes fpga.


  • Veuillez vous connecter pour répondre
6 réponses à ce sujet

#1 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 136 messages
  • Gender:Male

Posté 13 mai 2017 - 11:04

Salut à tous!

Je commence à m'intéresser aux cartes de développement fpga et n'ayant jamais utilisé ce genre de chose je me suis dit que peut être certain d'entre vous en avait déjà testé.

Ce qui m'intéresse c'est que l'on peut construire des circuits logiques qui fonctionne rapidement.
-Donc pour faire ça, doit on obligatoirement s'initier au vhdl ou peut on simplement utiliser une programmation graphique en dessinant les circuits ? A ton accès à autant de fonctionnalité en programmation graphique qu'en vhdl, j'imagine que non ?

-Comment se faire une idée sur la rapidité d'une carte ? Par exemple sur une DE0 nano
http://www.terasic.c...No=593&PartNo=2 je vois que la puce est cadencé à 50mhz, est ce que c'est à prendre en compte de la même manière qu'un microcontrôleur ?


Merci :)

#2 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 13 mai 2017 - 01:23

Etant dans la domaine de la micro-éléctronique je vais tenter de t'aider au mieux, meme si je suis pas spécialiste des FPGA eux mêmes.

 

En regle generale les fournisseur de FPGA (Xilinx et Altera) fournissent un enviroment de developpement simple, qui inclu des outils purement graphiques. Dans ton DE0 nano c'est un Altera Cyclone IV, et c'est 'Quartus' l'environment de development pour Altera.

La denière fois que j'ai utilisé l'environement graphique ( ca date de l'année 2001 quand même ), tu peux vraiment faire pas mal de chose quand même.

Après c'est comme pour les micro controlleur, tu peux coder en graphique genre mBlock, ou apprendre le C. Et bien evidemment en C tu peux faire beaucoup plus.

Mais certain élément sont plus simple en graphique, surtout pour commencer.

 

Personnelement si tu dois coder dans un langage 'hardware' essaie plutôt le verilog que le vhdl. Le verilog est plus proche du C, mais surtout je ne connais plus d'entreprise qui fait du hardware en vhdl, ils sont tous en verilog. ( Mais je ne cotoie que des entreprises internationale qui font des puces sur silicium, je sais que le vhdl existe encore en 'académique', vu que c'est un standard a l'origine européen, là ou le verilog est un standard plutôt américain).

 

Concernant la carte, 50 Mhz c'est la frequence de l'oscillateur de la carte, et donc la frequence des autres composant de la carte. Le FPGA lui-meme, l'Altera Cyclone IV a un generateur d'horloge interne qui peut monter jusqu'a 470 Mhz, mais ne reve pas tu ne pourras pas faire de la logique a cette frequence là, par contre ca dire que tu arriveras sans problemes a faire des circuits à  50 Mhz en interne du FPGA. En fonction de ton code, la 'synthese' sur le FPGA te dira a quelle fréquence maximum tu pourras le faire tourner



#3 ashira

ashira

    Pilier du forum

  • Modérateur
  • PipPipPipPipPip
  • 1 136 messages
  • Gender:Male

Posté 13 mai 2017 - 04:26

D'accord. Donc je vais télécharger l'environnement et voir si le verilog est facile à manipuler. Je viens de voir quelques exemples de base avec des portes logiques et c'est compréhensible. Je vais essayer en faisant des simulations avec le logiciel avant d'acheter quoi que ce soit.

Un circuit qui s'exécute à 50mhz c'est déjà pas mal.
Merci!

#4 Bobox

Bobox

    Habitué

  • Membres
  • PipPip
  • 153 messages
  • Gender:Male
  • Location:Montigny le Bretonneux

Posté 13 mai 2017 - 05:28

C'est une très bonne idée, on passes plus de temps sur le simulateur que sur le fpga.

Et tu peux tout faire avec le simulateur, mis à part interagir avec les élements exterieur au FPGA, qui sont sur la carte.

 

Si tu as des questions ou rencontre des problèmes en verilog, n'hésites pas à les exposer ici, je pourrai surement t'aider.



#5 cocothebo

cocothebo

    Habitué

  • Membres
  • PipPip
  • 159 messages
  • Gender:Male

Posté 15 mai 2017 - 08:12

Salut,

 

Je ne suis pas expert ni même utilisateur en fait, a part un peu pendant mes études (donc ça fait longtemps).

 

Par contre ce que je peux dire c'est que 50MHz sur un FPGA, c'est suivant ce que tu fais beaucoup mais beaucoup plus rapide que l'équivalent d'un proc à 50 MHz.

 

Bien sûr ça sera de l'optimisation d'un process, par exemple un traitement spécifique d'image, si bien fait sur FPGA ira surement limite plus vite que sur un proc courant.

En gros quand un traitement est facilement parallélisable, tu fais la structure "X" fois et paf c'est un vrai fonctionnement parallèle.

 

En généralisant, ça marche super bien pour tout ce qui est calcul un peu complexe parallélisable ou séquentielles pouvant être codés en analogique, donc les fonctions style DSP, dans mon métier ce qui est souvent réalisé sont les accélérateurs cryptographiques, par exemple pour un algo facilement accélérable, genre DES, une implémentation plutôt très rapide se fera en environ 350 instructions (disons 350 clocks), sur un FPGA on peut tendre vers 16, donc même à 50MHz ça ira très vite (pratiquement équivalent à 2GHz quoi).

La limite étant le nombre de porte dispos (ou bloc plutôt) et donc le nombre de circuits parallèle ou fonctions possibles.

 

 

Après VHDL ou Verilog, ça change pas fondamentalement l'idée qui est quand même très différente de la prog classique. Le gros pb du FPGA c'est d'arriver à faire qqc de correct et restant un poil optimisé, ça reste une programmation très fortement parallèle.



#6 maximusk

maximusk

    Habitué

  • Membres
  • PipPip
  • 288 messages
  • Gender:Male
  • Location:Le Mans

Posté 19 mai 2017 - 06:43

Salut.

 

Pour avoir déjà travaillé avec Quartus (sur Cyclone II), tu peux faire pas mal de chose avec l'environnement graphique (en prenant des blocs et en les associant comme tu veux). De plus, on peut programmer un processeur NIOS dans le FPGA (et surement d'autres types de processeur, mais le NIOS est concu pour tourner sur FPGA altera). 

Par contre, si tu envisages vraiment de faire des choses compliquées, je pense qu'il faut vraiment apprendre le Verilog ou VHDL. Pour moi la programmation graphique (et pas que sur FPGA, tous les environnements graphiques types mindstorms aussi) c'est bien 5 minutes pour s'initier, mais dès qu'on se lance dans des projets un peu compliqués, ça devient un vrai labyrinthe.



#7 Leon

Leon

    Membre passionné

  • Modérateur
  • PipPipPipPipPip
  • 1 284 messages
  • Gender:Male

Posté 19 mai 2017 - 07:04

J'ai découvert les FPGA il y a 2 ans, et je trouve ça vraiment puissant.

Mais même si c'est puissant et amusant, ça n'est utile que pour des applications assez spécifique. C'est en manipulant la bête que l'on comprend ce qu'un FPGA peut apporter.

 

Par contre, je suis du même avis que les autres : pour exploiter même un tout petit peu la puissance des FPGA, il vaut mieux rapidement apprendre le Verilog ou le VHDL. En quelques lignes de code, tu fais l'équivalent de choses très complexes représentées en "schématique".

 

Et puis, passer d'un langage classique © à un langage de description hardware, je trouve que c'est un bon exercice "intellectuel".

 

Leon.


BOB4, mon drone hélicoptère autonome d'intérieur http://heli.bot.free.fr/
BOB3, mon robot autonome d'intérieur avec WiFi + Foxboard Linux http://ze.bot.free.fr/
BOB5, robot bipède simulé, puis tentative de réalisation (fail)





0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users