Categorias: Circuitos de microcontrolador
Número de visualizações: 21445
Comentários sobre o artigo: 0

O que é FPGA uma linguagem simples para iniciantes

 

Com o que a eletrônica digital está associada? Primeiro de tudo, com elementos lógicos AND, OR, NOT. Além disso, registradores de deslocamento, decodificadores, multiplexadores etc. entram na memória. No entanto, à medida que a complexidade dos dispositivos eletrônicos e a tendência para a miniaturização aumentam, a criação de dispositivos baseados em circuitos integrados (ICs) a partir dos componentes acima se torna mais difícil, os ICs personalizados da topologia e do circuito exigidos só valem a pena quando o dispositivo é replicado em grande número; em outros casos, é excessivamente caro.

A saída dessa situação foi o desenvolvimento de circuitos lógicos integrados programáveis ​​(abreviado como FPGA, abreviação estrangeira como dispositivo lógico programável, PLD). O que é e onde é usado, falaremos neste artigo.

O que é FPGA uma linguagem simples para iniciantes

Diferenças dos microcontroladores

Com a palavra "programável", a maioria dos iniciantes associa com microcontroladores. Apesar de também serem programados, os FPGAs são um dispositivo completamente diferente.

Para desenvolvedores de microcontroladores, está disponível um conjunto fixo de soluções e ferramentas inerentes a um chip em particular, que não funcionará de maneira alguma para se afastar da arquitetura. Você recebe um conjunto de comandos com os quais realiza operações de interação com o ambiente, lendo dados de entradas digitais e analógicas e enviando sinais para atuadores usando saídas.

Além disso, você pode realizar cálculos, salvar dados em registradores ou ROMs, bem como operar com dados que apareceram na memória do microcontrolador. Sobre isso, em essência, está o objetivo e os recursos de trabalhar com microcontroladores.

Programável 769; log 769; número inteiro 769; linho 769; ma (FPGA, dispositivo de lógica programável em inglês, PLD)

Os circuitos integrados de lógica programável (FPGAs) são diferentes, pois ao programar um dispositivo, você mesmo cria uma arquitetura a partir de elementos lógicos básicos. Assim, você obtém alta velocidade e flexibilidade do chip. Isso possibilita, sem alterar um chip, fazer vários projetos.

Geralmente, o dispositivo FPGA interno pode ser dividido em três grupos principais:

1. Uma matriz de elementos lógicos (macrocélulas, blocos lógicos).

2. Blocos de entrada / saída (IO).

3. Linhas de comunicação entre eles e o dispositivo que controla essas conexões.

No entanto, como essa estruturação é muito generalizada, consideraremos essa questão com mais detalhes abaixo.

Pela programação, você conecta os elementos da mesma maneira que faria, montando um dispositivo a partir de elementos individuais e conectando suas entradas e saídas aos condutores.

Nota:

A principal diferença entre FPGAs e microcontroladores é que no microcontrolador você não pode alterar as conexões internas entre os elementos mais simples, e a programação e o trabalho com eles se baseia no registro das conexões nos FPGAs.

A escolha dos microcontroladores é baseada em muitos critérios, como:

  • Velocidade e velocidade do relógio;

  • A quantidade de ROM e RAM;

  • O número de entradas e saídas.

Outros recursos funcionais e periféricos, como suporte para linhas e protocolos de comunicação (I2C, um fio, sinal PWM, etc.).

Ao escolher um FPGA, o principal critério é o número de blocos programáveis ​​- eles devem ser suficientes para implementar a tarefa.

Dependendo do FPGA específico, o número de blocos pode variar bastante, e o custo também muda.

O microcontrolador executa sequencialmente todas as operações prescritas em seu programa, enquanto os blocos FPGA realizam a tarefa em paralelo e independentemente um do outro, portanto, a comparação desses dispositivos pela freqüência do relógio é impraticável. O princípio de operação deles é muito diferente.

Tipos de FPGA

Espécies

Atualmente relevantes são dois tipos principais de FPGAs:


1. CPLD (dispositivo lógico programável complexo - circuito integrado de lógica programável, de fato, este é FPGA no seu sentido clássico). Geralmente, possui uma memória não volátil incorporada na qual o firmware é carregado.

A estrutura interna é construída sobre uma matriz de macrocélulas ou blocos lógicos, e o número de elementos neles está no intervalo de centenas e milhares de peças. Devido à sua relativa simplicidade, eles são mais baratos que o próximo tipo de lógica programável. Tudo isso leva ao fato de que o CPLD é usado principalmente em circuitos onde são necessárias alta velocidade e um grande número de saídas, enquanto executa tarefas simples.


