Есть несколько веских причин для создания экземпляра микропроцессора или микроконтроллера в FPGA. Вот три:
Вы просто хотите узнать о работе процессора. ПЛИС дают вам бесконечные способы проверить, что происходит внутри процессора, когда он выполняет код. Это только для обучения.
Вы внедряете большую систему, которая требует аппаратных скоростей FPGA (быстрее, чем программное обеспечение, выполняемое на микропроцессоре), но ваш проект требует сложного конечного автомата, который легче реализовать с помощью программного обеспечения, работающего на простом процессоре, таком как Xilinx PicoBlaze чем в аппаратном FSM. Обратите внимание, что PicoBlaze может работать с частотой 240 МГц в новейших технологиях обработки FPGA, и что процессор PicoBlaze выполняет команду каждые два такта, так что вы получаете быстрый, согласованный конечный автомат, который легко программируется в программном обеспечении.
Расширяя (2), вам нужен конечный автомат, который может обрабатывать прерывания. Процессоры действительно хороши для этого, потому что они уже знают, как безопасно сохранять и восстанавливать состояние до и после обслуживания прерывания.
Вот одно предостережение: если вам нужен быстрый процессор со стандартным набором команд и большой экосистемой разработки, то вам нужен быстрый процессор с жестким ядром, такой как два ARM Cortex-A9 в SoC Xilinx Zynq. Матрица FPGA в Zynq SoC по-прежнему позволяет создавать больше процессорных ядер в программируемой логике, но ARM Cortex-A9 может работать со стандартными операционными системами, такими как Linux, и стандартными IDE, такими как Android.
Между ARM Cortex-A9 и PicoBlaze существует множество программных процессоров, которые вы можете реализовать с помощью программируемой логики, доступной из многих источников. Некоторые люди любят выпускать свои собственные процессоры, и это отличная образовательная деятельность. Однако микропроцессоры нуждаются в инструментах разработки программного обеспечения, и создание / отладка этих инструментов требует на порядок больших усилий, чем создание самого процессора. Вы всегда должны компенсировать возможную выгоду пользовательского микропроцессора от времени и усилий, необходимых для создания / отладки ядра процессора и инструментов.
Полное раскрытие: я работаю на Xilinx, но я почти уверен, что не утверждал, что FPGA - это всегда решение. Если 50-центовый микроконтроллер может справиться с этой задачей, вам лучше воспользоваться этим. FPGA и Zynq SoC предназначены для проектов, требующих тяжелой работы, выходящей за пределы возможностей микроконтроллеров.