ARM e FPGA em um chip! A nova geração de FPGAs

ARM e FPGA

Segundo pesquisa feita pela UBM com desenvolvedores de sistemas embarcados, a tendência em projetos de FPGA utilizando processadores é muito grande. Com certeza Altera e Xilinx constataram o mesmo em suas pesquisas de mercado e ambas reconheceram como melhorar e muito seus produtos.

 

Quem já trabalhou com processadores softcores como por exemplo o NIOS2 da Altera e o MicroBlaze da Xilinx sabe que o desempenho deles não chega nem perto de um ARM Cortex série A , além de consumirem uma área de FPGA enorme para interfaces e memória. Eles, com certeza, têm a sua aplicação e não deixarão o mercado. Um core ARM, no entanto, abre novas possibilidades bem interessantes para o mundo de FPGA.

 

Conforme mencionado no artigo sobre arquitetura de FPGA, agora dentro do FPGA, além de DSP, blocos de memória e LUTS, também temos um processador ARM. A Altera está introduzindo o ARM nas famílias Cyclone e Arria e a Xilinx já possui no mercado o Zynq.

 

A ideia é que o fluxo de projeto de software e hardware seja distinto, ou seja, para o desenvolvedor de hardware as ferramentas permanecerão as mesmas. Ele apenas irá "instanciar um ARM" no seu projeto e realizar as conexões e configurações. Para o desenvolvedor de software as ferramentas também permanecerão as mesmas, é possível usar todo o vasto ecossistema de desenvolvimento ARM. 

 

Vamos pegar como caso de uso a Cyclone V da Altera. O Cyclone V é um SoC (System-on-Chip) da Altera que integra um HPS (Hard Processor System)  ao fabric da FPGA. O HPS consiste de um processador ARM e seus periféricos e interfaces de memória.

 

www.altera.com ARM e FPGA
Retirado do site da Altera (www.altera.com)

 

O HPS possui:

  • Processador dual-core ARM® Cortex™-A9 MPCore™  rodando a 925 MHz;
  • Cada core do processador inclui:
    • 32 KB de cache de instrução L1,  32 KB de cache de dados L1;
    • Unidade de ponto flutuante de precisão simples e dupla com tecnologia NEONTM;
    • CoreSightTM debug;
  • 512 KB de cache L2 compartilhada;
  • 64 KB de RAM;
  • Controladores SDRAM com suporte para DDR2, DDR3, and LPDDR2;
  • Controlador DMA de oito canais;
  • Controlador QSPI flash;
  • Controlador NAND flash com DMA;
  • Controlador SD/SDIO/MMC com DMA;
  • 2x 10/100/1000 Ethernet media access control (MAC) com DMA;
  • 2x USB On-The-Go (OTG) com DMA;
  • 4x Controlador I2C ;
  • 2x UART;
  • 2x mestres SPI, 2x escravos SPI;
  • Até 134 I/O (GPIO) de propósito geral;
  • 7x timers de propósito geral;
  • 4x watchdog timers.

 

Esta combinação permite diminuir o espaço da placa por não ser necessário ter um processador de alto desempenho externo ao FPGA. Também permite ao ARM suportar qualquer padrão de interface, visto que a mesma pode ser implementada em VHDL e então conectada ao ARM.

 

Existe a possibilidade de utilizar tudo que já existe para o mundo ARM junto com um FPGA de forma simples. Periféricos, linux embarcado e até mesmo Android podem rodar facilmente em conjunto com o seu circuito.

 

 Barramento de alta velocidade HPS-To-FPGA

 

Apesar do HPS e o FPGA operarem de forma independente, eles estão interligados por uma interconexão de alta velocidade utilizando barramento ARM AMBA® AXITM .

 

Os mestres do barramento do HPS tem acesso aos slaves do FPGA e o contrário também é verdadeiro. Desta forma é possível que o FPGA acesse a lógica interna do ARM e os periféricos a ele conectados e vice-versa. É possível, por exemplo, pelo FPGA acessar um I/O que está fisicamente conectado ao ARM. Ou ainda debugar o ARM via hardware com o FPGA.

 

Até seis mestre do barramento FPGA podem compartilhar a memória RAM do HPS.

  • HPS-to-FPGA: configurável 32, 64, ou 128 bit AMBA AXI interface

  • FPGA-to-HPS: configurável 32, 64, ou 128 bit AMBA AXI interface

  • FPGA-to-HPS SDRAM controller: até seis mestre (portas de comando), 4x 64 bit portas de leitura e 4x 64 bit portas de escrita

A taxa de transferência entre eles é de 128 Gbps (giga bits por segundo).

 

Configuração do FPGA e boot do processador

 

O fabric do FPGA e o HPS são energizados de forma independente, é possível reduzir a frequência de clock individualmente, ou desligar o ARM ou o fabric do FPGA completamente para reduzir o consumo do sistema. É possível configurar o fabric FPGA e inicializar o HPS de forma independente, em qualquer ordem. Por exemplo:

  • Primeiro realizar o processo de boot do HPS e com o HPS rodando configurar o fabric do FPGA totalmente ou parcialmente por software;

  • Primeiro configurar o FPGA e bootar o HPS a partir de uma memória controlada pelo fabric do FPGA.

Futuro

 

Muito se questiona se hoje ainda podemos chamar o FPGA de FPGA, tamanha a evolução desde que o dispositivo era apenas uma matriz de elementos lógicos. Por enquanto o nome adotado é FPGA SoC. Existe um excelente artigo sobre isto em inglês neste link.

 

A Altera já tem no roadmap a nova geração da Stratix (família de maior desempenho) com um ARM quad-core de 64 bits integrado ao fabric do FPGA, Cortex A-53.

 

Referência:  http://www.altera.com/literature/hb/cyclone-v/cv_51001.pdf

NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

3
Deixe um comentário

avatar
 
3 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
1 Comment authors
Alexandre MagalhãesFPGA uma Super Solução em Retrocomputação - RetropixEmbarcados – Sua fonte de informações sobre Sistemas Embarcados Android e Hard Real Time Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback
FPGA uma Super Solução em Retrocomputação - Retropix
Alexandre Magalhães
Membro
Alexandre Magalhães

Muito boa a matéria.

trackback
Embarcados – Sua fonte de informações sobre Sistemas Embarcados Android e Hard Real Time

[...] o SoC Cyclone V HPS (hard processor system) que consiste do processador, periféricos e controlador e memória por [...]