2. FPGA (Matriz de portas programável em campo - Matriz de portas programável em campo, no entanto, é freqüentemente chamada de FPGA) - dispositivos mais desenvolvidos e complexos em comparação ao CPLD, são construídos em blocos lógicos com comutação flexível e contêm um número maior de elementos (dezenas ou centenas de milhares de peças).

O firmware é geralmente armazenado na memória externa não volátil. Além dos elementos lógicos mais simples, os FPGAs podem conter blocos prontos para executar qualquer operação, por exemplo, blocos de processamento de sinal DSP. Tudo isso permite implementar um processador, dispositivos de processamento de sinal e outros dispositivos complexos.


Interessante:

Embora, de fato, a presença de memória não volátil não crie CPLD lógico programável. Isso é parcialmente enganador. A principal diferença entre CPLD e FPGA é a estrutura interna.

A diferença entre CPLD e FPGA é a estrutura interna

O dispositivo interno de CPLD é mostrado em mais detalhes na figura abaixo.

Dispositivo interno de CPLD

E o esquema aproximado de sua macrocélula é assim:

Layout de macrocélula de CPLD de amostra

A macrocélula consiste em multiplexadores programáveis, dispara (um ou mais) e forma um grupo de sinais FB de saída em várias versões.

Abaixo está outro exemplo - um diagrama de blocos da família de chips CPLD do MAX II da Altera.

Fluxograma do Altera MAX II CPLD

E o plano estrutural dos chips da mesma família.

Diagrama de blocos do Altera MAX II CPLD

Os pneus intermediários são atribuídos às macrocélulas usando um nó como um distribuidor em inglês. soa como um Alocador Lógico, que é mostrado no diagrama abaixo, também mostra a matriz de comutação (Global Routing Pool) e, nas macrocélulas de saída (macrocélulas), têm dois feedbacks.

Distribuidor e matriz de comutação

As saídas externas do microcircuito são conectadas às saídas das macrocélulas através de outro bloco (matriz) - ORP (Output Routing Pool), observe que através dele a lógica INPUT é conectada ao GRP, como mostra a ilustração abaixo.

Nota:

Alguns CPLDs têm o chamado entradas diretas (entrada direta) - elas são conectadas diretamente às entradas das células, o que reduz os atrasos.

A estrutura FPGA tem a forma:

Estrutura FPGA
  • L - bloco configurável lógico;

  • S (bloco de substituição) - um bloco de substituição, recebe um certo número de bits por movimento, converte, de acordo com um determinado algoritmo, e gera um número diferente de bits na saída. Em outras palavras, um decodificador, um criptografador e um comutador.

  • C (bloco de conexão) - bloco de conexão.

Diagrama em bloco S:

 

Diagrama de bloco S



Programação


HDL (linguagem de descrição de hardware) - este é o idioma com o qual os FPGAs são programados. Populares e versáteis são o Verilog HDL e VHDL. Existem outros idiomas, como os específicos dos fabricantes, como o AHDL para produtos ALTERA.

A programação gráfica está disponível para desenvolvedores que trabalham com FPGAs. Ou seja, você pode simplesmente desenhar circuitos lógicos ou combinar código com gráficos. Este último é chamado de método de desenvolvimento modular, quando são prescritos módulos específicos, e o módulo superior, no qual tudo é combinado, é programado graficamente.


Exemplos de fabricantes e séries populares

No momento da redação deste artigo, os mais famosos são os produtos de dois fabricantes.

  • Altera (fundada em 1983);

  • Xilinx (Fundada em 1984).

Altera

Altera tem várias séries principais de lógica programável:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Ciclone

  • Arria;

  • Stratix

Vamos considerar cada um deles com mais detalhes. Nas tabelas abaixo, você vê informações gerais sobre os chips da família.

Características das principais séries de lógica programável
Características das principais séries de lógica programável

