Dispositivos SoC da Altera – Alto desempenho para projetos embarcados

Soc da Altera

O uso de processadores embarcados em dispositivos lógicos programáveis vem crescendo muito nos últimos anos. Para atender esta demanda crescente, a Altera lançou a linha SoC de FPGAs, que são FPGAs com processador ARM Cortex-A9 dual-core e um conjunto de periféricos já implementados em hardware, que permitem atingir alto desempenho nos projetos, tanto do software rodando no processador quanto de sistemas implementados em hardware no FPGA.

Ao longo da última década, a porcentagem de projetos em FPGA (Field Programmable Gate Arrays) que usam algum tipo de processador embarcado subiu de menos de 10% dos projetos, em 2003, para mais de 50% dos projetos em 2013. A demanda por maior capacidade de processamento de software, maior número de núcleos nos processadores do sistema e redução da área de placa e do consumo do sistema para viabilizar aplicações embarcadas, levaram a Altera a desenvolver a linha SoC (System-on-a-Chip) de FPGAs. 

Esta nova família de FPGA inclui, em um mesmo dispositivo, um FPGA, com todos os recursos que hoje estão disponíveis nestes dispositivos (lógica, controladores de memória, transceivers de alta velocidade e controladores PCI Express, blocos de processamento DSP e PLLs), um sistema de processamento, chamado HPS (Hard Processor System) composto por um processador ARM Cortex-A9 e um conjunto de periféricos que disponibiliza a alta capacidade de processamento do ARM (chega a 4000 DMIPS de capacidade de processamento) e facilidade de implementação de soluções rodando sistemas operacionais completos (como o Linux) em uma plataforma integrada com um FPGA de última geração, e com um custo baixo.

Os dispositivos SoC

Os dispositivos SoC da Altera são a integração de um circuito de FPGA de ultima geração, em 28 nm, e um processador ARM Cortex-A9 e os seus periféricos, o HPS em um mesmo dispositivo, conforme a  figura 1. Há duas famílias de FPGA disponíveis com o processador ARM integrado, a família Arria V SoC, voltada para aplicações de mais alto desempenho, e a família Cyclone V SoC, ambas implementadas no processo LP (Low Power) 28 nm da TSMC.

figura1

Na família Arria V SoC (1) é possível implementar circuitos rodando até 450 MHz, para circuitos muito bem sincronizados, e entre 250 e 350 MHz para circuitos maiores. Os transceivers podem ter taxas de transferência de ate 10 Gbps por transceiver, e a densidade destes ítens varia de 350K LE (Logic Element = Lookup Table de 4 entradas + 1 Flip-Flop) até 462K LE, com quatro controladores de memória em hardware, dois controladores PCI Express e até 36 transceivers.

Na família Cyclone V SoC (2) é possível implementar circuitos rodando até 250 MHz, para circuitos muito bem sincronizados, e entre 125 e 200 MHz para circuitos maiores. Os transceivers podem ter taxas de transferência de até 6.144 Gbps por transceiver, e a densidade destes ítens varia de 25K LE até 110K LE, com até dois controladores de memória em hardware, dois controladores PCI Express e até 9 transceivers.

Uma das grandes vantagens do uso de um dispositivo que integra um processador e um FPGA é a possiblidade de customizar o sistema desenvolvido para a sua necessidade. Assim, por exemplo, se forem necessárias 10 UARTs no sistema em desenvolvimento, e o processador em hardware só tem duas, podem ser implementadas as outras 8 UARTs no circuito do FPGA. Podem, também, ser implementados no circuito do FPGA processadores adicionais mais simples para executar funções específicas, liberando o ARM para tarefas de mais alto nível. Pode-se tambem incluir periféricos criados pelo usuário, que atendam a uma necessidade específica, tais como módulos de criptografia, controladores de motores BLDC, timers com resolução maior, interfaces específicas (Sonares por Ultrassom, interfaces infravermelho (IrDA), interfaces paralelas, etc …), expandindo assim o conjunto inicial de periféricos oferecidos no HPS para atender as necessidades do projeto sendo desenvolvido. No circuito do FPGA podem ainda ser implementados algoritmos de processamento digital de sinais complexos em hardware, com desempenho superior (dependendo do dispositivo usado até 10 vezes superior) a processadores DSP de mercado de alto desempenho, fazendo uso do paralelismo permitido em um FPGA e dos MACs (multiplicadores, somadores e acumuladores) já disponíveis em hardware no circuito do FPGA.

