Un cœur de processeur RISC 32 bits manuel capable d'exécuter la version sans mmu de linux n'a pas besoin d'être aussi gros - la vraie ressource dont vous avez besoin est beaucoup plus de RAM (10 s de mégaoctets) que celle disponible dans n'importe quel FPGA, donc vous 'll voudra probablement SDRAM sur la carte et un contrôleur pour cela dans le FPGA.
Cela dit, si vous voulez autre chose qu'un niveau de performances insignifiant, vous voulez probablement un noyau avec quelques optimisations (pipelining, etc.), et cela commence à augmenter quelque peu la taille. L'ajout d'un mmu complet rendra la (ré) allocation de mémoire plus efficace et activera le comportement fork () de copie sur écriture habituel.
Les deux principaux fournisseurs de FPGA ont des cœurs de processeur souples avec des ports Linux disponibles - Microblaze pour Xilinx, Nios II pour Altera. Vous devriez probablement lire leurs documents pour des recommandations de plate-forme spécifiques car c'est bien sûr une cible qui évolue avec le temps. Une conception de base tierce peut être un peu plus grande pour des performances similaires, si elle est écrite de manière plus portable et pas aussi spécifiquement optimisée pour une famille FPGA donnée.
Historiquement, il existait des puces combinant à la fois un cœur de processeur dur (souvent powerpc) avec une région de matrice FPGA configurable. Une autre option à envisager serait un processeur séparé (probablement ARM) sur la même carte qu'un FPGA.
Une grande partie de la décision dépendra du degré de couplage nécessaire entre le processeur et le FPGA. Si vous pouvez réduire le problème aux registres de configuration et à un flux de données, cela pourrait être aussi modulaire que d'accrocher une carte FPGA avec une puce USB rapide au port hôte USB d'une carte Linux intégrée comme un BeagleBoard ou RasberryPi. Pour une intégration plus étroite, vous pouvez souhaiter que le FPGA soit sur la même carte et assis sur le bus externe du processeur. Ou pour les faibles débits de données, il est trivial de mettre une interface de registre SPI dans un FPGA, et les interfaces UART sont entièrement réalisables mais un peu plus délicates.
Enfin, il y a la question de savoir si vous avez réellement besoin d'un système d'exploitation complet tel que Linux, ou si une pile TCP intégrée plus «de taille micro-contrôleur» résoudrait votre problème tout en nécessitant moins de mémoire.