Combien coûtent les FPGA? Je sais qu’ils coûtent plus cher que des microprocesseurs de capacité comparable, mais je me demande s’il existe des FPGA pouvant contenir un noyau logiciel Microblaze fonctionnant sous Linux, tout en laissant des portes disponibles pour l’implémentation de la fonctionnalité DSP (codecs de supports, par exemple) à un coût compétitif. Par exemple, un Cortex A8 (20-30 dollars en quantité ~ 100).
(Toutes mes excuses si ma terminologie est non idiomatique, c'est-à-dire fausse. Merci de commenter avec des corrections ou de la modifier directement.)
Réponses:
J'ai récemment assisté à une conférence en ligne sur les FPGA, dont le principal était "Votre prochain processeur devrait-il être un FPGA".
Le FPGA est fondamentalement logique dans toute application nécessitant des flux de travail hautement parallélisables, par exemple pour analyser des images Full HD, par exemple pour trouver des piétons.
La chose à retenir est que vous devez initialiser votre FPGA chaque fois qu'il est mis sous tension. Je pense que le Xilinx du FPGA qui arrive (qui a un cœur ARM sur puce) est une bonne option, mais probablement coûteux. Examiner les modèles Actel avec flash intégré peut également s'avérer utile.
En ce qui concerne les performances, la société BDTI a réalisé une référence dans les calculs hautement parallèles, où elle a constaté un gain de performances 40 fois supérieur en passant à un FPGA. La chose intéressante est qu'ils ont comparé les puces avec des coûts similaires (23 $ vs 28 $ je crois).
Voici les liens qui pourraient vous intéresser:
Guide de poche pour la sélection du processeur
FPGA Conference Archives (inscription gratuite, mais disponible pendant environ 6 mois après cette réponse)
Vous ne pouvez pas vraiment comparer les performances des systèmes basés sur FPGA basés sur les statistiques MIPS ou Mhz. La façon dont un FPGA est utilisé pour traiter certaines tâches est tout simplement trop différente d'un microcontrôleur. La conception de microprogrammes pour un FPGA est quelque chose que vous devez faire en utilisant VHDL, par exemple, qui s'apparente à Assembly. Un niveau de transfert de registre (RTL) d'abstraction. Certains environnements sont générés pour offrir plus d'abstraction, mais ils restent souvent spécifiques à un fournisseur. Wikipedia a un bon aperçu des langues disponibles pour programmer le code FPGA:
Wikipedia: Programmation FPGA
Wikipedia: Conception de circuits numériques
Si vous avez de l'argent à graver, vous pouvez utiliser les systèmes LabView pour créer des systèmes de mesure en temps réel basés sur FPGA, par exemple. Ces dispositifs nécessaires à cette fin sont dans une gamme de prix complètement différente (1 500 € et plus), mais ouvrent le design FPGA à un public beaucoup plus large grâce à la programmation graphique.
De plus en plus de fournisseurs proposent des cartes combinant des microcontrôleurs tels qu'une puce ARM avec un FPGA pour fournir des fonctionnalités supplémentaires spécifiques et une puissance de traitement parallèle. Vous trouverez un exemple de ces produits ici: EmbeddedARM: série FPGA
la source
Combien coûtent les FPGA? Selon Newark, les FPGA les moins chers se situent autour de 10 USD (le cyclone Altera le plus bas et le Xilinx Spartan le plus bas). Ils pourraient avoir assez de capacité pour exécuter un simple processeur 8 bits.
Comme on pouvait s'y attendre, même les CPU simples (c'est-à-dire sans MMU) 32 bits nécessitent environ 4 fois les ressources FPGA d'un processeur 8 bits. Les FPGA avec à peine assez de ressources pour exécuter un processeur aussi simple que 32 bits coûtent environ 14 dollars. Si j'ai bien compris, uCLinux a été porté sur certains de ces processeurs souples FPGA (tels que le NIOS II / e) - vous pourriez trouver uClinux adapté à vos besoins.
Linux à part entière nécessite un processeur avec une MMU (telle que NIOS II / f). Un processeur 32 bits avec une MMU nécessite environ 4 fois les ressources FPGA d'un processeur 32 bits sans une MMU - les raisons en sont moins évidentes.
Pour autant que je sache , d'après la page Xilinx Microblaze , le processeur souple Microblaze ne fonctionne que sur les FPGA Xilinx.
Linux a déjà été porté sur plusieurs autres processeurs logiciels. Si vous souhaitez exécuter Linux sur les FPGA d'une autre société, vous pouvez également consulter les ports Linux répertoriés dans la section "Cœurs de processeur souples pour FPGA" .
Plusieurs de ces processeurs logiciels, y compris une MMU, s’adapteront à un Xilinx Spartan XC3S400A (17 USD chez Avnet).
J'ai entendu dire que certains processeurs logiciels 32 bits - y compris une MMU - sont assez faciles à configurer en tant que "dual core" sur une puce FPGA à 20 $. Ceux qui suivent "Jan's Razor" pourraient tenter de compresser une douzaine de processeurs 8 bits sur la même puce.
la source
Généralement, les FPGA coûteront beaucoup plus cher que le même dispositif implémenté dans le silicium, car il y a beaucoup de temps système dû à la reconfigurabilité. Donc non, vous ne trouverez pas un FPGA à 20-30 $ qui a la même puissance qu'un processeur ARM à 20-30 $. Maintenant, vous pouvez trouver un FPGA pour 20-30 $ qui peut effectuer des tâches spécifiques beaucoup plus rapidement que ce bras de 20-30 $, mais il ne pourra pas le battre dans les tâches informatiques générales.
C'est pourquoi il est courant de voir des personnes coller un microcontrôleur et un FPGA sur la même carte. ARM et PPC sont les deux méthodes les plus couramment associées à un FPGA.
la source
Lors de l'achat d'un FPGA, n'oubliez pas de prendre en compte le coût de la mémoire Flash contenant le programme FPGA. C'est facile à oublier.
En tant que concepteur de circuits imprimés, les FPGA sont un million de fois plus faciles à tracer, car vous pouvez réorganiser le brochage à votre guise même après la fabrication de la carte. Il y a des économies de coûts potentielles associées au moins de couches nécessaires pour acheminer un FPGA.
Pour les autres qui s'opposent aux performances FPGA vs CPU, je suis d'accord dans une certaine mesure. Un processeur réel sera plus rapide à faire les choses que son processeur FPGA qui est programmé pour agir comme un processeur.
Ce n'est pas vraiment juste pour un FPGA, cependant. Les processeurs sont "limités dans le temps"; si vous voulez faire plus de travail, vous avez besoin de plus de temps ou d'un processeur plus rapide. Les FPGA sont généralement "limités dans le temps"; si vous voulez faire plus de travail, vous avez besoin d'un FPGA plus grand.
Par exemple, supposons que vous réalisiez un analyseur spectral qui gère un signal audio mono. Disons que cela prend 70% du temps CPU, et que vous êtes déjà aussi rapide que le CPU peut aller. Vous ne pouvez pas ajouter de support stéréo, car le processeur n'est pas assez rapide pour créer le second canal avant de devoir gérer à nouveau le premier canal. Mais si vous utilisez 70% du FPGA, vous pouvez simplement acheter un FPGA plus grand et laisser tomber le deuxième canal. Il n’est pas nécessaire d’aller plus vite.
Maintenant, si vous portiez le problème dans le domaine de la conception numérique, en utilisant des machines à états finis et des chemins de données au lieu d'un processeur, je parierais que le FPGA écrase le processeur, au détriment de la complexité croissante de la conception.
la source
Xilinx a récemment conclu un accord avec ARM, ce qui leur permettra de placer des cœurs ARM sur des FPGA. Malheureusement, ils ne seront disponibles que pour les appareils Virtex haut de gamme.
la source
Le tarif FPGA est étrange - une fois que vous parlez à une distri- bution franchisée, vous constatez que les prix indiqués chez Digikey, Mouser, etc. peuvent être plusieurs fois plus élevés que ce à quoi ils peuvent être obtenus. Le moins cher que je connaisse est Lattice EC1 dans QFP100 pour un peu moins de GBP3 dans le bac qtys. Ajoutez environ 0,40 GBP pour une mémoire flash SPI.
Placer les processeurs dans une structure FPGA n’est généralement pas rentable en termes de coût en silicium, mais d’autres facteurs tels que le couplage étroit entre les processeurs et les FPGA, ainsi que le nombre réduit de packages peuvent altérer le compromis optimal entre l’utilisation d’un processeur séparé.
la source
Ma meilleure hypothèse à ce jour est quelque chose comme un Xilinx XC3S400A, qui coûte environ 16 dollars, mais je ne suis pas sûr que cela puisse gérer un MicroBlaze.
la source
Cela dépend beaucoup de votre application. L’application idéale ici consisterait en une minuscule partie de contrôle (qui correspond à un microblaze / NIOS) mais en une partie de calcul pouvant tirer parti du vaste parallélisme d’un matériel personnalisé. Dans ces cas, même un FPGA de taille modeste (Spartan ou équivalent) peut facilement surpasser tout processeur polyvalent. Mais c’est dans le meilleur des cas (bien que très réalisable dans de nombreuses applications du monde réel), si votre application dispose d’une partie importante du contrôle ou ne mappe pas facilement au matériel, vous pouvez dépenser votre argent en matériel fixe (par exemple, un ARM). probablement mieux.
la source
Si vous avez besoin d'un tableau plutôt que d'une puce, voici deux options récentes de 2013:
la source
De nombreux CPLD actuels d’Altera étant des FPGA avec une mémoire de configuration intégrée, vous pouvez les obtenir pour http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp
la source
Tout d'abord, vous voulez exécuter Linux sur un noyau. Que diriez-vous de l' exécuter sur un bras comme d'autres suggestions dans ce fil. Les MCU sont doués pour exécuter des systèmes d’exploitation, mais cela gaspille un peu en ressources FPGA pour la construction d’un MCU. Les microcontrôleurs peuvent s’intégrer dans une zone de silicium beaucoup plus petite lorsqu’ils sont conçus à cet effet et peuvent ainsi être produits à moindre coût. Il y a ensuite d'autres explications sur le fait que les FPGA sont vraiment bons en traitement parallèle - une nature vraie, bien que les opérations logiques ne donnent pas l'impression de traiter exactement. Comme vous le soulignez, les FPGA puissants sont coûteux, voire gourmands en énergie. Il s’agit donc d’une plate-forme à faible coût pouvant exécuter Linux et DSP nécessitant les avantages du parallélisme pour des E / S rapides, etc. Découvrez le processeur parallèle XMOS
la source