Jai lu ce message et il ne répond pas à ma question dans son intégralité:

Je pense à un microcontrôleur comme à tout ce qui a de la mémoire, des registres et peut traiter un ensemble dinstructions telles que LOAD, STORE et ADD. Il contient des portes logiques et autres pour remplir son rôle, mais sa tâche principale est dêtre un processeur universel de bits. Je considère un Microntroller comme un système de conceptions ASIC interconnectées pour créer la capacité de stocker et de traiter des instructions.

Je pense à un dispositif ASIC comme un circuit qui a été spécifiquement construit en utilisant des composants logiques et électriques pour fonctionner une seule tâche, sans autre tâche en tête ni matériel supplémentaire inclus.

Je pense à un périphérique FPGA comme un périphérique ASIC (un périphérique de bas niveau) + un tas de trucs inutilisés, utilisés pour implémenter une table de vérité particulière.

Malgré son nom, un FGPA se sent très « spécifique à lapplication », car il doit être recâblé pour effectuer une tâche nouvelle et différente. Cela conduit à une confusion avec ASIC. Cependant, dans le cas du recâblage dun FPGA, tout le matériel nécessaire doit être présent. De plus, les FPGA sont censés être programmables, mais nest-ce pas à quoi sert un microcontrôleur?

Le message ci-dessus auquel jai fait référence mentionne également HDL, avec lequel je suis familier. « T HDL peut-il être utilisé à la fois pour ASIC et FPGA, et par proxy pour concevoir un microcontrôleur entier?

Commentaires

  • It ‘ La question nest pas très claire. Avez-vous lu des questions connexes sur FPGA vs ASIC? HDL est en fait utilisé pour concevoir des ASIC et des implémentations FPGA, et vous pouvez concevoir un microcontrôleur en HDL.
  • Altera propose un livre électronique gratuit appelé FPGA pour les nuls , qui explique bien la différence entre les FPGA, les ASIC et les microcontrôleurs.
  • @kkrambo Vous appelez ‘ moi un mannequin? 🙂 Désolé, ‘ t résister … Je va vérifier.
  • Jai ajouté le mot ‘ similitudes ‘ au titre de la question, car il semble que il y a des détails de jargon technique infimes qui peuvent confondre la relation entre les trois appareils différents: par exemple, un appareil peut contenir lun des deux autres appareils, ou il peut contenir de nombreux composants similaires mais différer sur certains aspects importants. Cela a déjà été abordé par certaines des réponses existantes. Merci.

Réponse

ASIC vs FPGA

Un Gate Array programmable sur site peut être considéré comme létape de prototypage de circuits intégrés spécifiques à une application: les ASIC sont très coûteux à fabriquer, et une fois quils y sont fabriqués Il ny a pas de retour en arrière (car le coût fixe le plus cher est les masques [sorte de « pochoir » de fabrication] et leur développement). Les FPGA sont reprogrammables plusieurs fois, cependant en raison du fait quun tableau générique de portes est connecté pour atteindre votre objectif , il nest pas optimisé comme les ASIC. De plus, les FPGA sont des périphériques dynamiques nativement en ce sens que si vous léteignez, vous perdez non seulement létat actuel mais aussi votre configuration. Des cartes existent maintenant mais qui ajoutent une puce FLASH et / ou un microcontrôleur à chargez la configuration au démarrage, donc cela a tendance à être un argument moins important. Les ASIC et les FPGA peuvent être configurés avec des langages de description du matériel, et parfois les FPGA sont utilisé pour le produit final. Mais généralement, les ASIC interviennent lorsque la conception est corrigée.

FPGA vs microcontrôleur

Quant à la différence entre un microcontrôleur et un FPGA, vous pouvez considérer un microcontrôleur comme un ASIC qui traite le code en FLASH / ROM de manière séquentielle. Vous pouvez créer des microcontrôleurs avec des FPGA même si ce nest pas optimisé, mais pas le contraire. Les FPGA sont câblés comme des circuits électroniques afin que vous puissiez avoir des circuits vraiment parallèles, pas comme dans un microcontrôleur où le processeur saute dun morceau de code à un autre Cependant, comme les FPGA ont été conçus pour des tâches parallèles, il n’est pas aussi facile d’écrire du code séquentiel que dans un microcontrôleur.