Módulo HPS

O módulo HPS (Hard Processor System) é o mesmo, tanto na família Cyclone V SoC quanto na Arria V SoC, e é composto pelos seguintes componentes já implementados em hardware :

  • Processador dual-core ARM Cortex-A9, cada core com coprocessadores NEON e ponto flutuante, 32-KB de cache L1 para dados e outro para instruções, 256 KB de cache L2, com frequência de operação de até 800 MHz e com desempenho médio de 2.5 instruções por ciclo de clock, ou 4000 DMIPS de capacidade de processamento total.
  • Controlador de memória DDR integrado, permitindo interface com memórias DDR2, LPDDR2, DDR3 e LPDDR3, com frequência de operação de até 350 MHz na Cyclone V SoC e ate 533 MHz na Arria V SoC. O controlador de memória permite acesso tambem a partir do circuito do FPGA, permitindo assim que circuitos de DMA implementados no circuito do FPGA também tenham acesso a áreas de memória do processador.
  • Controladores de memória não-volátil NAND Flash (com ECC), QSPI, SD/SDIO/MMC, com possibilidade de boot de um  sistema operacional a partir de qualquer destas memórias.
  • Duas interfaces USB 2.0 OTG (On-The-Go), com até 480 Mbps de velocidade e com PHY externo.
  • Duas interfaces Ethernet 10/100/1000, com PHY externo.
  • Periféricos de baixa velocidade (2 UART, 2 CAN, 4 I2C, 4 SPI, 3 GPIO)
  • Periféricos de controle (12 timers, 8 DMA, interface de depuração via JTAG)
  • Memória de rascunho (64 KB) e ROM de boot.
  • Interfaces com o circuito do FPGA, composto por um barramento de até 128 bits do HPS para o FPGA, outro de até 128 bits do FPGA para o HPS e um barramento de 32 bits do HPS para a FPGA.

Circuito do FPGA

O circuito do FPGA é o mesmo usado nos demais FPGAs de última geração da Altera, que integra os seguintes componentes:

  • Módulos de lógica ALM (Adaptative Logic Modules). Circuito responsável pela implementação da lógica, composto por uma ALUT (Adaptative Look-up Table) com 8 entradas e duas saídas, capaz de implementar circuitos combinatórios de uma a 7 entradas por saída, e compartilhando entradas, cada ALUT pode implementar até dois circuitos combinatórios de 6 entradas, 2 circuitos somadores por hardware e 4 flip-flops.
  • fPLL (Fractional PLL), capazes de gerar frequências de clock precisas, com ajuste de até 1 parte em 16 milhões.
  • Blocos de memória interna de 10 Kbits e de 640 bits por bloco.
  • Módulos de DSP (MAC – multiplicador, somador e acumulador) capazes de processar até duas entradas de 27 bits e com acumulador interno de 72 bits.
  • Controladores de memória em hardware adicionais (até mais um controlador na Cyclone V SoC e três adicionais na Arria V SoC)
  • Transceivers de alta velocidade nas versões SX e ST da Cyclone V SoC, e sempre presentes na Arria V SoC.
  • Para os ítens com transceiver, até dois controladores de PCI Express implementados em hardware, Geração 1 ou Geração 2, dependendo da velocidade dos transceivers usados.

Fluxo de projeto em dispositivos SoC

figura2

O fluxo de projeto para dispositivos SoC, mostrado na figura 2pode ser divido em duas partes, o desenvolvimento do hardware, que utiliza as ferramentas de desenvolvimento para FPGA (Quartus II, ModelSim, SignalTap II, …) e o desenvolvimento do software, que utiliza ferramentas de desenvolvimento de software para as famílias de processadores da ARM, o DS-5 (ARM Development Studio da Altera), ferramentas de desenvolvimento da GNU e suporte aos sistemas operacionais (Yocto para Linux). A Altera provê também ferramentas que permitem ao software obter informação diretamente do sistema desenvolvido em hardware e já integrar, por exemplo, no software, os drivers para os periféricos utlizados no hardware e os acrescentados ao sistema implementados no circuito do FPGA, reduzindo o tempo de desenvolvimento necessário.

Desenvolvimento do circuito de hardware

