Как выбрать ПЛИС?


17

Мне нужно сделать цифровую обработку сигнала на 8 аналоговых линиях с частотой 10 кГц. Это довольно сложная задача, и я подумал, что ПЛИС может быть правильным подходом. В настоящее время я смотрю на комплекты разработчика от Xilinx, и, поскольку у меня нет опыта работы с FPGA, мне очень трудно понять, как правильно выбрать чип. Я представлял себе использование комплекта разработчика и расширение его с помощью выводов ввода / вывода для подключения к 8-канальному АЦП и 8-канальному ЦАП.

Каковы различия между использованием Spartan, Virtex, Altera и т. Д.? Я даже не знаю, как оценить, сколько ворот мне понадобится. Есть ли какие-то правила для этого? Как мне убедиться, что тактовая частота будет достаточной (как функция количества добавлений и умножений). Сложно ли выполнять обработку с плавающей точкой на ПЛИС, стоит ли придерживаться математики с фиксированной запятой? Какой лучший способ начать?

Мне нужно решение, которое программируется с использованием Linux. Xilinx обеспечивает это, но я не уверен, каковы ограничения.


5
Было бы очень полезно узнать, какие алгоритмы вам нужно реализовать. Скорее всего, вам вообще не нужна FPGA, которая сэкономит вам много времени на разработку ;-)
geschema

Я согласен с гешемой; вам может не понадобиться ПЛИС. Возможно, DSP - лучшее решение. В любом случае, с ними легче начать, если у вас есть опыт работы только в ОК. ПЛИС очень разные!
Stevenvh

Ответы:


13

Я бы не использовал FPGA.

Вы упомянули, что у вас нет опыта работы с FPGA, и все же вы заинтересованы в том, чтобы выполнять цифровую обработку сигналов на FPGA ... числовые манипуляции + обработка сигналов достаточно сложны, чтобы получить правильные результаты на компьютере / DSP / микропроцессоре, где инструменты программирования обычны программирование. Мне кажется, что использование проекта цифровой обработки сигналов для первого проекта ПЛИС, скорее всего, вызовет разочарование.

Если вы хотите изучать FPGA, попробуйте сделать что-то более подходящее для инструментов разработки, например конечные автоматы или обработку пакетов связи.

Для проекта DSP, подобного тому, который вы описали, я бы порекомендовал DSP или Cypress PSOC или микроконвертер Analog Devices (= микроконтроллер со встроенным ADC + DAC).

(полное раскрытие, которое обеспечивает некоторый контекст для моего совета: я сам не использую FPGA. Я использовал программируемую логику = PLD в редких случаях. Мой товарищ по офису часто использует FPGA, и я видел достаточно VHDL / Verilog кода, просматривая его Он должен знать, что он хорошо подходит для битовых манипуляций. Он опытный инженер с большим опытом работы с FPGA, и в недавней беседе с ним, где он делал довольно простую математику для целых чисел с разной шириной битов, я сказал ему, что ему нужно сделать расширение знака для более короткого числа бит в ширину, чтобы вычесть его правильно, и он получил это выражение на лице, как «о, боже, я не хочу делать расширение знака ...» Сложение и вычитание Это не очень сложно в FPGA. Помимо сложения и вычитания, вам действительно нужно знать инструменты и библиотеки.И обработка с плавающей точкой ??!? !! ??!? !!?)


2
MyHDL пытается исправить некоторые из этих проблем.
Шон Дж. Гофф

Я не думаю, что ПЛИС сложнее в использовании, чем микро, у них просто другой набор предостережений.
Коннор Вольф

10

Они все в значительной степени хороши. Вам не нужно слишком много из FPGA, чтобы сделать что-то простое, поэтому любой FPGA новичка (например, линия Spartan-3) должно быть достаточно.