Par exemple, typiquement si vous écrivez en pseudocode « let C be A XOR B », sur un FPGA qui sera traduit en « build a XOR gate avec les briques lego contenues (tables de recherche et verrous), et connectez A / B en tant quentrées et C en tant que sortie « qui sera mis à jour à chaque cycle dhorloge, que C soit utilisé ou non. Alors que sur un microcontrôleur qui sera traduit en « instruction de lecture – cest » un XOR de variables à ladresse A et à ladresse B de la RAM, résultat à stocker à ladresse C. Charger les registres des unités arithmétiques logiques, puis demander à lALU de faire un XOR, puis copiez le registre de sortie à ladresse C de la RAM « . Du côté de lutilisateur cependant, les deux instructions étaient 1 ligne de code.Si nous devions faire cela, ALORS autre chose, en HDL, nous devrons définir ce que lon appelle un Processus pour faire artificiellement des séquences – séparément du code parallèle. Alors que dans un microcontrôleur, il ny a rien à faire. Dun autre côté, pour obtenir le « parallélisme » (accordage et déconnexion vraiment) dun microcontrôleur, vous auriez besoin de jongler avec des threads, ce qui nest pas anodin. Différentes méthodes de travail, différentes fins.

En résumé:

ASIC vs FPGA: fixe, plus cher pour un petit nombre de produits (moins cher pour de gros volumes), mais plus optimisé.

ASIC vs microcontrôleur: certainement comme comparer un outil avec un marteau.

FPGA vs microcontrôleur: non optimisé pour le traitement de code séquentiel, mais peut également effectuer des tâches vraiment parallèles très facilement. Généralement les FPGA sont programmés en HDL, les microcontrôleurs en C / Assembly

Chaque fois que la vitesse des tâches parallèles est un problème, prenez un FPGA, faites évoluer votre conception et enfin faites-en un ASIC si elle « est moins cher pour vous à long terme (production de masse). Si les tâches séquentielles sont acceptables, prenez un microcontrôleur. Je suppose que vous pourriez faire un IC encore plus spécifique à une application à partir de celui-ci si cela vous coûte aussi moins cher à long terme . La meilleure solution sera probablement un peu des deux.

Quelle recherche rapide après avoir écrit ceci ma donné: entrer limage description ici entrez la description de limage ici

FPGA vs Microcontrollers, sur ce même forum

Réponse

Les FPGA peuvent être « recâblés » par reprogrammation. Un FPGA charge sa configuration dans ses cellules logiques configurables lorsquil est sous tension . Cela signifie quil peut être reprogrammé sans modification du matériel.

Les ASIC ne peuvent être recâblés quen modifiant les masques photolitographiques de la fonderie de silicium.

Un microcontrôleur est un type dASIC, qui exécute un programme et peut faire des choses génériques en conséquence. Cependant, si vous souhaitez modifier le jeu dinstructions, ou faire quelque chose de similaire, vous devez modifier la disposition réelle du circuit intégré au silicium.


La différence entre un FPGA et un MCU est plus floue. Fondamentalement, ce quest un FPGA, au niveau matériel, cest beaucoup de petites cellules SRAM, toutes connectées à une matrice dense de multiplexeurs. Fondamentalement, un FPGA est un tas de logique discrète qui peut être électroniquement «recâblé» ** simplement en reprogrammant les multiplexeurs et les cellules SRAM.

En tant que tel, vous pouvez implémenter en fait un MCU dans un FPGA, car un MCU nest quune certaine configuration de cellules logiques. En fait, les FPGA sont très couramment utilisés dans le processus de conception des MCU.

Un microcontrôleur est une implémentation dune certaine configuration logique. La raison pour laquelle nous les avons est quen implémentant un MCU directement dans le silicium, la quantité totale despace de puce de silicium nécessaire peut être considérablement optimisée, et certaines optimisations de performances peuvent être apportées que la «générique» requise dun FPGA interdit. Cela permet de réduire considérablement les coûts de production dun MCU et, par conséquent, le MCU commun est beaucoup moins cher quun FPGA capable de contenir la logique équivalente.


FPGA sont utiles dans certaines applications, car elles peuvent implémenter des structures logiques dune manière que les MCU ne peuvent pas. Par exemple, si vous devez ajouter X1 + Y1, X2 + Y2, X3 + Y3 et X4 + Y4, les Le MCU devra effectuer chaque opération en séquence *. Un FPGA peut simplement avoir 4 ALU séparées en même temps , donc il peut faire la même opération dans un quart du temps (en supposant que les deux appareils sont cadencés au même rythme).