O desenvolvimento do hardware para o sistema SoC e feito através de ferramentas de desenvolvimento da Altera: o Quartus II, o Qsys (ferramenta de integração de sistemas SoC, que faz a geração do código do sistema de hardware a ser gerado, composto pelo HPS configurado e pelos periféricos adicionais implementados no circuito do FPGA), o ModelSim, para fazer a simulação do sistema, e as ferramentas de gravação, que permitem configurar o FPGA com o circuito gerado.

A primeira tarefa para se gerar um circuito SoC é usar o Qsys para implementar o circuito. Esta ferramenta permite configurar o HPS (selecionando os periféricos que serão usados e os pinos usados por cada periférico), definir a forma de integração entre a FPGA e o HPS, e incluir mais periféricos ou outros processadores implementados no circuito do FPGA. É uma ferramenta gráfica de fácil utilização e muito flexível, permitindo integrar, em um mesmo projeto, periféricos com interfaces distintas, tais como Avalon Mapeado em Meméria, Avalon Stream, AXI-3 e AXI-4. Ao final da criação do módulo SoC, o Qsys gera o código HDL (VHDL ou Verilog) do mesmo, deixando este sistema pronto a ser integrado ao FPGA.

Numa segunda etapa, usa-se o Quartus II para integrar o sistema SoC gerado pelo Qsys no FPGA, permitindo acrescentar outros sistemas escritos diretamente em código HDL, definir a posição e o padrão de I/O de cada pino do sistema, compilar o projeto e gerar o arquivo de gravação no FPGA. No Quartus também podem ser incluídos recursos de depuração, tais como o SignalTap II – um analisador lógico de estados implementado no próprio FPGA e que pode ser usado para monitorar sinais do sistema durante sua operação normal.  

Desenvolvimento de software para o sistema SoC

Uma vez concluido o desenvolvimento do hardware, é possível passar a desenvolver o software que será executado no sistema gerado. O desenvolvimento do software pode ser feito para dois tipos de aplicações diferentes – bare-metal, onde será desenvolvido um programa em C puro, para rodar no processador diretamente, sem a presença de um sistema operacional,  e o desenvolvimento de software que rodará sob um sistema operacional. Há vários sistemas operacionais já portados para os dispositivos SoC da Altera, sendo alguns gratuitos e código aberto (como o Linux e o Android) e outros pagos (uC/OS-II e III, WindRiver VxWorks e Linux, QNX e Windows Embedded 7).

figura3

O diagrama do fluxo de desenvolvimento de um programa para o sistema SoC pode ser visto na figura 3. O desenvolvimento tem como ponto de partida os arquivos gerados pelo Quartus II com as informações de quais periféricos estão sendo usados e em que pinos estes periféricos estão usando no FPGA (os pinos que estão efetivamente conectados na placa), para que o software possa configurar corretamente os registradores do HPS de modo que estes pinos sejam conectados aos periféricos de forma correta, e o arquivo gerado pela ferramenta de integração de sistema, o Qsys, com a informação de quais periféricos adicionais foram incluidos ao HPS no circuito do FPGA. Para o desenvolvimento de sistemas baseados em Linux (o mais comum atualmente), o arquivo com as informações de periféricos e pinos usados é usado para gerar o pre-loader, um programa simples, que deve rodar antes do sistema operacional ser carregado, e que configura o HPS para que possa acessar o U-Boot, o boot loader, e carregar a partir deste programa a imagem do sistema operacional, e o arquivo gerado pelo Qsys é usado para gerar um novo DTB (Device Tree Blob), arquivo com a descrição dos periféricos presentes no sistema e que permite ao Linux não precisar de uma nova compilação do kernel para incluir os drivers dos dispositivos presentes no sistema.

Para tornar a vida dos desenvolvedores de sistemas baseados em Linux mais fácil, a Altera criou um layer específico para os dispositivos SoC da Altera no projeto no Yocto (3). O projeto Yocto é um sistema de código aberto que permite a criação, de forma simples, usando um conjunto de regras bem definidas (os layers), de uma distribuição de Linux configurada de acordo com as necessidades do usuário. Este conjuto de regras e as ferramentas para usar estas regras e criar uma versão customizada de Linux pode ser baixada diretamente do site da Altera (4). Todas as ferramentas para desenvolvimento de sistemas de Linux embarcado baseadas no projeto Yocto são gratuitas e de código aberto, e fáceis de serem usadas. Com o uso do DTB, é possível, inclusive, alterar e reconfigurar o conjunto de periféricos implementado no circuito do FPGA de forma dinâmica, com o processador em operação, e sem precisar fazer uma nova carga do sistema operacional, o que viabiliza o desenvolvimento de aplicações onde os sitema operacional não pode parar mas o circuito em uso no FPGA precisa ser trocado de forma dinâmica.

