[Numérique] FPGA vs Microcontroleur
Répondre à la discussion
Affichage des résultats 1 à 24 sur 24

FPGA vs Microcontroleur



  1. #1
    invite523c426f

    FPGA vs Microcontroleur


    ------

    Bonjour à tous ,

    Je suis débutant en informatique , je souhaiterais savoir la différence entre un fpga et un microcontrôleur ,
    c'est qui le plus puissant : un microcontrôleur ou un processeur ?

    merci à tous

    -----

  2. #2
    invitee05a3fcc

    Re : FPGA vs Microcontroleur

    Bonjour newbie_be et bienvenue sur FUTURA
    Citation Envoyé par newbie_be Voir le message
    je souhaiterais savoir la différence entre un fpga et un microcontrôleur ,
    - Un FPGA, c'est de la logique câblée (les interconnexions entre les blocs logiques étant programmables)
    - Un µC ou un µP, c'est piloté par un programme qui exécute des instructions
    c'est qui le plus puissant : un microcontrôleur ou un processeur ?
    C'est quoi pour toi un microcontrôleur ? exemple ?
    C'est quoi pour toi un processeur ? exemple ?

  3. #3
    invite523c426f

    Re : FPGA vs Microcontroleur

    DAUDET78 ,
    Pour moi un microcontrôleur et un microprocesseur c'est pareil , c'est un bloc UAL , mémoire ram + mémoire rom pour enregistrer le programme qui gère le circuit , des pins pour intéragir avec d'autres composants :capteurs ou autre blocs .
    un fpga c'est une carte qui peut être reconfigurée , elle peut avoir son propre microprocesseur dans le même bloc ou pas .
    donc pour charger un programme de reconfiguration de la fpga , il faut un bloc mémoire non volatile par exemple (rom...) propre à la fpga , ensuite pour charger le programme dans processeur lié à la fpga il lui faut aussi sa propre mémoire non volatile (rom ou eeprom) .
    --> bcp de bloc mémoire !?
    S'il vous plait , corrigez moi si possible .
    Merci

  4. #4
    jiherve

    Re : FPGA vs Microcontroleur

    Bonjour,
    Un FPGA c'est en effet de la logique programmable , et on peut y implementer un cœur de traitement qui sera au choix nommé µprocesseur ou µcontroleur ou processeur suivant des critères éminemment variables suivant les personnes.
    La configuration du FPGA est soit définitive (ACTEL par exemple) soit obtenue par une mémoire de type flash prom interne au FPGA, soit par une mémoire du même type externe au FPGA soit par un téléchargement distant.
    Les ressources propres au µC pourront pour une partie de la RAM au moins être fournies par le FPGA mais le programme sera stocké dans une mémoire externe.
    Donc en résumé :
    la configuration du FPGA ne consomme aucun des blocs mémoires offerts à l'utilisateur
    ces blocs mémoire ne seront utilisés par le µC pour une partie de sa mémoire vive(en général au moins le(s) cache(s)) mais pas pour le programme (sauf réalisation exotique).
    nota: il existe aussi des FPGA contenant un processeur câblé intégré
    JR
    l'électronique c'est pas du vaudou!

  5. A voir en vidéo sur Futura
  6. #5
    invitee05a3fcc

    Re : FPGA vs Microcontroleur

    Citation Envoyé par newbie_be Voir le message
    Pour moi un microcontrôleur et un microprocesseur c'est pareil
    Non
    , c'est un bloc UAL
    Oui, plus des tas de choses, en vrac et non exhaustif :
    • Gestion adresse mémoire programme
    • Gestion adresse mémoire vive
    • Pile d'adresse
    • mémoire microcode
    • décodeur microcode
    • registres
    • Etc

    Ca c'est commun au µC et au µP
    , mémoire ram + mémoire rom pour enregistrer le programme qui gère le circuit , des pins pour intéragir avec d'autres composants :capteurs ou autre blocs .
    Ca, c'est externe au µP et interne au µC . Le µC a , en plus, beaucoup de chose en interne :
    • Timer
    • Memoire EEPROM
    • USART
    • Gestion bus I²C , SPI etc
    • Convertisseur ADC
    • PWM
    • Etc

    un fpga c'est une carte qui peut être reconfigurée ,
    Oui, c'est ce que j'ai déjà dit
    elle peut avoir son propre microprocesseur dans le même bloc ou pas .
    là, tu vas plus loin que l'usage classique du circuit câblé configurable. Comme c'est un circuit câblé, on peut le câbler pour en faire un µC (avec un coeur qui se trouve en bibliothèque). On se réalise donc un µC "customisé" avec les gadgets que l'on veut
    donc pour charger un programme de reconfiguration de la fpga , il faut un bloc mémoire non volatile par exemple (rom...) propre à la fpga
    Ou une EEPROM (et anciennement une mémoire morte externe qui rechargeait la RAM interne de configuration )
    ensuite pour charger le programme dans processeur lié à la fpga il lui faut aussi sa propre mémoire non volatile
    Tu es dans un cas spécifique . Mais ces deux mémoires se chargent en même temps que la configuration du coeur et des périphériques
    PS : J'ai fait pas mal de simplifications et d'oublies .... mais je ne pense pas avoir raconté de bêtises

  7. #6
    invite523c426f

    Re : FPGA vs Microcontroleur

    Merci messieurs ,
    peut-on par ailleurs combiner un fpga et un microcontroleur sur une même carte ? ça me semble logique

  8. #7
    jiherve

    Re : FPGA vs Microcontroleur

    Bonjour
    oui pourquoi pas, c'est meme souvent le cas.
    JR
    l'électronique c'est pas du vaudou!

  9. #8
    invite523c426f

    Re : FPGA vs Microcontroleur

    Vous me conseillez quoi comme exercices pour bien assimiler le fpga + programmation pour embarqué en C ?

    Merci cher messieurs

  10. #9
    jiherve

    Re : FPGA vs Microcontroleur

    Re
    vaste sujet vaste programme !
    D'où parts tu ?
    JR
    l'électronique c'est pas du vaudou!

  11. #10
    luc_1049

    Re : FPGA vs Microcontroleur

    Bonjour

    Citation Envoyé par newbie_be Voir le message
    Vous me conseillez quoi comme exercices pour bien assimiler le fpga + programmation pour embarqué en C ?
    Merci cher messieurs
    Dans l'industrie les métiers sont généralement bien séparés sauf peut être dans des entreprises où ils veulent qqn qui sachent tout faire, le mouton à 5 pattes.

    Il vous faut réfléchir si vous souhaitez évoluer vers un métier plutôt hardware ou software embarqué, ou plutôt sur une fonction du style savoir faire faire.
    Votre niveau d'étude l'école en l'ocurence dessine d'hors et déja votre route professionnelle et vous n'aurez peut être pas besoin de vous interessez à ces considérations. Ouf !!

    Il est bon dans tous les cas de connaître le C au minimum.
    Pour le hardware il vous faudra savoir choisir, concevoir et coder un fpga, voire utiliser les bibliothèques qui incluent un microprocesseur. Savoir éventuellement coder le bas niveau sauf si vous êtes dans une structure ou les métiers sont séparés. Pour coder des fpga l'usage intensif du vhdl, de moyen de simulation sera au programme. Si vous vous vous spécialisez dans le hardware programmés style fpga vous verrez de plus loin le hardware conception de cartes numériques, analogiques ou autres.

    Pour le software il vous faudra savoir utiliser un moniteur temps réel dans le logiciel. En tant qu'informaticien embarqué vous verrez le hardware de loin. En codage de bas niveau (là où se dépose la poussière ce qui salit...) vous aurez au plus à développez des routines qui permettent par exemple de charger la configuration du fpga à partir des mots de configuration qui sont mis dans la mémoire flash qui sert au microprocesseur. L'aspect hardware sera nécessaire quand vous devrez coder les accès bas niveaux à des composants.

    cdlt

  12. #11
    stefjm

    Re : FPGA vs Microcontroleur

    Citation Envoyé par newbie_be Voir le message
    Vous me conseillez quoi comme exercices pour bien assimiler le fpga + programmation pour embarqué en C ?

    Merci cher messieurs
    Les deux ensemble, c'est le codesign sur soc (System On Chip)
    http://2008.rmll.info/IMG/pdf/patrice_kadionik.pdf

    http://perso-etis.ensea.fr/miramond/...2_HWDesign.pdf

    Vaste programme.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  13. #12
    invite523c426f

    Re : FPGA vs Microcontroleur

    J'ai pas compris ce ue vous vouliez dire par cela :
    vous pouvez me donner un exemple ?
    Citation Envoyé par luc_1049 Voir le message
    Bonjour

    Pour le software il vous faudra savoir utiliser un moniteur temps réel dans le logiciel.

    cdlt

  14. #13
    jiherve

    Re : FPGA vs Microcontroleur

    Bonsoir,
    Dans l'industrie les métiers sont généralement bien séparés sauf peut être dans des entreprises où ils veulent qqn qui sachent tout faire, le mouton à 5 pattes.
    çà c'est fini je suis en retraite!
    JR
    l'électronique c'est pas du vaudou!

  15. #14
    invitecea2057a

    Cool Re : FPGA vs Microcontroleur

    En fait, tu peux souvent mettre un microprocesseur ou un microcontroleur dans un FPGA.
    Par exemple chez Altera tu as le processeur Nios II.
    Il y a des petits processeurs et des très gros.
    Et c'est pareil avec les FPGA, il y en a des petits et des gros.
    Coté micro-contrôleurs il y en a aussi des petits et des gros.
    Dans un FPGA tu peux mettre plusieurs processeurs aussi.

    Par contre faire une carte avec un FPGA et un µC et un FPGA c'est plutôt difficile.
    Des cartes cheap existent : http://www.aliexpress.com/cheap/cheap-fpga-arm.html
    Mais je ne sais pas si c'est une bonne carte.

    Ensuite, même si tu as la carte, il faut mettre des trucs autours.
    Je les achète ici : http://www.waveshare.com/

    A+

    Hervé

  16. #15
    jiherve

    Re : FPGA vs Microcontroleur

    Bonsoir,
    Par contre faire une carte avec un FPGA et un µC et un FPGA c'est plutôt difficile.
    pour un amateur c'est vrai pour un pro c'est un minimum!
    JR
    l'électronique c'est pas du vaudou!

  17. #16
    stefjm

    Re : FPGA vs Microcontroleur

    Pourquoi faire avec deux composants si on peut passer avec un seul?
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  18. #17
    albanxiii
    Modérateur

    Re : FPGA vs Microcontroleur

    Pour des raisons de coût, de consommation, et surement des tonnes d'autres encore.
    Not only is it not right, it's not even wrong!

  19. #18
    luc_1049

    Re : FPGA vs Microcontroleur

    bonjour

    Un moniteur temps réel type psos c'est pour des gros logiciels embarqués afin de gérer du logciel à temps contraint, éviter les bug. c'est le cas dans l'avionique par exemple. Vous y trouverez des notions de drapeau de tâche, de boîte aux lettres de liste d'attente de debugger temps réel.
    C'est une couche logiciel qui est rajoutée sous forme de librairie avec le logiciel bas niveau, le bas niveau (hors moniteur) étant chargé d'initialiser les différents registres des composants. Ensuite l'applicatif en logiciel C par exemple contrairement au bas niveau qui peut être en assembleur s'interface avec des fonctions sans avoir connaissances des détails des nombreux registres à programmer.

    L'arduino est en quelquesorte fourni avec un logiciel applicatif, le bas niveau personne ne l'utilise sauf à tout court-circuité coté logiciel pour être rapide. Mais en aucun cas on ne parle de moniteur temps réel pour l'arduino en tout cas le nano par exemple.

    Dans un gsm il doit je pense par exemple y avoir une tâche temps réel qui est associée à la réception de sms, une autre pour le bluetooth, ensuite le moniteur gère la priorité des tâches évitant tout bug et plantage. Il ne faut pas qu'une tâche mis en sommeil parce qu'elle attend une entrée dans sa boîte aux lettres reste prioritaire et empêche les autres tâches de se réveiller et de devenir active.
    Le moniteur temps réel permet de partager le temps, mais ce n'est pas indispensable pour faire un automate logiciel.
    Cf google "le temps réel et l'industrie"
    cdlt

  20. #19
    inviteeb160de1

    Re : FPGA vs Microcontroleur

    Citation Envoyé par luc_1049 Voir le message
    Dans un gsm [..] le moniteur gère la priorité des tâches évitant tout bug et plantage
    Pas dans mon smartphone manifestement
    Je sors...

  21. #20
    invite523c426f

    Re : FPGA vs Microcontroleur

    En revenant à la discussion initiale , comme je suis un new_bie , je me demande à quoi ça sert le fait d'utiliser une fréquence particulière pour chaque composant électronique : je m'explique ,par exemple , une horloge externe qui livre une fréquence de 1MHz , un timer ui fonctionne avec 200 Khz , un diviseur de fréquence pour un composant x ... à quoi ça sert physiquement toutes ces fréquences ?
    Supposant qu'on ait alimenté une carte , quel est la relation entre un coup d'horloge et la fréquence de l'horloge ? ensuite la relation entre un coup d'horloge et la fréquence d'un bloque x1 , x2 ?
    Pourquoi on voit des diagrammes temporelles sur des front montant lors de la création de fpga ?
    Quel est la référence à prendre pour bien comprendre les valeurs attendues ?
    J'arrive pas à trouver la réponse à mes question tout seul .
    merci

  22. #21
    luc_1049

    Re : FPGA vs Microcontroleur

    Bonjour
    Citation Envoyé par newbie_be Voir le message
    , je me demande à quoi ça sert le fait d'utiliser une fréquence particulière pour chaque composant électronique : je m'explique ,par exemple , une horloge externe qui livre une fréquence de 1MHz , un timer ui fonctionne avec 200 Khz , un diviseur de fréquence pour un composant x ... à quoi ça sert physiquement toutes ces fréquences ?
    Supposant qu'on ait alimenté une carte , quel est la relation entre un coup d'horloge et la fréquence de l'horloge ? ensuite la relation entre un coup d'horloge et la fréquence d'un bloque x1 , x2 ?
    Pourquoi on voit des diagrammes temporelles sur des front montant lors de la création de fpga ?
    Quel est la référence à prendre pour bien comprendre les valeurs attendues ?
    Utiliser une fréquence particulière pour chaque composant cela dépend tout simplement de la doc du composant et ses caractéristiques , sa fréquence optimale d'utilisation. Fournir une fréquence trop grande , même s'il peut la diviser cela peut générer de la consommation excessive.

    Pour la fourniture des horloges, plus y en a sur une carte plus il y a le risque de rayonnement avec des mélanges des raies et un spectre compliqué qui va rayonner de l'information parasite. Par exemple pour concevoir une carte traitant des informations sensibles on se doit :
    -de gérer le hardware comme du logiciel avec des gros documents de spécifications. On y décrit notamment quelles sont les horloges qui sont présentes, si elles sont bien séparées,
    -comment sont chargés les composants programmables par le logiciel et comment sont ils modifiables ou pas pour la sécurité ou pour la maintenance chez le client,
    -des parties électroniques peuvent traiter des informations banales d'une moindre importance elles seront cloisonnées dans une zone spécifique de la carte avec sa propre horloge, d'autres zones bien délimitées auront une horloge ou des horloges et seront dans une autre zone. Si les zones doivent communiquer les signaux seront bien filtrés pour ne pas contenir ou limiter à un seuil très bas le niveau d'informations sensibles que l'on pourrait retrouver dans leur spectre.
    -en fin de conception aidés des documents détaillés des experts qui sont intervenus au début de conception (validation du synoptique , des horloges, du découpage de zone) reviennent (enfin leur exécutants !) pour valider le système et vérifier que la partie d'information sensible que l'on peut retrouver comprises dans les signaux qui ne sont sensibles pas ne dépasse pas un seuil. C'est en quelquesorte de la cem mais ce qui importe c'est surtout de ne pas rayonner des informations sensibles décodables par recoupement d'information plus que de rayonner ! Bien entendu il faut aussi ne pas être susceptible au rayonnement et faire un reset à la moindre pertubation...

    Concernant le front montant beaucoup de logique fonctionne comme cela en ce qui concerne la génération. Par contre pour acquérir des données générées sur un front montant il faut être sûr de les échantillonner en respectant les temps de "set_up" et de "hold". On peut échantillonner avec un front descendant et regénérer sur un front montant, voire en détail la métastabilité dans les fpga . Il faut assurer le respect de ces temps même si la fréquence des horloges augmentent un peu voire dérive en entrée de carte dans certaines conceptions.

    Si les signaux en entrée sont asynchrones liés à aucune horloge il faut alors les échantillonner en étant sûr de les avoir stable, un système de double bascules en entrée pour les échantillonner, voire également la métastabilité, doit être prévu. Je décris rapidement cela en logique, mais cela se traduit ensuite par du VHDL par exemple.

    Dans les fpga au moins initialement il y avait un nombre limité de "global clock" qu'il faut voire comme des autoroutes prioritaires garantissant le passage sans retard exagéré des signaux qui y transitent vers les bascules élémentaires des block logiques CLb de mémoire ou les bascules présentes sur chaque entrée/ sortie d'un fpga. Mais même s'ils sont plus nombreux il vaut mieux limiter le nombre d'horloge pour les raisons évoqués, après cela dépend aussi des circuits. Dans certains domaines que je ne peux connaître il en faut peut être de nombreuses ou différents blocs de logique dans le fpga qui tournent avec des multiples ou des sous multiples d'une horloge initiale distribués en "global clock" dans le fpga.

    cdlt

  23. #22
    invite523c426f

    Re : FPGA vs Microcontroleur

    merci pour ton poste , j'admet que je ne suis pas en mesure encore de tout comprendre .
    faisons simple : Une horloge travaille avec une fréquence particulière , génère des impulsion , donc une impulsion en terme de fréquence égale à quoi (prenons par exemple 1MHz ?
    Un front montant physiquement c'est quoi ? et pourquoi spécialement montant ?
    le diagramme correspondant aux impulsions , celui ou on voit des entrées (in , clk , registresx...) correspond à quoi en vhdl ?
    une bascule , a t-elle besoin de la même fréquence que celle de l'horloge pour travailler ? supposons qu'elle ait besoin d'une fréquence inférieure , ça peut causer quoi le fait qu'elle ait en entrée une grande fréquence ? est ce similaire que si on applique une tension N sur un composant qui support une tension N-10 et du coup risque de le griller ?

    Merci

  24. #23
    luc_1049

    Re : FPGA vs Microcontroleur

    Bonjour

    Un front montant : C'est par exemple le passage de 0 à 3V3 pour de la logique simple qui à 2 états logiques 0 ou 1, l'inverse pour un front descendant.
    J'ai parlé de front car la logique séquentielle par exemple une bascule D fonctionne sur des changements d'états à chaque front de l'horloge. Généralement c'est le front à moins d'intercaler un inverseur sur l'entrée d'horloge.
    Physiquement un front montant c'est la transition de l'état logique 0 à 1 dans mon exemple, c'est souvent accompagné de rebonds , mais c'est surtout caractérisé par le temps de montée entre 10 et 90 % de la valeur. Regardez des databook de logique vous en verrez.

    Une bascule en interne d'une conception peut très bien travailler selon les besoins à partir d'une division d'une horloge initiale.

    Si on diminue la fréquence d'entrée de l'horloge d'une bascule D alors qu'on maintient un rythme très rapide sur son entrée de donnée on risque de perdre des états puisque on échantillonne plus les données assez rapidement !

    Si vous augmentez la fréquence vous augmenterez la puissance dynamique de votre circuit, elle est proportionnelle à la fréquence du signal "1/2 cV*V*F".
    Revoir la notion de temps de maintient et d'établissement d'une donnée par rapport au front de l'horloge.

    http://wiki.jelectronique.com/doku.p...illes_logiques
    cdlt

  25. #24
    invite523c426f

    Re : FPGA vs Microcontroleur

    merci à vous ,
    vous savez ou je peux travailler sur un projet en langage c , genre contribuer en local sur ma machine , je voudrais me perfectionner en systèmes embarqué .
    Si vous pourriez m'envoyer un lien ou je peux m'inscrire .
    merci

Discussions similaires

  1. Données venant / allant FPGA et PC (eng: FPGA from / to PC Data)
    Par invite36b20ad7 dans le forum Électronique
    Réponses: 4
    Dernier message: 14/05/2014, 21h04
  2. Choix d'un microcontroleur / carte à microcontroleur
    Par bisou10 dans le forum Électronique
    Réponses: 29
    Dernier message: 25/10/2013, 15h33
  3. Différences entre microcontroleur et FPGA
    Par invitef1d0ad93 dans le forum Électronique
    Réponses: 6
    Dernier message: 10/08/2008, 17h13
  4. FPGA OU microcontrôleur
    Par invite3d298464 dans le forum Électronique
    Réponses: 5
    Dernier message: 23/07/2008, 10h42
  5. Fpga
    Par inviteefcfb65e dans le forum Électronique
    Réponses: 2
    Dernier message: 22/05/2008, 15h02
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...