Як вибрати FPGA?


17

Мені потрібно зайнятися цифровою обробкою сигналу на 8 аналогових лініях на 10 кГц. Це досить складне завдання, і я думав, що FPGA може бути правильним підходом. Зараз я переглядаю комплекти розробників від Xilinx, і оскільки у мене немає досвіду роботи з FPGA, мені дуже важко знати, як правильно вибрати чіп. Я уявив, як використовувати комплект розробників та розширити його за допомогою штифтів вводу / виводу для підключення до 8-канального мікросхема A / D та 8-канального мікросхеми D / A.

Які відмінності між використанням Spartan, Virtex, Altera тощо? Я навіть не знаю, як оцінити, скільки воріт мені знадобиться. Чи є для цього правила? Як переконатися, що тактова частота буде достатньою (як функція від кількості додавання та множення). Чи важко робити обробку з плаваючою комою на FPGA, я повинен дотримуватися математики з фіксованою точкою? Який найкращий спосіб почати?

Мені потрібно рішення, яке можна програмувати за допомогою Linux. Xilinx надає це, але я не впевнений, які обмеження є.


5
Це дуже допомогло б знати, які алгоритми потрібно реалізувати. Цілком ймовірно, що FPGA вам зовсім не потрібна, що заощадить вам багато часу на розробку ;-)
geschema

Я погоджуюся з гешемою; вам може не знадобитися FPGA. Можливо, DSP є кращим рішенням. У будь-якому випадку з ними легше розпочати роботу, якщо у вас є лише досвід роботи з ОК. FPGA дуже різні!
stevenvh

Відповіді:


13

Я б не використовував FPGA.

Ви згадуєте, що не маєте досвіду роботи з FPGA, і все ж вам цікаво робити цифрову обробку сигналу на FPGA ... чисельна маніпуляція + обробка сигналу досить складна, щоб потрапити прямо на комп'ютер / DSP / мікропроцесор, де засоби програмування звичайні програмування. Мені здається, що використання проекту цифрової обробки сигналів для першого проекту FPGA, ймовірно, є рецептом фрустрації.

Якщо ви хочете вивчити FPGA, спробуйте зробити щось більш підходяще до інструментів розробки, наприклад, державних машин або обробки пакетних комунікацій.

Для такого проекту DSP, як описаний вище, я рекомендую замість цього DSP або Cypress PSOC або мікроконвертор аналогових пристроїв (= мікроконтролер з вбудованим ADC + DAC).

(повне розкриття, яке дає певний контекст для моїх порад: я не використовую FPGA самостійно. Я використовував програмовану логіку = PLD рідко знаю, що він добре підходить для бітових маніпуляцій. Він досвідчений інженер з великим досвідом роботи з FPGA; в недавній розмові з ним, де він робив досить просту математику з цілих чисел з різною шириною бітів, я сказав йому, що йому потрібно робити розширення знаків на коротший номер ширини біт, щоб правильно відняти його, і він отримав такий вигляд на обличчі, як "о, чоловіче, я не хочу робити розширення знаків ..." Додавання і віднімання У програмі FPGA не дуже складно. Крім додавання та віднімання, вам дійсно потрібно знати інструменти та бібліотеки.І обробка з плаваючою комою ??!? !! ??!? !! !!?)


2
MyHDL намагається виправити деякі з цих проблем.
Шон Дж. Гофф

Я не думаю, що FPGA важче використовувати, ніж мікро, вони просто мають інший застереження.
Коннор Вольф

10

Вони всі дуже гарні. Вам не потрібно буде занадто багато з FPGA, щоб зробити щось подібне, тому будь-який початківець FPGA (наприклад, лінія Spartan-3) повинен бути достатнім.

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

Про тактову швидкість: не хвилюйтеся про це. Перевагою використання FPGA є те, що вони масово паралельні, тому, хоча годинник 50 МГц може здатися смішним повільним за сьогоднішніми стандартами, майте на увазі, що вони можуть робити сотні речей відразу, тоді як "нормальний" процесор на 3 ГГц повинен чергувати речі вгору по одному. Це перевага використання FPGA: паралелізму. Тож для чогось спеціалізованого вам не потрібно так сильно турбуватися про швидкість.

Але як і інший коментар, це зовсім інша парадигма. Крива навчання крута, але як тільки ви зрозумієте мову, це має сенс (просто переконайтеся, що ви розумієте будівельні блоки).

Щасливий FPGA'ing :)


2
VHDL насправді заснований на Ada! Леон
Леон Хеллер

