Uma Introdução aos FPGAs e Lógica Programável
Este vídeo é uma apresentação introdutória sobre FPGA e tecnologia de lógica programável. Fiz esta palestra de 45 minutos em um evento organizado pela 7 Peaks Software em Bangkok, Tailândia, em 19 de novembro de 2019.
Os destaques da apresentação incluem:
- 05:07 Quem usa FPGAs?
- 09:06 O que é um FPGA?
- 12:13 Como emular portas lógicas usando RAM estática
- 17:47 Primitivas comuns de FPGA
- 19:51 FPGA mais barato e caro
- 20:53 Planta baixa de um FPGA
- 24:30 VHDL
- 28:05 Síntese e lugar e rota
- 30:50 Soft-cores
- 33:15 FPGA / CPU híbridos (Zynq-7000)
- 36:44 Vantagens e desvantagens do FPGA
- 40:28 Exemplos de produtos que contêm FPGAs
- 45:18 Recursos de aprendizado gratuitos do VHDLwhiz.com
Quem usa FPGAs?
Existe uma ampla gama de aplicações para a tecnologia FPGA. Produtos que vão desde satélites no espaço até robôs de negociação em Wall Street utilizam lógica programável. Aqui seguem algumas indústrias que são conhecidas por serem grandes usuários de FPGAs.
Defesa
A indústria de defesa está em excelente posição para se beneficiar das implementações personalizadas de FPGA. Eles têm muito dinheiro e altos requisitos de qualidade. As listas de especificações de seus produtos geralmente são extremas porque os equipamentos de nível militar são um nível de engenharia confiável bem acima dos níveis de consumo e industriais. Seus orçamentos são sempre altos e às vezes praticamente ilimitados, vindos de uma fonte estável como o apoio do governo.
Todos os itens acima são razões pelas quais os FPGAs são muito usados para aplicações de defesa. Não apenas para armas, mas também para dispositivos de comunicação de rádio e equipamentos de teste. Já trabalhei na indústria. Você pode ler mais sobre minha experiência como engenheiro de FPGA na indústria de defesa aqui.
Espaço
FPGAs são amplamente utilizados em toda a indústria espacial. Há muitas razões pelas quais eles são adequados para satélites. Eles são inerentemente de baixo consumo de energia, podem ser endurecidos contra radiação e é mais fácil verificar a exatidão de um FPGA do que o software executado em uma CPU ou microcontrolador.
Muitos projetos eletrônicos no espaço são para coisas como controle de interface, leitura de dados de sensores, processamento de sinal ou sistemas de controle, tarefas que se adequam bem a um FPGA. Além disso, as aplicações espaciais geralmente se enquadram nos mesmos requisitos de confiabilidade que são padrão na indústria aeroespacial.
Aeroespacial
A indústria aeroespacial adora FPGAs por muitos dos mesmos motivos que a indústria espacial, mas o mais importante, porque é mais fácil verificar a exatidão de um FPGA do que de software.
Provar que um programa de computador não tem consequências não intencionais é difícil e demorado. Os padrões internacionais para sistemas aerotransportados determinam que os eletrônicos usados em aeronaves devem seguir rigorosos requisitos de verificação.
Embora o software tenha que seguir o padrão de aviação DO-178C, os FPGAs se enquadram no guia de garantia de design DO-254 para hardware eletrônico aerotransportado. Na maioria dos casos, é mais fácil e barato satisfazer o requisito do padrão de hardware do que uma implementação de software correspondente.
Automotivo
Os fabricantes de veículos usam FPGAs para coisas como controle de motores a diesel em caminhões e também para sistemas de direção automatizada. Você pode até encontrar sistemas de comunicação e entretenimento acelerados por FPGA em carros modernos.
Além disso, veículos elétricos e híbridos provavelmente usarão FPGAs para tarefas de controle de motores. Os motores de indução trifásicos requerem um controle de temporização rigoroso dos campos magnéticos à medida que o motor gira. Qualquer imprecisão se traduzirá em perda de eficiência de energia.
Telecom
A infraestrutura de telecomunicações utiliza muita tecnologia FPGA. Como já mencionado, FPGAs são padrão em aplicações espaciais como satélites de comunicação. Outros usos de FPGAs no setor de telecomunicações incluem roteadores de rede e estações base sem fio.
Para equipamentos de telecomunicações de consumo, como telefones celulares, os FPGAs não são tão comuns. É mais provável que você veja um ASIC do que um FPGA para uma solução personalizada em um telefone celular. Mesmo que o custo inicial de produção do ASIC seja muito maior do que um FPGA, eles ainda são econômicos devido ao alto volume de vendas de telefones celulares.
Centros de dados
Todas as quatro grandes empresas de tecnologia desenvolvem soluções FPGA personalizadas para uso em seus data centers. Os FPGAs são essenciais para que eles possam lidar com volumes tão altos de dados com latência tão baixa.
É difícil encontrar detalhes sobre que tipo de problemas eles estão resolvendo com FPGAs. Ainda assim, a julgar por evidências circunstanciais, como listas de empregos, fica evidente que eles dependem muito de FPGAs. Serviços como Amazon AWS, Microsoft Azure, Google e Facebook são todos possíveis em parte por FPGAs.
Negociação de alta frequência
A negociação algorítmica no mercado de ações de alta frequência (HFT) tem tudo a ver com processar os números mais rapidamente do que a concorrência. As empresas que se envolvem nessas atividades fazem tudo ao seu alcance para diminuir a latência de seus pipelines de processamento.
Seus servidores ficam fisicamente próximos à bolsa de valores e eles investem no hardware de computador mais rápido que o dinheiro pode comprar. Quando a concorrência usa CPUs e GPUs, você recorre a FPGAs. Em seguida, eles podem executar a análise estatística dos dados de mercado recebidos de forma marginalmente mais rápida e ganhar mais dinheiro.
Mineração de criptomoeda
Os FPGAs experimentaram um renascimento entre a comunidade de TI mainstream nos últimos anos. Por causa do hype do Bitcoin, muitas pessoas comuns já ouviram falar sobre FPGAs.
A economia da mineração de criptomoedas tem tudo a ver com o gerenciamento da conta de eletricidade. A moeda tem que valer mais do que você pagou pela eletricidade para minerá-la para que ela seja lucrativa.
Uma solução FPGA personalizada geralmente é mais eficiente em termos de energia do que um algoritmo executado em uma CPU ou mesmo em uma GPU. Muitas placas de mineração de FPGA com financiamento coletivo surgiram nos últimos anos.
Exemplos de produtos que contêm FPGAs
FPGAs não são tão comumente encontrados em eletrônicos de consumo. Ainda assim, há muitos exemplos disso. Aqui estão alguns produtos que você já deve ter ouvido falar que contêm FPGAs.
HTC Vive
Este headset de RV usa três FPGAs Lattice, como podemos ver nesta desmontagem. Não está claro qual é o propósito dos FPGAs neste projeto.
No entanto, esses são dispositivos de capacidade relativamente baixa, portanto, um bom palpite é que é para controlar uma interface ou ler um sensor, em vez de processamento de imagem.
Google Waymo
O carro autônomo do Google funciona com tecnologia FPGA. O projeto ainda está em fase de desenvolvimento, e os FPGAs são ótimos para prototipagem.
O artigo referenciado afirma que eles usam FPGAs para “processamento de sensores”, que podem ser os sistemas LiDAR que o carro possui.
iPhone 7
É incomum encontrar um FPGA em um telefone celular. Um ASIC geralmente é mais econômico devido às grandes quantidades de produção de telefones celulares. Apesar disso, o iPhone 7 usa um FPGA.
O artigo vinculado sugere que pode ser para algum novo recurso de inteligência artificial (IA). Talvez a Apple não tenha terminado com esse hardware específico e precise da possibilidade de enviar atualizações de hardware over-the-air (OTA) para este chip. Esse é um uso inovador de um FPGA.
Apple Afterburner
A placa aceleradora gráfica de ponta da Apple pode renderizar até 3 streams de vídeo de 8k ProRes RAM simultaneamente, em tempo real.
Curiosamente, ele usa um FPGA para realizar o trabalho pesado. O processamento de imagens é algo que os FPGAs fazem muito bem. Talvez eles precisassem criar uma solução personalizada porque as GPUs não conseguiam lidar com vídeo de 8k com rapidez suficiente.
Nvidia G-Sync
A placa Nvidia G-Sync sincroniza a saída da placa gráfica com a taxa de atualização da tela. Se você é um jogador de PC, já deve ter ouvido falar do V-Sync, que é a solução de software da Nvidia para esse problema.
A sincronização de taxa de quadros é um exemplo de uma tarefa que é fácil de executar em hardware, mas consome muita CPU quando feita com software.
Osciloscópio de Silêncio
O Sigilent SDS 1202X-E é um osciloscópio de 2 + 1 canais de 200 MHz. Uma desmontagem do EEVblog revela o que o impulsiona, uma CPU/FPGA híbrida Xilinx Zynq-7000.
O chip Zynq-7000 possui dois processadores ARM rígidos e uma parte FPGA programável no chip. A vantagem de usar o Zynq é que você pode executar o Linux na parte do sistema de processamento (PS). Com o Linux, você pode usar todas as bibliotecas GUI de alto nível para criar uma bela interface de usuário.
Ao mesmo tempo, você pode amostrar dados do sensor em alta velocidade usando lógica personalizada na parte lógica programável (PL) do chip. A interconexão entre a parte PS e PL tem uma largura de banda muito alta, pois está dentro da mesma matriz de silício. No geral, um excelente chip para criar aplicativos de Internet das Coisas (IoT) de alto desempenho.
UltraMiner FPGA
O UltraMiner é um dos muitos mineradores de FPGA com financiamento coletivo que apareceram ao longo dos anos. A campanha de financiamento ainda está em andamento no momento da redação deste artigo.
De acordo com os pontos de venda na página do projeto, ele tem quatro vezes a eficiência energética de um minerador de GPU.
Hora do seixo
O Pebble é um smartwatch antigo que recebeu financiamento coletivo por meio de uma campanha do Kickstarter em 2012. Ele usa um pequeno FPGA para controlar o LCD.
Se você tem um Pebble, você anda com um FPGA no pulso o tempo todo. O firmware para controlar o Pebble é de código aberto, o código para fazer a interface com o FPGA está em seu repositório no GitHub.
Quer aprender a programar um FPGA?
Para criar lógica para um FPGA, você precisa usar uma linguagem de descrição de hardware (HDL). Este blog é especializado em VHDL, que é um dos dois HDLs populares.
Você pode experimentar a programação VHDL em seu computador no conforto de sua casa gratuitamente. Todo desenvolvimento de VHDL começa em um simulador, e os Tutoriais Básicos de VHDL gratuitos ensinam como simular usando a edição de estudante do simulador de VHDL mais popular:ModelSim.
Recursos de aprendizagem VHDLwhiz
GRATUITO: Tutoriais básicos de VHDL
PREMIUM: Curso de Matriz de Pontos FPGA e VHDL
FPGA e VHDL Fast-Track:Hands-On para iniciantes absolutos
Você está familiarizado com programação, mas é novo em VHDL?
Você precisa de uma breve introdução a este assunto desconhecido?
Sua agenda está cheia sem tempo para estudar?
Entenda o básico do desenvolvimento de FPGA usando VHDL em poucas noites! Este curso é para profissionais de TI e estudantes que precisam de um rápido resumo do assunto. Com este curso e a placa de desenvolvimento Lattice iCEstick de baixo custo, você desenvolverá hardware real em poucas horas.
Clique aqui para ler mais e se inscrever:
FPGA e VHDL Fast-Track:prático para iniciantes absolutos
VHDL
- Tutorial - Introdução ao VHDL
- Introdução ao Verilog
- Uma introdução à estereolitografia (SLA)
- Uma introdução à liga de titânio
- Introdução aos Circuitos DC
- Introdução aos circuitos CA
- Introdução ao SPICE
- Introdução à Álgebra Booleana
- O que você deve saber sobre controladores lógicos programáveis
- Field Programmable Gate Array (FPGA) vs. Microcontrolador — Qual é a diferença?