Linux incorporado no FPGA

10

Eu tenho uma experiência muito limitada com FPGAs (Altera - usei apenas as ferramentas de design visual).

Estou planejando um novo projeto no qual preciso de FPGA e poderia me beneficiar muito de um linux real em execução na mesma placa (principalmente para comunicação TCP e alguns DSP).

Minha pergunta é: existe um FPGA recomendado que tenha um linux incorporado compatível preparado para isso? não há drivers sofisticados (apenas ethernet, wifi pode ser uma vantagem, ...). Eu imagino que haveria um micro controlador embutido no FPGA (isso significa que consumiria muito do FPGA e eu precisaria de um FPGA maior).

Todos
fonte

Respostas:

15

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.

Chris Stratton
fonte
6

O Microblaze da Xilinx roda o Linux muito bem, assumindo que seja rápido o suficiente para seus propósitos - ele só fará 10s de MIPS altos em dispositivos mais baratos, 100-200 MIPS nas famílias caras.

O Xilinx possui um repositório Git ou existem algumas distribuições específicas do Xilinx. A flexibilidade do FPGA pode ser um pouco dolorosa e benéfica, pois seu mapa de memória e mapeamentos de IRQ, ou mesmo quais periféricos disponíveis, podem mudar durante o desenvolvimento do projeto.

O Petalinux possui scripts para gerenciar esse tipo de coisa e atualizar os bits da configuração do kernel que são importantes com base no seu melhor e mais recente design de sistema.

Martin Thompson
fonte
4

A linha Virtex da Xilinx possui versões FPGA com PowerPCs de núcleo duro. É bastante fácil fazer o Linux rodar no PowerPC, meus alunos fizeram isso em muitos projetos de design sênior. Eles ainda têm bastante tecido configurável para o seu design de hardware preencher.

O conselho de avaliação do Virtex2 Pro era muito comum em projetos de pesquisa educacional e acadêmica. Como o Xilinx abandonou o suporte para esse chip de versão em suas ferramentas recentes, você pode escolher um deles com um preço bastante baixo. Eu acredito que ele era suportado até a versão 9.x mais ou menos. Hmm. Isso foi há vários anos, então talvez eu esteja sendo um pouco nostálgico. De qualquer forma, ainda estou passando esses painéis para os alunos interessados, para que eles façam o que quiserem com eles.

Bill Nace
fonte
11
Se não estou muito enganado, eles são chamados de Virtex xilinx.com/onlinestore/v2pro_boards.htm
Ali
11
@ Ali - Eu não acho que você esteja enganado, e você tem uma referência bastante confiável para a sua afirmação. Sinta-se à vontade para propor uma edição em situações como essa!
Kevin Vermeer
3

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.

vladimir khusainov
fonte
2

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.

Nicholas
fonte
Por que você respondeu esta wiki da comunidade? Provavelmente isso foi desnecessário.
Kevin Vermeer