Мне нужно сделать цифровую обработку сигнала на 8 аналоговых линиях с частотой 10 кГц. Это довольно сложная задача, и я подумал, что ПЛИС может быть правильным подходом. В настоящее время я смотрю на комплекты разработчика от Xilinx, и, поскольку у меня нет опыта работы с FPGA, мне очень трудно понять, как правильно выбрать чип. Я представлял себе использование комплекта разработчика и расширение его с помощью выводов ввода / вывода для подключения к 8-канальному АЦП и 8-канальному ЦАП.
Каковы различия между использованием Spartan, Virtex, Altera и т. Д.? Я даже не знаю, как оценить, сколько ворот мне понадобится. Есть ли какие-то правила для этого? Как мне убедиться, что тактовая частота будет достаточной (как функция количества добавлений и умножений). Сложно ли выполнять обработку с плавающей точкой на ПЛИС, стоит ли придерживаться математики с фиксированной запятой? Какой лучший способ начать?
Мне нужно решение, которое программируется с использованием Linux. Xilinx обеспечивает это, но я не уверен, каковы ограничения.
источник
Ответы:
Я бы не использовал FPGA.
Вы упомянули, что у вас нет опыта работы с FPGA, и все же вы заинтересованы в том, чтобы выполнять цифровую обработку сигналов на FPGA ... числовые манипуляции + обработка сигналов достаточно сложны, чтобы получить правильные результаты на компьютере / DSP / микропроцессоре, где инструменты программирования обычны программирование. Мне кажется, что использование проекта цифровой обработки сигналов для первого проекта ПЛИС, скорее всего, вызовет разочарование.
Если вы хотите изучать FPGA, попробуйте сделать что-то более подходящее для инструментов разработки, например конечные автоматы или обработку пакетов связи.
Для проекта DSP, подобного тому, который вы описали, я бы порекомендовал DSP или Cypress PSOC или микроконвертер Analog Devices (= микроконтроллер со встроенным ADC + DAC).
(полное раскрытие, которое обеспечивает некоторый контекст для моего совета: я сам не использую FPGA. Я использовал программируемую логику = PLD в редких случаях. Мой товарищ по офису часто использует FPGA, и я видел достаточно VHDL / Verilog кода, просматривая его Он должен знать, что он хорошо подходит для битовых манипуляций. Он опытный инженер с большим опытом работы с FPGA, и в недавней беседе с ним, где он делал довольно простую математику для целых чисел с разной шириной битов, я сказал ему, что ему нужно сделать расширение знака для более короткого числа бит в ширину, чтобы вычесть его правильно, и он получил это выражение на лице, как «о, боже, я не хочу делать расширение знака ...» Сложение и вычитание Это не очень сложно в FPGA. Помимо сложения и вычитания, вам действительно нужно знать инструменты и библиотеки.И обработка с плавающей точкой ??!? !! ??!? !!?)
источник
Они все в значительной степени хороши. Вам не нужно слишком много из FPGA, чтобы сделать что-то простое, поэтому любой FPGA новичка (например, линия Spartan-3) должно быть достаточно.
Просто предупреждение, хотя программирование FPGA - это LOOOOTTTTTT, отличное от C ++, C, perl ... Я бы предложил начать с verilog, потому что, вероятно, легче перейти в ... VHDL очень похож на COBOL, но Verilog больше похож на современные языки программирования.
Насчет тактовой частоты: не беспокойся об этом. Преимущество использования FPGA заключается в том, что они в основном параллельны, поэтому, хотя тактовая частота 50 МГц может показаться смехотворно медленной по современным стандартам, имейте в виду, что они могут выполнять сотни операций одновременно, тогда как «обычный» процессор на частоте 3 ГГц должен ставить в очередь до по одному. Это преимущество использования FPGA: параллелизм. Так что для чего-то специализированного, вам не нужно так сильно беспокоиться о скорости.
Но, как и другие комментарии, это совершенно другая парадигма. Кривая обучения крутая, но как только вы овладеете языком, все это имеет смысл (просто убедитесь, что вы понимаете строительные блоки).
Счастливого FPGA'а :)
источник
Некоторое время назад я собрал сравнительную таблицу плат FPGA начального уровня от двух производителей FPGA - Xilinx и Altera. Это два основных игрока в FPGA, вроде PIC против AVR или Sony против Nintendo. Они обеспечивают лучшее соотношение цены и качества. Есть и другие поставщики, которые предоставляют определенные функции, но обычно вы платите либо больше, либо теряете функции / вычислительную мощность.
Я знаю, что это не дает прямого ответа на ваш конкретный вопрос, но это должно быть полезно всем, кто хочет начать работу с платой FPGA.
источник
Так много вопросов; попробуем ответить на них по порядку:
источник
Парень по имени Энтони Берч собрал серию видеороликов о FPGA . Одна из бесплатных включает в себя информацию о том, как выбрать FPGA.
источник
Подойдет любой поставщик ПЛИС. Это как Intel против AMD ... есть различия между Xilinx и Altera, но они удивительно похожи с точки зрения функциональности. Купите любой комплект для разработки в вашей ценовой категории - мне лично понравились Spartan 3 от Xilinx - и работайте с ним.
Что касается количества ворот, комплект разработчика обычно будет очень большим, надеюсь, намного большим, чем вам нужно. Когда вы будете готовы перейти на свою собственную печатную плату, инструменты синтеза подсчитают для вас, сколько затворов требует ваш проект. Вы можете использовать это, чтобы выбрать меньшую FPGA, хотя вы можете обнаружить, что ограничения пакетов (QFP против BGA) также играют важную роль.
При правильном дизайне тактовая частота не будет проблемой. Фактически, вы обычно можете использовать относительно низкоскоростной кристалл, например 12 МГц, а FPGA может синтезировать гораздо более быстрые тактовые импульсы (или много более быстрых тактовых импульсов!) выделенные фрагменты DSP, которые могут ускорить эти вычисления. Но ПЛИС в основном параллельны, поэтому вам не нужно слишком много МГц для выполнения тонны работы.
Я определенно придерживаюсь фиксированной точки, если вы можете. Это возможно сделать с плавающей запятой, и у Xilinx даже есть Core Generator, который предоставит вам ядро с плавающей запятой, но фиксированная точка будет намного, намного быстрее и потребует гораздо меньше ворот. Еще одним преимуществом является то, что вы можете сделать некоторую странную фиксированную точку; Вы можете использовать столько битов, сколько хотите, это не обязательно должно быть счетчиком степени 2, и / или вы можете использовать большие фиксированные точки для промежуточных ступеней.
Лучший способ начать работу с FPGA? Найдите класс или семинар или что-то. Если вы не знакомы с технологией, инструменты разработки будут очень запутанными, потому что многое может пойти не так. Инструменты для микроконтроллеров гораздо более щадящие и требуют меньшей близости с базовой архитектурой.
О, и вы должны прочитать таблицу данных FPGA, спереди назад.
источник
Посмотрите на XMOS
Они могут использоваться для замены FPGA во многих приложениях.
источник
Если вы хотите оценить количество гейтов, вам пока не нужно покупать аппаратное обеспечение - у основных производителей FPGA есть бесплатное программное обеспечение, и у многих будут аппликации для выполнения dsp. Вы можете разрабатывать и моделировать вещи без аппаратного обеспечения, а программное обеспечение сообщит вам, какие ресурсы используются. Однако для обработки сигналов dsp обычно будет первым шагом, а FPGA - только если у вас заканчивается вычислительная мощность.
источник