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

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

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

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

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

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

É 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

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

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

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 artigo referenciado afirma que eles usam FPGAs para “processamento de sensores”, que podem ser os sistemas LiDAR que o carro possui.
iPhone 7

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

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 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 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

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?