32-разрядное процессорное ядро RISC из учебника, способное работать с версией Linux без MMU, на самом деле не должно быть таким большим - реальный ресурс, который вам нужен, - это гораздо больше ОЗУ (10 мегабайт), чем доступно в любой FPGA, так что вы Возможно, понадобится SDRAM на плате и контроллер для этого в ПЛИС.
Тем не менее, если вы хотите чего-то большего, чем простой уровень производительности, вам, вероятно, нужно ядро с некоторыми оптимизациями (конвейерная обработка и т. Д.), И это начинает несколько увеличивать размер. Добавление полного MMU сделает выделение памяти (пере) более эффективным и включит обычное поведение fork () для копирования при записи.
Оба основных производителя FPGA имеют мягкие процессорные ядра с доступными портами Linux - Microblaze для Xilinx, Nios II для Altera. Вам, вероятно, следует прочитать их документы для конкретных рекомендаций по платформе, поскольку это, конечно, цель, которая движется со временем. Сторонняя конструкция ядра может быть несколько больше для аналогичной производительности, если она написана более переносимым способом и не так специально оптимизирована для данного семейства ПЛИС.
Исторически были доступны микросхемы, объединяющие как ядро жесткого процессора (часто powerpc) с областью конфигурируемой матрицы FPGA. Другой вариант - отдельный процессор (скорее всего, ARM) на той же плате, что и FPGA.
Решение будет зависеть от того, насколько сильно вам нужно соединить процессор и FPGA. Если вы можете свести проблему к регистрам конфигурации и потоку данных, это может быть модульно, как подвешивание платы FPGA с быстрым USB-чипом к хост-порту USB встроенной платы linux, такой как BeagleBoard или RasberryPi. Для более тесной интеграции вы можете использовать FPGA на той же плате, расположенной на внешней шине процессора. Или для низких скоростей передачи данных просто поместить интерфейс регистра SPI в FPGA, и интерфейсы UART полностью выполнимы, хотя и немного сложнее.
Наконец, возникает вопрос, действительно ли вам нужна полная операционная система, такая как linux, или если встроенный стек TCP "размером с микроконтроллер" решит вашу проблему, требуя меньше памяти.