Os passos necessários para desenvolver um projeto de software baseado em Linux, para um sistema SoC da Altera são:

  • Baixar e instalar o layer para SoC FPGA do projeto Yocto
  • Executar as ferramentas que irão baixar, instalar e atualizar o kernel do Linux e os pacotes a serem usados
  • Configurar o kernel do Linux para o projeto a ser desenvolvido, incluindo no kernel suporte a todos os dispositivos que possam vir a ser usados no projeto
  • Compilar o novo kernel configurado
  • Criar o pre-loader para o projeto
  • Configurar e compilar o U-Boot
  • Gerar uma imagem de SD ou FLASH contendo todos os programas
  • Gravar a imagem na SD ou FLASH a ser usada
  • Configurar o HPS, através de chaves ou de pinos de entrada, para ser inicializado a partir da FLASH ou do cartão SD
  • Iniciar o sistema na placa
  • Gravar o FPGA (a configuração pode ser feita pelo próprio HPS a partir de um arquivo disponível na FLASH ou SD)
  • Iniciar a aplicação final a partir do Linux que já está rodando

Principais aplicações

São inúmeras as aplicações para os dispositivos SoC da Altera, incluindo:

Na área médica, produtos que precisem do alto desempenho disponível nos dispositivos SoC, tais como equipamentos portáteis (Ultrassom, monitores paramétricos, bombas de infusão), sistemas de raios-X, sistemas de comunicação entre pacientes e médicos, etc…

Na área industrial, sistemas de controle menores e mais eficientes, PLCs com alto desempenho, sistemas de controle que utilizam protocolos industriais baseados em Ethernet (EtherCAT, Modbus TCP/IP, EtherNet IP, PROFIBUS DP, Ethernet PowerLink e Profinet RT/IRT), inversores para sistemas baseados em energia solar, drivers para motores (Driver-on-a-Chip) e sistemas de segurança.

Na área de telecomunicações, pode ser usado em equipamentos tais como switches, roteadores, modems e afins.

Em broadcast podem ser usados para desenvolver moduladores, retransmissores, gap fillers e links de micro-ondas. Podem ainda ser usados para implementar sistemas de processamento de imagens, tais como sistemas de conversão entre vídeos de padrões e resoluçõo diferentes, filtros de imagens, inserção de caracteres e similares.

Em aplicações comerciais, podem ser usados como o processador principal de ATM e POS, além de permitir a implementação completa de impressoras fiscais e relógio de ponto eletrônico.

Outras aplicações desenvolvidas com estes dispositivos são sonares portáteis para uso em embarcações, ultrassom portátil para aplicações industriais e sistemas de Software Defined Radio.

Conclusão

Com o lançamento dos dispositivos SoC da Altera, hoje é possível desenvolver sistemas embarcados com a alta capacidade de processamento oferecida por um processador ARM de alto desempenho (Cortex-A9 dual-core), e a flexibilidade, alto desempenho em processamento digital de sinal e configurabilidade de um FPGA em um único dispositivo, permitindo assim o desenvolvimento de produtos de baixo consumo, elevado desempenho e tamanho reduzido, abrindo novos mercados para empresas que venham a desenvolver usando esta nova tecnologia.

Referências

(1) : http://www.altera.com/devices/fpga/cyclone-v-fpgas/overview/cyv-overview.html

(2) : http://www.altera.com/devices/fpga/cyclone-v-fpgas/overview/cyv-overview.html

(3)http://www.yoctoproject.org/

(4)https://www.altera.com/download/software/soc-eds

(*) esse post foi patrocinado pela MACNICA

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

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

Hardware » Sistemas Digitais » Dispositivos SoC da Altera - Alto desempenho para projetos embarcados
Comentários:
Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments
Talvez você goste:

Séries

Menu

WEBINAR
 
Porque o RTOS não faz o que eu quero?

Data: 28/10 às 19:30h - Apoio: Mouser Electronics
 
INSCREVA-SE AGORA »



 
close-link