Просто предупреждение, хотя программирование FPGA - это LOOOOTTTTTT, отличное от C ++, C, perl ... Я бы предложил начать с verilog, потому что, вероятно, легче перейти в ... VHDL очень похож на COBOL, но Verilog больше похож на современные языки программирования.

Насчет тактовой частоты: не беспокойся об этом. Преимущество использования FPGA заключается в том, что они в основном параллельны, поэтому, хотя тактовая частота 50 МГц может показаться смехотворно медленной по современным стандартам, имейте в виду, что они могут выполнять сотни операций одновременно, тогда как «обычный» процессор на частоте 3 ГГц должен ставить в очередь до по одному. Это преимущество использования FPGA: параллелизм. Так что для чего-то специализированного, вам не нужно так сильно беспокоиться о скорости.

Но, как и другие комментарии, это совершенно другая парадигма. Кривая обучения крутая, но как только вы овладеете языком, все это имеет смысл (просто убедитесь, что вы понимаете строительные блоки).

Счастливого FPGA'а :)


2
VHDL на самом деле основан на Аде! Леон
Леон Хеллер

2
Кроме того, выбирая Verilog или VHDL, рассмотрите язык в свете того, что он является инвестицией в вашу будущую конкурентоспособность. В США Verilog более популярен в разработке микросхем / микросхем, чем VHDL, поэтому знание Verilog (и его расширенной версии System Verilog), вероятно, будет более выгодным долгосрочным вложением. Также кажется, что все крупные EDA-компании инвестируют в verilog и системный verilog, тогда как VHDL не привлекает большого внимания. (посмотрите на смешанную симуляцию VCS с различиями в производительности VHDL и VCS Verilog Simulator). (прошептала пламя) Да, вы можете выучить оба, но почему бы не расставить приоритеты
Росс Роджерс

Вы можете написать это на любом языке. Я думаю, что инструменты Xilinx могут использовать Verilog и VHDL даже в одном проекте. FWIW, я в США, и я никогда не использовал Verilog.
ajs410

1
«VHDL очень похож на кобол». Не на миллион миль!
Стивенв

9

Некоторое время назад я собрал сравнительную таблицу плат FPGA начального уровня от двух производителей FPGA - Xilinx и Altera. Это два основных игрока в FPGA, вроде PIC против AVR или Sony против Nintendo. Они обеспечивают лучшее соотношение цены и качества. Есть и другие поставщики, которые предоставляют определенные функции, но обычно вы платите либо больше, либо теряете функции / вычислительную мощность.

Я знаю, что это не дает прямого ответа на ваш конкретный вопрос, но это должно быть полезно всем, кто хочет начать работу с платой FPGA.


7

Так много вопросов; попробуем ответить на них по порядку:

  1. Потребность в ресурсах для обработки сигналов: чтобы определить, какое оборудование вам нужно использовать / собрать, вам необходимо знать объем обработки, который вы хотите выполнить для рассматриваемых сигналов. 8 каналов при 10 кГц - это не очень высокая скорость передачи данных, поэтому, если ваши требования не очень особенные, большинство FPGA и DSP должны иметь возможность обрабатывать данные.
  2. Как правильно выбрать устройство? Исходя из требований обработки вашего сигнала, вы сможете определить, какое устройство требуется для вашего приложения. Ключевыми моментами являются требования к памяти, жесткие множители, особые соображения ввода-вывода и т. Д. Большинство поставщиков ПЛИС имеют инструменты (на основе веб-интерфейса), которые позволяют искать их портфель на основе таких факторов.
  3. Как начать работу с DSP? DSP - это просто обычные компьютеры, которые обычно имеют инструкции SIMD [Single Instruction, Multiple Data], относящиеся к обработке сигналов. Для начала вам просто нужно понять ограничения «встроенного» оборудования и компилятора Си, чтобы вы могли тестировать свой код на обычном ПК.
  4. Как начать работу с FPGA? FPGA программируются на языке описания аппаратного обеспечения. Они значительно отличаются от последовательных языков, таких как C или Java. Чтобы разрабатывать для ПЛИС, вы должны понимать параллельную природу реального оборудования. Инструменты, необходимые для начала работы, - это симулятор HDL, такой как Simili (бесплатно для небольших проектов) или Modelsim. Это позволяет вам моделировать ваш код на ПК. После этого вам понадобится специализированный инструмент синтеза, который компилирует HDL-код в битовый файл, который используется для настройки FPGA. Если вы получаете стартовый комплект от Altera, Actel или Xilinx, все необходимые инструменты входят в комплект.
  5. Поддержка Linux: инструменты FPGA от большинства поставщиков работают на Linux, но в области DSP вы обычно вынуждены использовать компиляции только для Windows, если ваш DSP не поддерживается GCC (Blackfin от Analog и несколько моделей от Texas Instruments).

