Існує кілька поважних причин існування мікропроцесора або мікроконтролера в FPGA. Ось три:
Ви просто хочете дізнатися про роботу процесора. FPGA дають вам нескінченний спосіб перевірити, що відбувається всередині процесора під час виконання коду. Це лише для навчання.
Ви впроваджуєте велику систему, яка вимагає апаратних швидкостей FPGA (швидше, ніж програмне забезпечення, яке виконується на мікропроцесорі), але для вашого дизайну потрібна складна державна машина, яка легше реалізується за допомогою програмного забезпечення, що працює на простому процесорі, як Xilinx PicoBlaze ніж у апаратній FSM. Зауважте, що PicoBlaze може працювати так само швидко, як 240 МГц, за останніми технологічними технологіями FPGA, і що процесор PicoBlaze виконує інструкцію кожні два тактових цикли, тож ви отримуєте швидку, послідовну машину, яка легко програмується в програмному забезпеченні.
Розширюючись на (2), вам потрібна державна машина, яка може обробляти переривання. Процесори справді хороші для цього, оскільки вони вже знають, як безпечно зберегти та відновити стан до та після обслуговування переривання.
Ось одне застереження: Якщо ви хочете швидкий процесор зі стандартним набором інструкцій та великою екосистемою розвитку, то вам потрібен швидкий, жорсткий процесор, як два ARM Cortex-A9s у Soil Xilinx Zynq. Тканина FPGA в Zynq SoC все ще дозволяє створювати більше ядер процесора в програмованій логіці, але ARM Cortex-A9s може запускати стандартні операційні системи, такі як Linux та стандартні IDE, такі як Android.
Між ARM Cortex-A9 і PicoBlaze є багато м'яких процесорів, які можна реалізувати за допомогою програмованої логіки, доступної з багатьох джерел. Дехто любить прокручувати власні процесори, і це чудова освітня діяльність. Однак мікропроцесорам потрібні інструменти для розробки програмного забезпечення, а створення / налагодження цих інструментів вимагає наказів більше, ніж створення самого процесора. Ви завжди повинні торгувати можливою перевагою користувальницького мікропроцесора проти часу та зусиль, необхідних для створення / налагодження ядра процесора та інструментів.
Повне розкриття: Я працюю на Xilinx, але я впевнений, що не заявляв, що FPGA завжди є рішенням. Якщо 50-центовий мікроконтролер може виконати цю роботу, вам краще скористатися цим. FPGA та Zynq SoC - це проекти, які потребують важкого підйому поза можливостями мікроконтролерів.