Встроенный Linux на FPGA

10

У меня очень ограниченный опыт работы с FPGA (в Altera - используются только инструменты визуального дизайна).

Я планирую новый проект, в котором мне нужна FPGA, и я мог бы извлечь большую пользу из реального Linux, работающего на той же плате (в основном для связи по протоколу TCP, а также для некоторых DSP).

У меня вопрос, есть ли рекомендуемая FPGA, для которой подготовлен поддерживаемый встроенный Linux? нет причудливых драйверов (только Ethernet, Wi-Fi может быть плюсом, ...). Я предполагаю, что в FPGA будет встроен микроконтроллер (это означает, что он поглотит много FPGA, и мне понадобится более крупная FPGA).

Али
источник

Ответы:

15

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 "размером с микроконтроллер" решит вашу проблему, требуя меньше памяти.

Крис Страттон
источник
6

Microblaze от Xilinx прекрасно работает с Linux, если предположить, что он достаточно быстр для ваших целей - он будет делать только несколько десятков MIPS на более дешевых устройствах, 100-200 MIPS в дорогих семьях.

У Xilinx есть git-репо или есть несколько специальных дистрибутивов Xilinx. Гибкость ПЛИС может быть немного болезненной, так же как и благом, так как ваша карта памяти и отображения IRQ, или даже то, что доступно, может измениться во время разработки проекта.

У Petalinux есть скрипты для управления подобными вещами и обновления битов конфигурации ядра, которые имеют значение, основываясь на вашей последней и самой лучшей конструкции системы.

Мартин Томпсон
источник
4

Линия Virtex от Xilinx имеет версии FPGA с жесткими ядрами PowerPC. Довольно легко запустить Linux на PowerPC, мои студенты сделали это для многих старших дизайнерских проектов. У них все еще есть много настраиваемой структуры для вашего аппаратного дизайна.

Virtex2 доска Pro оценки была очень распространена в образовательных и научно - исследовательских проектах. Поскольку Xilinx отказался от поддержки этой версии чипа в своих последних инструментах, вы можете выбрать один довольно дешево. Я считаю, что он был поддержан до версии 9.x или около того. Хм. Это было несколько лет назад, так что, может быть, я немного ностальгирую. Во всяком случае, я все еще раздаю эти доски заинтересованным студентам, чтобы они могли делать с ними все, что они хотят.

Билл Нэйс
источник
1
Если я не сильно ошибаюсь, их называют Virtex xilinx.com/onlinestore/v2pro_boards.htm
Али,
1
@ Али - я не думаю, что ты ошибаешься, и у тебя есть достаточно надежная ссылка для твоего утверждения. Пожалуйста, не стесняйтесь предлагать редактирование в подобных ситуациях!
Кевин Вермеер
3

Actel SmartFusion объединяет FPGA с ядром ARM Cortex-M3 с жестким IP-интерфейсом и усовершенствованным аналоговым движком в одночиповом устройстве.

uClinux достаточно хорошо работает на ядре Cortex-M3 SmartFusion. Проверьте этот сайт для получения дополнительной информации.

владимир хусаинов
источник
2

В зависимости от вашего таймфрейма, вы также можете взглянуть на новую линейку Xilinx Zynq-7000, которая объединяет процессор ARM с Artix-7 или Kintex-7. Xilinx утверждает, что они будут поставлять объемы производства во второй половине 2012 года.

Другие поставщики могут иметь аналогичные продукты. Я не знаю, принесет ли Xilinx поддержку Zynq в бесплатный веб-пакет ISE; прямо сейчас они утверждают, что вам нужен ISE Embedded Edition.

Николас
источник
Почему вы сделали этот ответ в вики сообщества? Это было, вероятно, ненужным.
Кевин Вермеер