Um núcleo de processador RISC de 32 bits, capaz de executar a versão no-mmu do linux, na verdade não precisa ser tão grande - o recurso real de que você precisa é muito mais RAM (10s de megabytes) do que o disponível em qualquer FPGA, então você provavelmente desejará SDRAM na placa e um controlador para isso no FPGA.
Dito isto, se você deseja algo além de um nível trivial de desempenho, provavelmente deseja um núcleo com algumas otimizações (pipelining, etc.), e isso começa a aumentar um pouco o tamanho. A adição de um mmu completo tornará a (re) alocação de memória mais eficiente e permitirá o comportamento usual de copiar na gravação () na forquilha ().
Os dois principais fornecedores de FPGA possuem núcleos de processador flexíveis com portas linux disponíveis - Microblaze para Xilinx, Nios II para Altera. Você provavelmente deve ler os documentos deles para obter recomendações específicas da plataforma, pois é obviamente um destino que se move com o tempo. Um design central de terceiros pode ser um pouco maior para um desempenho semelhante, se for escrito de uma maneira mais portátil e não especificamente otimizado para uma determinada família FPGA.
Historicamente, existem chips disponíveis combinando um núcleo de processador rígido (geralmente powerpc) com uma região de malha FPGA configurável. Outra opção a considerar seria um processador separado (provavelmente ARM) na mesma placa que um FPGA.
Grande parte da decisão dependerá da força necessária para acoplar o processador e o FPGA. Se você puder reduzir o problema aos registros de configuração e a um fluxo de dados, pode ser tão modular quanto pendurar uma placa FPGA com um rápido chip USB na porta host USB de uma placa linux incorporada, como um BeagleBoard ou RasberryPi. Para uma integração mais rígida, convém o FPGA na mesma placa e sentado no barramento externo do processador. Ou, para taxas de dados baixas, é trivial colocar uma interface de registro SPI em um FPGA, e as interfaces UART são totalmente viáveis, embora um pouco mais complicadas.
Finalmente, existe a pergunta se você realmente precisa de um sistema operacional completo, como linux, ou se uma pilha TCP incorporada com mais "tamanho de microcontrolador" resolveria o seu problema, exigindo menos memória.
O SmartFusion da Actel integra um FPGA com um núcleo ARM Cortex-M3 com IP rígido e um mecanismo analógico avançado em um único dispositivo de chip.
O uClinux funciona muito bem no núcleo Cortex-M3 do SmartFusion. Verifique este site para mais detalhes.
fonte
Dependendo do período de tempo, você também pode examinar a nova linha Zynq-7000 da Xilinx, que combina um processador ARM com um Artix-7 ou Kintex-7. A Xilinx afirma que enviará quantidades de produção no segundo semestre de 2012.
Outros fornecedores podem ter produtos semelhantes. Não sei se ou quando o Xilinx trará o suporte do Zynq ao ISE WebPack gratuito; No momento, eles afirmam que você precisa do ISE Embedded Edition.
fonte