FPGA les moins chers? [fermé]


44

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.)


(prise sans vergogne), la radio GNU (USRP2) utilise un AEMB fourni avec de nombreux blocs DSP. Il fait très bien la radio définie par logiciel - aeste.my/node/29
sybreon

@sybreon Bizarrement, j'utilise USRP2 dans mon projet de conception senior - Nice
onaclov2000 Le


Réponses:


23

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


23

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.


1
Il existe des implémentations open source de Microblaze (telles que aeMB - opencores.org/project,aemb ) qui devraient porter sur d’autres FPGA (non-Xilinx).
mrkj

(fiche éhontée) L'AEMB est également connu pour fonctionner sous uC / OS-II dans les FPGA Altera - aeste.my/node/7
sybreon

11

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.


4
Je comprends que je ne trouverai pas de FPGA qui surpasse les coûts et les performances, mais il semble exister un FPGA capable de surpasser le coût des micro + FPGA, tout en offrant des performances similaires, le tout dans une puce. Cela a-t-il du sens?
Pingswept

10

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.


1
Il existe également des FPGA à base de flash (ACTEL) et certains à base de SRAM avec flash intégré (Xilinx Spartan3AN, LatticeXP).
sybreon

Vous pouvez également simplement acheter un processeur plus rapide et laisser tomber le deuxième canal. Pas une bonne comparaison.
user253751

@immibis Ce que vous dites est en réalité le même que le point d'ajs410: un FPGA n'a pas besoin d'être plus rapide , il doit être plus grand . Si vous voulez utiliser des processeurs, vous pouvez en apporter un second, à condition que la nature du traitement soit parallélisable.
Johan Boulé

7

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.


3
Très intéressant.
Pingswept

2
Je pense que vous vous trompez sur le fait que les cœurs ARM n'apparaissent que sur les périphériques Virtex. Le communiqué de presse n'en dit pas autant, et je ne pense pas que vous puissiez en déduire que les noyaux PPC n'apparaissent que dans les composants V2P, V4FX et V5FXT. Le site Web de Xilinx mentionne les périphériques optimisés pour "performances, coût et puissance" (voir xilinx.com/technology/roadmap/processing-platform.htm ); vous remarquerez que le coût n'est jamais un vecteur d'optimisation pour la série Virtex.
Mrkj

1
En outre, ARM n’est jamais mentionné dans l’annonce des FPGA de la série 7 ( xilinx.com/technology/roadmap/7-series-fpgas.htm ), et il n’existe aucune pièce V6 ou V7 avec un PPC. Mon point de vue, c’est qu’ils s’éloignent des processeurs intégrés dans les composants hautes performances.
Mrkj

3
Je suppose que le résultat de cet accord est le Zynq ?
Janus Troelsen

4

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é.


2
Extrêmement bon point. Voir également cet article [ element14.com/community/thread/2434] d'un employé de Farnell suggérant que les puces Altera Cyclone IV sont disponibles pour aussi peu que 3 $, alors que le prix le plus bas cité par Farnell sur leur page Web est plus proche de 20 $. Il est clair que la plupart des gens n'achèteront pas plus de 250 000 achats, mais ces distributeurs le sont probablement, et ils sont peut-être prêts à échanger pour un peu moins de 566% de marge bénéficiaire ...
Jules

3

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.


3
À partir d’un rapide coup d’œil en ligne, un noyau de microblaze utiliserait environ la moitié des cellules logiques d’un XC3S400A. En outre, le Cortex A8 fonctionnerait à 600 MHz - 800 MHz, alors que le microblaze sur le FPGA fonctionnerait à 200 MHz - 300 MHz.
davr

Donc, il serait environ 3 fois plus lent (en supposant que votre système est lié au processeur), mais à un coût comparable, tout en laissant les portes excédentaires pour autre chose.
Pingswept

1
Il s’agit simplement de comparer la fréquence, le moyen le plus élémentaire de comparer la vitesse de traitement réelle. Je n'ai pas suffisamment de connaissances à ce sujet, mais il est possible, par exemple, qu'à la même vitesse d'horloge, un bras soit deux fois plus rapide qu'un
microblaze

1
Ouais, assez bien. Une première approximation, je suppose.
Pingswept

3

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.



0

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


0

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.