Вбудований Linux на FPGA


10

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

Я планую новий проект, в якому мені потрібна FPGA, і я міг би отримати багато користі від фактичного Linux, що працює на одній платі (в основному для зв'язку TCP, а також деякого DSP).

Моє запитання, чи є рекомендована FPGA, яка має підготовлений вбудований Linux для цього? немає фантазійних драйверів (просто Ethernet, Wi-Fi може бути плюсом, ...). Я думаю, що в FPGA буде вбудований мікроконтролер (це означає, що він з'їсть багато FPGA і мені знадобиться більша FPGA).

Відповіді:


15

32-розрядний процесорний ядро ​​підручника RISC, здатний запускати no-mmu версію Linux, насправді не повинен бути таким великим - реальний потрібний вам ресурс набагато більше оперативної пам'яті (10 мегабайт), ніж доступний у будь-якій FPGA, тому ви Напевно, вам захочеться SDRAM на платі і контролер для цього в FPGA.

Це означає, що якщо ви хочете щось більше, ніж тривіальний рівень продуктивності, ви, мабуть, хочете ядро ​​з деякими оптимізаціями (конвеєрні роботи тощо), і це починає дещо збільшувати розмір. Додавання повного mmu дозволить зробити розподіл пам'яті (повторним) більш ефективним та забезпечить звичайну поведінку fork () для копіювання.

Обидва основні постачальники FPGA мають м'які процесорні ядра з доступними портами Linux - Microblaze для Xilinx, Nios II для Altera. Напевно, ви повинні прочитати їхні документи для конкретних рекомендацій платформи, оскільки це, звичайно, ціль, яка рухається з часом. Дизайн стороннього ядра може бути дещо більшим для подібної продуктивності, якщо він написаний більш портативним способом і не настільки оптимізований для даного сімейства FPGA.

Історично були доступні мікросхеми, що поєднують як жорсткий процесорний сердечник (часто powerpc), так і область, що настроюється на FPGA. Ще один варіант, на який слід звернути увагу, буде окремий процесор (ймовірно, ARM) на тій же платі, що і FPGA.

Дуже багато рішення буде залежати від того, наскільки щільно вам потрібно з'єднати процесор і FPGA. Якщо ви можете зменшити проблему до регістрів конфігурації та потоку даних, це може бути настільки ж модульним, як підвішування плати FPGA зі швидким USB-чіпом на USB-порту вбудованої плати Linux, як BeagleBoard або RasberryPi. Для більш тісної інтеграції вам може знадобитися FPGA на одній платі і сидячи на зовнішній шині процесора. Або для низьких швидкостей передачі даних тривіально розміщувати інтерфейс реєстрації SPI у FPGA, а інтерфейси UART цілком можливі, хоча і трохи складніше.

Нарешті, виникає питання, чи справді вам потрібна повноцінна операційна система, така як Linux, або якщо вбудований стек TCP з більш вбудованим стеком TCP "мікроконтролера" вирішить вашу проблему, вимагаючи менше пам'яті.


6

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

Xilinx мають git repo або є кілька специфічних розподілів Xilinx. Гнучкість FPGA може викликати біль і користь, оскільки ваша карта пам'яті та відображення IRQ або навіть те, що доступні периферійні пристрої, можуть змінюватися під час розробки проекту.

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


4

Лінія Virtex Xilinx має версії FPGA із жорсткими PowerPC. Запустити Linux на PowerPC досить просто, мої студенти зробили це для багатьох старших дизайнерських проектів. У них все ще є достатня кількість настроюваної тканини для вашої конструкції обладнання.

Рада з оцінювання Virtex2 Pro була дуже поширеною в навчальних та академічних науково-дослідних проектах. Оскільки Xilinx відмовився від підтримки цієї версії мікросхеми у своїх останніх інструментах, ви можете підібрати її досить дешево. Я вважаю, що він підтримувався до версії 9.x або близько того. Хм. Це кілька років тому, тому, можливо, я трохи ностальгічний. У будь-якому випадку я все-таки передаю ці дошки зацікавленим студентам, щоб вони могли робити з ними майже все, що вони хочуть.


1
Якщо я не дуже помиляюся, їх називають Virtex xilinx.com/onlinestore/v2pro_boards.htm
Алі

1
@Ali - Я не думаю, що ви помиляєтесь, і у вас є досить надійний посилання на ваше твердження. Будь ласка, не соромтесь запропонувати редагувати у подібних ситуаціях!
Кевін Вермер

3

SmartFusion компанії Actel інтегрує FPGA з жорстким IP-ядром ARM Cortex-M3 та вдосконаленим аналоговим двигуном в одному пристрої з мікросхемою.

uClinux працює досить добре на ядрі Cortex-M3 SmartFusion. Перегляньте цей сайт для отримання більш детальної інформації.


2

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

Інші постачальники можуть мати подібні товари. Я не знаю, чи коли Xilinx принесе підтримку Zynq до безкоштовного ISE WebPack; зараз вони стверджують, що вам потрібна ISE Embedded Edition.


Чому ви зробили цю вікі спільноти відповідей? Це, мабуть, було непотрібним.
Кевін Вермер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.