2
Крім того, вибираючи Verilog або VHDL, враховуйте мову з огляду на те, що вона є інвестицією у вашу майбутню товарність. У США Verilog є більш популярним у розробці ІС / чіпів, ніж VHDL, тому знаючи, що Verilog (і його розширена версія System Verilog), швидше за все, буде кращою довгостроковою інвестицією. Також здається, що всі великі компанії EDA інвестують в verilog та verilog системи, тоді як VHDL не приділяє великої уваги. (Свідчення VCS змішане моделювання з vhdl проти VCS verilog відмінності в симуляторі). (чекає полум'я) Так, ви можете навчитися обом, але чому б не встановити пріоритет.
Росс Роджерс

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

1
"VHDL дуже схожий на COBOL". Не на мільйон миль!
stevenvh

9

Нещодавно я склав діаграму порівняння плати FPGA початкового рівня від двох постачальників FPGA Xilinx та Altera. Вони є двома основними гравцями FPGA, схожими на PIC vs AVR або Sony проти Nintendo. Вони забезпечують найкращий вибух. Є й інші постачальники, які надають конкретні функції, але ви зазвичай закінчуєте або платити більше, або втрачаєте функції / потужність обробки.

Я знаю, що це не відповідає безпосередньо вашому конкретному запитанню, але воно повинно бути корисним для всіх, хто хоче розпочати роботу з дошкою FPGA.


7

Стільки питань; спробуємо відповісти на них у порядку:

  1. Потреба в ресурсі для обробки сигналів: для того, щоб визначити, яке обладнання потрібно використовувати / складати, вам потрібно уявити кількість обробки, яку ви хочете виконати на відповідних сигналах. 8 каналів при 10 кГц - не дуже висока швидкість передачі даних, тому, якщо ваші вимоги не є особливими, більшість FPGA і DSP повинні мати можливість обробляти дані.
  2. Як вибрати правильний пристрій? Виходячи з вимог обробки сигналу, ви повинні мати можливість визначити, який пристрій потрібен для вашої програми. Ключові моменти - вимога пам'яті, потрібні жорсткі мультиплікатори, особливі міркування щодо IO тощо. Більшість постачальників FPGA мають інструменти (на основі веб-сторінок), які дозволяють шукати їх портфоліо на основі таких факторів.
  3. Як почати роботу з DSP? DSP - це звичайні комп'ютери, які зазвичай мають інструкції SIMD [Single Instruction, Multiple Data], що стосуються обробки сигналів. Для початку вам просто потрібно зрозуміти обмеження "вбудованого" обладнання та компілятора C, щоб ви могли перевірити свій код на звичайному ПК.
  4. Як почати роботу з FPGA? FPGA програмуються мовою апаратного опису. Вони суттєво відрізняються від послідовних мов, таких як C або Java. Для того, щоб розробити FPGA, вам потрібно зрозуміти паралельний характер реального обладнання. Інструменти, необхідні для початку, - це симулятор HDL, такий як Simili (безкоштовний для невеликих конструкцій) або Modelsim. Це дозволяє імітувати ваш код на ПК. Після цього вам потрібен спеціальний інструмент синтезу для постачальника, який компілює ваш HDL-код у бітовий файл, який використовується для налаштування FPGA. Якщо ви отримаєте стартовий комплект від Altera, Actel або Xilinx, всі необхідні інструменти є частиною цього комплекту.
  5. Підтримка Linux: Інструменти FPGA від більшості постачальників працюють на Linux, однак у полі DSP ви, як правило, змушені використовувати компіляції лише для Windows, якщо ваш DSP не підтримується GCC (Blackfin від Analog і кілька моделей від Texas Instruments є).

+1 для "8 каналів при 10 кГц - це не дуже висока швидкість передачі даних" - я не можу повірити, що ще ніхто не сказав про це.
Кевін Вермер

Не якщо він робить 8-канальний FFT ...
ajs410

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


4

Практично будь-який постачальник FPGA буде робити. Це як Intel від AMD ... Є різниці між Xilinx і Altera, але вони надзвичайно схожі за функціональністю. Купуйте будь-який комплект для розробки у вашому ціновому діапазоні - мені особисто сподобався Spartan 3's від Xilinx - і біжіть з ним.

Що стосується кількості воріт, комплект для розробників, як правило, буде дуже великим, сподіваємось, значно більшим, ніж вам потрібно. Коли ви будете готові перейти до власної друкованої плати, інструменти синтезу оцінять для вас, скільки воріт вимагає ваш дизайн. Ви можете використовувати це для вибору меншого FPGA, хоча ви можете виявити, що обмеження пакету (QFP проти BGA) також відіграють важливу роль.

При правильній техніці дизайну тактова частота не буде проблемою. Насправді, ти можеш використовувати кристал порівняно низької швидкості, наприклад, 12 МГц, і FPGA може синтезувати набагато швидший тактовий годинник (або багато швидших тактових годин!) Якщо ти справді переживаєш за те, щоб помножити чи додавати, я знаю, що серія Virtex4 має виділені фрагменти DSP, які можуть прискорити ці обчислення. Але FPGA масово паралельні, тому для тонни роботи вам не потрібно занадто багато МГц.

Я б точно дотримувався фіксованої точки, якщо можете. Це можливо зробити з плаваючою точкою, і Xilinx навіть має Core Generator, який надасть вам ядро ​​з плаваючою комою, але фіксована точка буде шлях, шлях швидше, і знадобиться набагато менше воріт. Ще одна перевага полягає в тому, що ви можете зробити якусь дивну фіксовану точку; ви можете використовувати скільки завгодно бітів, це не повинно бути рахунком потужності 2 біта, та / або ви можете використовувати більші фіксовані точки для проміжних ступенів.

Найкращий спосіб розпочати роботу з FPGA? Знайдіть клас чи семінар чи щось. Якщо ви не знайомі з технологією, інструменти розробки будуть дуже заплутаними, оскільки є багато, що може піти не так. Інструменти для MCU набагато простіші та потребують меншої близькості з базовою архітектурою.

О, і вам слід прочитати таблицю даних FPGA спереду назад.



0

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

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