Cest là que les FPGA ( ou ASIC conçus pour la même tâche) peuvent vraiment briller, dans le fait que vous pouvez faire beaucoup, beaucoup de choses simultanément , ce qu’un seul processus ne peut faire que séquentiellement.

* (note: jignore certaines choses comme SIMD ici)

Commentaires

  • Je ne ‘ t pense que la distinction FPGA / ASIC est floue; dans un FPGA, les circuits dont le  » câblage  » peuvent être modifiés fonctionnent simultanément et indépendamment. Un MCU a une grande quantité de circuits dont le câblage ne peut pas être changé, dont le comportement est contrôlé par des informations auxquelles on accède au coup par coup à partir dune matrice de mémoire programmable. À tout moment dans le temps, un CPU ne pourra généralement effectuer quune seule opération parmi une liste de quelques milliers à quelques milliards de choix, mais le MCU sera conçu de manière à ce que la mise en séquence de ces opérations permette de faire travail utile.
  • Merci. TRÈS proche de devenir la réponse … mais 10 mois plus tard. +1 pour faire des amendes.

Réponse

Cest une bonne question,

Fondamentalement, un micro-contrôleur et un ASIC a un matériel (souvent appelé silicium) qui est gravé dans la pierre et ne peut pas être changé. Un FPGA peut être configuré pour représenter de nombreux types de matériel (cela peut inclure des micro-contrôleurs).

Vous pouvez penser quun micro-contrôleur peut être fait pour faire beaucoup de choses différentes, mais tout cela est fait en exécutant différents programmes – techniquement des logiciels mais parfois appelé firmware – le matériel lui-même ne change pas essentiellement, il effectue les mêmes opérations mais dans un ordre différent avec des entrées différentes.

Les FPGA sont généralement utilisés pour générer les conceptions qui sont engagées dans les ASIC. la différence entre eux est que si vous vouliez mettre à jour le fonctionnement interne dun FPGA ou ajouter / supprimer des blocs fonctionnels, tout ce que vous avez à faire est de mettre à jour son firmware, cela ne peut pas être fait sur les ASIC car le travail interne les rois se sont engagés sur le silicium, il nest pas reconfigurable.

Donc, en bref, avec un microprocesseur vous utilisez le même matériel pour exécuter différents programmes, avec un FPGA vous reconfigurez le matériel pour exécuter différentes fonctions et les ASIC sont comme un micro-contrôleur en ce que le matériel ne peut pas être modifiés mais sont généralement conçus pour exécuter une seule fonction de manière extrêmement efficace.

Les ASIC et les FPGA peuvent contenir des micro-contrôleurs et sils le font, vous pouvez écrire des programmes pour eux comme vous le feriez pour un micro-contrôleur autonome, un exemple de il sagit du processeur embarqué NIOS II dAltera.

Si cela est encore déroutant, faites-moi savoir ce qui nest pas clair et je ferai de mon mieux pour clarifier ma réponse.

Gipsy

Réponse

Eh bien, aucun FPGA nest programmé par des signaux électriques sil se comporte comme un ensemble spécifique de portes, certains FPGA incluent le flash mémoire pour stocker cette configuration, certains ne le font pas et doivent être reprogrammés après chaque réinitialisation de lalimentation.

Un ASIC sort déjà de la ligne de production c Onfigured.

Les bogues FPGA peuvent être corrigés avec une mise à jour du firmware, les bogues ASIC ne peuvent pas être réparés économiquement.

Réponse

Malgré son nom, un FGPA se sent très » spécifique à une application « , car il doit être recâblé pour effectuer une tâche nouvelle et différente.

Cest le contraire de ce que signifie « spécifique à une application ». Vous pouvez utiliser un FPGA pour plus dune application en le recâblant. Vous ne pouvez pas changer un ASIC, il ne peut donc être appliqué quà une seule tâche (cette tâche peut implémenter un microcontrôleur).

Bien que, dans le cas de en recâblant un FPGA, tout le matériel nécessaire doit être présent.

Je ne sais pas ce que cela signifie. Il existe généralement une interface logicielle pour reprogrammer un FPGA. Cest un ASIC qui nécessite des millions de [unité monétaire] de matériel.

FPGA  » sont censés être programmables, mais n « est-ce pas à quoi sert un microcontrôleur?

Un microcontrôleur vous permet de programmer un logiciel séquentiel pour un matériel fixe. Tout comme un ordinateur normal, mais très petit et ressources limitées. Un FPGA vous permet de programmer nimporte quel matériel que vous voulez en utilisant un HDL.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *