Как дешево получают ПЛИС? Я знаю, что они дороже, чем микропроцессоры с сопоставимыми возможностями, но мне интересно, существуют ли FPGA, которые могли бы содержать мягкое ядро Microblaze под управлением Linux, при этом оставляя доступными ворота для реализации функций DSP (например, медиа-кодеков) по цене, конкурентоспособной с скажем, Cortex A8 ($ 20-30 в кол-ве ~ 100).
(Извинения, если моя терминология не является идиоматической, т.е. неверной. Пожалуйста, прокомментируйте с исправлениями или отредактируйте напрямую.)
Ответы:
Недавно я посетил онлайн-конференцию по FPGA, основной лейтмотив которой был «Если ваш следующий процессор будет FPGA».
FPGA в основном имеет смысл в любом приложении, которое требует высокопараллелизируемых рабочих потоков, например, в качестве примера использовался анализ изображений Full HD, например, для поиска пешеходов.
Вы должны помнить, что инициализируйте свою FPGA каждый раз, когда он включается, я думаю, что Xilinx для FPGA (с ядром ARM на кристалле) - хороший вариант, но, вероятно, дорогой. Просмотр Actel с встроенной флеш-памятью тоже может быть полезен.
Что касается производительности, компания BDTI провела тестирование в высокопараллельных вычислениях, где они увидели примерно 40-кратное увеличение производительности при переходе на FPGA. Интересно то, что они сравнили чипы с аналогичной стоимостью (я думаю, что 23 доллара против 28 долларов).
Вот ссылки, которые могут вас заинтересовать:
Карманный справочник по выбору процессора
Архив конференций FPGA (бесплатная регистрация, но доступна только в течение 6 месяцев после ответа)
Вы не можете реально сравнить производительность систем на основе FPGA на основе статистики MIPS или Mhz. То, как FPGA используется для обработки определенных задач, просто слишком отличается от микроконтроллера. Дизайн прошивки для FPGA - это то, что вы должны сделать, например, с помощью VHDL, что сродни Assembly. Уровень передачи регистров (RTL) абстракции. Некоторые среды создаются для обеспечения большей абстракции, но они по-прежнему часто зависят от поставщика. В Википедии есть хороший обзор языков, доступных для программирования кода FPGA:
Википедия: Программирование FPGA
Википедия: Цифровая схема
Если у вас есть деньги, чтобы сжечь, вы можете использовать системы LabView, например, для создания систем измерения в реальном времени на основе FPGA. Эти устройства, необходимые для этого, находятся в совершенно другом ценовом диапазоне (от 1500 $ и выше), но открывают дизайн FPGA гораздо более широкой аудитории с графическим программированием.
Все больше и больше поставщиков предлагают платы, которые объединяют микроконтроллеры, такие как ARM-чип, с FPGA, чтобы обеспечить определенные дополнительные функции и мощность параллельной обработки. Пример таких продуктов можно найти здесь: EmbeddedARM: серия FPGA
источник
Как дешево получают ПЛИС? По словам Ньюарка, самые дешевые ПЛИС стоят около 10 долларов (самый дешевый Altera Cyclone и самый дешевый Xilinx Spartan). У них может быть достаточно мощности для запуска простого 8-битного процессора.
Как и следовало ожидать, даже простые (т.е. без MMU) 32-разрядные процессоры требуют примерно в 4 раза больше ресурсов FPGA 8-разрядного процессора. FPGA с едва достаточными ресурсами для запуска такого простого 32-разрядного процессора стоит около 14 долларов. Насколько я понимаю, uCLinux был портирован на некоторые из этих программных процессоров FPGA (например, NIOS II / e) - вы можете найти uClinux подходящим для ваших целей.
Полноценному Linux требуется процессор с MMU (например, NIOS II / f). 32-разрядный процессор с MMU требует примерно в 4 раза больше ресурсов FPGA 32-разрядного процессора без MMU - причины этого не столь очевидны.
Насколько я могу судить по странице Xilinx Microblaze , программный процессор Microblaze работает только на FPGA Xilinx.
Linux уже был портирован на несколько других программных процессоров. Если вы хотите запустить Linux на FPGA какой-либо другой компании, возможно, вы захотите взглянуть на порты Linux, перечисленные в разделе «Soft CPU Cores for FPGA» .
Некоторые из этих программных процессоров, включая MMU, будут установлены на Xilinx Spartan XC3S400A (17 долларов от Avnet).
Я слышал, что некоторые 32-разрядные программные процессоры, в том числе MMU, довольно просто установить как «двухъядерный» на FPGA-чипе за 20 долларов. Те, кто следуют "Jan's Razor", могут вместо этого попытаться втиснуть в дюжину или около того 8-битных процессоров на одном чипе.
источник
Как правило, FPGA будет стоить намного дороже, чем то же устройство, реализованное в кремнии, потому что из-за реконфигурируемости много накладных расходов. Так что нет, вы не найдете FPGA за 20-30 долларов с такой же мощностью, как у процессора ARM, который стоит 20-30 долларов. Теперь вы можете найти FPGA за 20-30 долларов, которая может выполнять определенные задачи гораздо быстрее, чем ARM за 20-30 долларов, но она не сможет справиться с ней в обычных вычислительных задачах.
Вот почему часто можно встретить людей, использующих микроконтроллер и FPGA на одной плате. ARM и PPC наиболее часто объединяются с FPGA.
источник
При покупке ПЛИС не забывайте учитывать стоимость флэш-памяти, которая содержит программу ПЛИС. Это легко забыть.
Как разработчик печатных плат, разметка ПЛИС в миллион раз проще, потому что вы можете изменить расположение выводов так, как вам хочется, даже после изготовления платы. Потенциальная экономия средств связана с меньшим количеством слоев, необходимых для маршрутизации ПЛИС.
Для других, кто сравнивает производительность FPGA и производительность процессора, я согласен в определенной степени. Реальный процессор будет быстрее выполнять реальные задачи процессора, чем FPGA, которая запрограммирована действовать как процессор.
Это не совсем справедливо для FPGA. Процессоры "ограничены по времени"; если вы хотите выполнять больше работы, вам нужно больше времени или более быстрый процессор. FPGA обычно ограничены по площади; если вы хотите сделать больше работы, вам нужна большая FPGA.
Например, допустим, вы создали спектральный анализатор, который обрабатывает монофонический аудиосигнал. Допустим, это занимает 70% процессорного времени, и вы уже настолько быстры, насколько процессор может работать. Вы не можете добавить поддержку стерео, потому что процессор просто недостаточно быстр, чтобы выполнить второй канал, прежде чем он снова будет обрабатывать первый канал. Но если вы используете 70% ПЛИС, вы можете просто купить большую ПЛИС и добавить второй канал. Для этого не нужно идти быстрее.
Теперь, если вы перенесли проблему в область цифрового дизайна, используя конечные автоматы и каналы данных вместо ЦП, я бы поставил доллары на песо, что ПЛИС сокрушит ЦП, за счет усложнения конструкции.
источник
Xilinx недавно заключил сделку с ARM, которая позволит им размещать ядра ARM на FPGA. К сожалению, они будут доступны только для топовых устройств Virtex.
источник
Цены на ПЛИС странные - когда вы разговариваете с франчайзинговым дистрибутивом, вы обнаруживаете, что цены, указанные в Digikey, Mouser и т. Д., Могут быть в несколько раз выше, чем те, за которые их можно получить. Самым дешевым, о котором я знаю, является Lattice EC1 в QFP100, который стоит чуть меньше 3 фунтов стерлингов в лотке QTYS. Добавьте около 0,40 фунтов стерлингов для флэш-памяти SPI.
Размещение процессоров в матрице ПЛИС, как правило, не очень выгодно с точки зрения стоимости кремния, но другие факторы, такие как тесная связь между процессором и ПЛИС и уменьшенное количество пакетов, могут изменить оптимальный компромисс по сравнению с использованием отдельного процессора.
источник
Мое лучшее предположение пока что что-то вроде Xilinx XC3S400A, который стоит около 16 долларов, но я не уверен, что он может справиться с MicroBlaze.
источник
Это сильно зависит от вашего приложения. Идеальное приложение здесь состоит из крошечной управляющей части (которая подходит для микроблэйза / NIOS), но вычислительной части, которая может извлечь выгоду из огромного параллелизма пользовательского оборудования. В этих случаях даже FPGA небольшого размера (спартанский или эквивалентный) может легко превзойти любой универсальный процессор. Но это в лучшем случае (хотя это очень достижимо во многих реальных приложениях), если ваше приложение имеет значительную управляющую часть или не легко сопоставляется с оборудованием, тратить деньги на фиксированное оборудование (например, ARM) наверное лучше.
источник
Если вам нужна плата, а не просто чип, вот два последних варианта 2013 года:
источник
Поскольку многие текущие CPLD Altera являются FPGA со встроенной памятью конфигурации, вы можете получить их по адресу http://www.altera.com/products/devices/cpld/max2/mx2-index.jsp.
источник
Прежде всего вы хотите запустить Linux на ядре. Как насчет запуска его на ARM, как и некоторые другие предложения в этой теме. MCU хорошо работают с ОС, но это отчасти расходует ресурсы FPGA на создание MCU. Микроконтроллеры могут вписаться в гораздо меньшую кремниевую область, если специально разработаны для этого, и, следовательно, могут быть изготовлены дешевле Есть и другие объяснения того, что ПЛИС действительно хороши в параллельной обработке - это правда, хотя логические операции совсем не похожи на обработку. Как вы указали, мощные ПЛИС становятся дорогими и действительно потребляют много энергии. Таким образом, недорогая платформа, которая может работать под Linux и DSP, нуждается в преимуществах параллелизма для быстрого ввода-вывода и т. Д. Взгляните на параллельный процессор XMOS
источник