Altera 3 CPLD CPLD:

  • MAX é um CPLD para uso em dispositivos móveis, as características são o consumo de energia e a dissipação de calor relativamente baixos. Dependendo da complexidade e dos anos de lançamento, as seguintes modificações são diferenciadas:

  • O 7000S está desatualizado, foi lançado em 1995.

  • 3000A - lançado em 2002, é fabricado com tecnologia de 300 nm. Consiste em um pequeno número de macrocélulas (32-512)

  • O MAX II lançado em 2004, é fabricado com a tecnologia 100nm, consiste em um número maior de unidades (240-2210) operando em frequências de até 304 MHz. O produto é fabricado em caixas do tipo TQFP 0,5 moinho com 100 ou mais pernas.

  • MAX IIZ - 2007, a principal característica é o consumo reduzido de energia - este é um ponto positivo; no entanto, as frequências são reduzidas para 152 MHz. Estes microcircuitos são alimentados a partir de 1,8 V.

  • MAX V - 2010 ano. É produzido usando a tecnologia 180nm, pode conter de 40 a 2210 blocos e operar em frequências de até 152MHz ou 304MHz - depende do número de blocos.

Altera 3 CPLD CPLD

FPGA:

  • O Cyclone é um chip do tipo FPGA de orçamento. Existem cinco gerações marcadas com números gregos (de I a V, respectivamente). A primeira geração foi lançada em 2002, produzida com a tecnologia 180nm, e a quinta geração foi lançada em 2011 e fabricada com a tecnologia 28nm. Vale ressaltar que todas as gerações permanecem relevantes.

  • Arria - também se refere ao FPGA de gama média.

  • Stratix - FPGAs poderosos.

Abaixo estão as tabelas dinâmicas de lógica programável Altera FPGA.

Recursos FPGA
Recursos FPGA
Recursos FPGA

E a tabela completa no link:https://ptv.electricianexp.com/tablitsa.docx

O fabricante Xilinx CPLD apresentou em série:

  • XC9500XL de 36-288 macrocélulas. Eles operam em frequências de até 178 MHz e modelos em 288 macrocélulas em 208 MHz. É realizado como em casos pequenos com 44 pinos (condutores) a uma distância de 0,8 mm um do outro - esses casos são considerados de fácil soldagem. Também disponível com 64 e 100 pernas em incrementos de 0,5 mm, bem como modelos em gabinetes do tipo PLCC.

  • A série CoolRunner-II é um CPLD energeticamente eficiente e produtivo. Um recurso é alimentado por uma tensão de 1,8V, as entradas e saídas são projetadas para operar na faixa de 1,5-3,3V. Eles consistem em 32-512 macrocélulas e são produzidos usando a tecnologia 180nm. Dependendo do número de células, elas funcionam na faixa de frequências 179-323 MHz e, quanto menores as células, maior a frequência com que podem trabalhar nesse caso. Eles são encontrados em diferentes casos, inclusive de fácil soldagem, como nos microcircuitos da série considerada acima.

A empresa Xilinx não passou e o FPGA:

  • Spartan-6 - composto por blocos lógicos de 6 entradas, seu número está no intervalo de 3840-147443 peças. Interessante, pois eles podem conter controladores para troca de dados como DDR2, DDR3, PCI-EXPRESS, Ethernet de 1 Gbit, SerialATA etc ...

  • A série Vitrex-7 é complexa, os microcircuitos podem conter até 2.000.000 de blocos lógicos e 1.200 contatos.

Abaixo, você encontra as tabelas de resumo com as especificações de CPLD e FPGA das séries Xilinx 6 e 7, bem como o Zynq-7000.

Recursos FPGA das séries Xilinx 6 e 7
Características dos FPGAs Virtex-6
Características da família FPGA Spartan-6
Características da família FPGA Spartan-6
Recursos FPGA
Recursos FPGA

Conclusão

FPGAs e PPVMs também são produzidos por outras empresas como a Lattice Semiconductor (em 2002 começaram a produzir FPGAs), a Actel e seus conhecidos leitores de nosso site. microcontroladores ATMEL e muitos outros. Na lógica programável, você pode implementar vários dispositivos, implementar cálculos paralelos independentes um do outro em um dispositivo; no entanto, para projetos domésticos, sua compra geralmente é injustificada financeiramente, mas ao mesmo tempo bastante razoável em uma escala de produção, como uma alternativa aos circuitos integrados personalizados.

P.S.Assista ao vídeo, nele você verá um exemplo da implementação do console de jogos da Nintendo no FPGA:

Veja também em bgv.electricianexp.com:

  • Linguagem de Diagramas de Blocos Funcionais (FBD) e sua Aplicação
  • Tipos de circuitos integrados modernos - tipos de lógica, casos
  • Chips de lógica. Parte 1
  • Microcontroladores PIC para iniciantes
  • Controladores lógicos programáveis ​​para automação residencial

  •