Existem vários motivos válidos para instanciar um microprocessador ou microcontrolador em um FPGA. Aqui estão três:
Você só quer aprender sobre a operação de um processador. Os FPGAs oferecem infinitas maneiras de analisar o que está acontecendo dentro do processador enquanto ele executa o código. Isto é apenas para aprender.
Você está implementando um grande sistema que requer as velocidades no nível de hardware de um FPGA (mais rápido que o software em execução em um microprocessador), mas seu design requer uma máquina de estado complexa, que é mais facilmente implementada usando software executado em um processador simples como o Xilinx PicoBlaze do que em um FSM de hardware. Observe que um PicoBlaze pode rodar tão rápido quanto 240 MHz nas mais recentes tecnologias de processo FPGA e que o processador PicoBlaze executa uma instrução a cada dois ciclos de clock, para que você obtenha uma máquina de estado rápida e consistente que seja facilmente programada em software.
Expandindo em (2), você precisa de uma máquina de estado que possa lidar com interrupções. Os processadores são realmente bons para isso, porque eles já sabem como salvar e restaurar com segurança o estado antes e depois da manutenção da interrupção.
Aqui está uma ressalva: se você deseja um processador rápido com um conjunto de instruções padrão e um grande ecossistema de desenvolvimento, deseja um processador rápido e de núcleo duro, como os dois ARM Cortex-A9s em um Xilinx Zynq SoC. A malha FPGA no Zynq SoC ainda permite instanciar mais núcleos de processador na lógica programável, mas os ARM Cortex-A9s podem executar sistemas operacionais padrão, como Linux, e IDEs padrão, como Android.
Entre o ARM Cortex-A9 e o PicoBlaze, existem muitos processadores soft que você pode implementar com lógica programável disponível em várias fontes. Algumas pessoas gostam de rodar seus próprios processadores e essa é uma ótima atividade educacional. No entanto, os microprocessadores precisam de ferramentas de desenvolvimento de software e a criação / depuração dessas ferramentas exige ordens de magnitude mais esforço do que a criação do próprio processador. Você sempre deve trocar o possível benefício de um microprocessador personalizado contra o tempo e o esforço necessários para criar / depurar o núcleo do processador e as ferramentas.
Divulgação completa: trabalho para o Xilinx, mas tenho certeza de que não afirmei que os FPGAs são sempre a solução. Se um microcontrolador de 50 centavos puder fazer o trabalho, é melhor usá-lo. FPGAs e Zynq SoCs são para projetos que exigem trabalho pesado além das habilidades dos microcontroladores.