+1 для «8 каналов при 10 кГц не очень высокая скорость передачи данных» - я не могу поверить, что никто еще не сказал это.
Кевин Вермеер

Нет, если он делает 8-канальное БПФ ...
ajs410

DSP часто являются однопоточными параллельными процессорами, каждый из которых способен выполнять разные инструкции (в отличие от SIMD, где все модули используют одну и ту же инструкцию).
Бен Фойгт


4

Подойдет любой поставщик ПЛИС. Это как Intel против AMD ... есть различия между Xilinx и Altera, но они удивительно похожи с точки зрения функциональности. Купите любой комплект для разработки в вашей ценовой категории - мне лично понравились Spartan 3 от Xilinx - и работайте с ним.

Что касается количества ворот, комплект разработчика обычно будет очень большим, надеюсь, намного большим, чем вам нужно. Когда вы будете готовы перейти на свою собственную печатную плату, инструменты синтеза подсчитают для вас, сколько затворов требует ваш проект. Вы можете использовать это, чтобы выбрать меньшую FPGA, хотя вы можете обнаружить, что ограничения пакетов (QFP против BGA) также играют важную роль.

При правильном дизайне тактовая частота не будет проблемой. Фактически, вы обычно можете использовать относительно низкоскоростной кристалл, например 12 МГц, а FPGA может синтезировать гораздо более быстрые тактовые импульсы (или много более быстрых тактовых импульсов!) выделенные фрагменты DSP, которые могут ускорить эти вычисления. Но ПЛИС в основном параллельны, поэтому вам не нужно слишком много МГц для выполнения тонны работы.

Я определенно придерживаюсь фиксированной точки, если вы можете. Это возможно сделать с плавающей запятой, и у Xilinx даже есть Core Generator, который предоставит вам ядро ​​с плавающей запятой, но фиксированная точка будет намного, намного быстрее и потребует гораздо меньше ворот. Еще одним преимуществом является то, что вы можете сделать некоторую странную фиксированную точку; Вы можете использовать столько битов, сколько хотите, это не обязательно должно быть счетчиком степени 2, и / или вы можете использовать большие фиксированные точки для промежуточных ступеней.

Лучший способ начать работу с FPGA? Найдите класс или семинар или что-то. Если вы не знакомы с технологией, инструменты разработки будут очень запутанными, потому что многое может пойти не так. Инструменты для микроконтроллеров гораздо более щадящие и требуют меньшей близости с базовой архитектурой.

О, и вы должны прочитать таблицу данных FPGA, спереди назад.



0

Если вы хотите оценить количество гейтов, вам пока не нужно покупать аппаратное обеспечение - у основных производителей FPGA есть бесплатное программное обеспечение, и у многих будут аппликации для выполнения dsp. Вы можете разрабатывать и моделировать вещи без аппаратного обеспечения, а программное обеспечение сообщит вам, какие ресурсы используются. Однако для обработки сигналов dsp обычно будет первым шагом, а FPGA - только если у вас заканчивается вычислительная мощность.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.