Categorías: Circuitos microcontroladores
Cantidad de vistas: 21445
Comentarios sobre el artículo: 0
¿Qué es FPGA, un lenguaje simple para principiantes?
¿Con qué está asociada la electrónica digital? En primer lugar, con elementos lógicos AND, OR, NOT. Además, los registros de desplazamiento, decodificadores, multiplexores, etc., quedan en la memoria. Sin embargo, a medida que la complejidad de los dispositivos electrónicos y la tendencia hacia la miniaturización aumentan, la creación de dispositivos basados en circuitos integrados (IC) a partir de los componentes anteriores se volvió más difícil, los IC personalizados de la topología y los circuitos requeridos demostraron ser valiosos solo cuando el dispositivo se replicó en grandes cantidades, en otros casos fue excesivamente costoso.
La salida de esta situación fue el desarrollo de circuitos lógicos integrados programables (abreviados como FPGA, abreviatura extranjera como dispositivo lógico programable, PLD). Qué es y dónde se usa lo diremos en este artículo.

Diferencias de microcontroladores
Con la palabra "programable", la mayoría de los principiantes se asocian con microcontroladores. A pesar de que también están programados, los FPGA son un dispositivo completamente diferente.
Para los desarrolladores de microcontroladores, hay disponible un conjunto fijo de soluciones y herramientas que son inherentes a un chip en particular, no funcionará de ninguna manera para retirarse de la arquitectura. Se le proporciona un conjunto de comandos con los que realiza operaciones de interacción con el entorno, leyendo datos de entradas digitales y analógicas y enviando señales a los actuadores utilizando salidas.
Además, puede realizar cálculos, guardar datos en registros o ROM, así como operar con datos almacenados en la memoria del microcontrolador. En esto, en esencia, está el propósito y las características de trabajar con microcontroladores.

Los circuitos integrados lógicos programables (FPGA) son diferentes en que al programar un dispositivo, usted mismo crea una arquitectura a partir de elementos lógicos básicos. Por lo tanto, obtienes alta velocidad y flexibilidad del chip. Esto hace posible, sin cambiar un chip, realizar una serie de proyectos.
En general, el dispositivo interno FPGA se puede dividir en tres grupos principales:
1. Una matriz de elementos lógicos (macrocélulas, bloques lógicos).
2. Bloques de entrada / salida (IO).
3. Líneas de comunicación entre ellos y el dispositivo que controla estas conexiones.
Sin embargo, dicha estructuración es muy generalizada, consideraremos este problema con más detalle a continuación.
Mediante la programación, conecta los elementos de la misma manera que lo haría, ensamblando un dispositivo a partir de elementos individuales y conectando sus entradas y salidas con conductores.
Nota:
La principal diferencia entre los FPGA y los microcontroladores es que en un microcontrolador no se pueden cambiar las conexiones internas entre los elementos más simples, y programarlos y trabajar con ellos se basa en registrar conexiones.
La elección de los microcontroladores se basa en muchos criterios, como:
-
Velocidad y velocidad del reloj;
-
La cantidad de ROM y RAM;
-
El número de entradas y salidas.
Otras características funcionales y periféricos, como soporte para líneas y protocolos de comunicación (I2C, un cable, señal PWM, etc.).
Al elegir un FPGA, el criterio principal es el número de bloques programables; deberían ser suficientes para implementar la tarea.
Dependiendo del FPGA específico, el número de bloques puede variar ampliamente, y el costo también cambia.
El microcontrolador realiza secuencialmente todas las operaciones prescritas en su programa, mientras que los bloques FPGA realizan la tarea en paralelo e independientemente uno del otro, por lo tanto, comparar estos dispositivos por frecuencia de reloj no es práctico. Su principio de funcionamiento es muy diferente.

Especie
Actualmente son relevantes dos tipos principales de FPGA:
1. CPLD (Dispositivo lógico programable complejo - Circuito integrado lógico programable, de hecho, esto es FPGA en su sentido clásico). Por lo general, tiene una memoria no volátil incorporada en la que se carga el firmware.
La estructura interna está construida sobre una matriz de macrocélulas o bloques lógicos, y el número de elementos en ellos se encuentra en el rango de cientos y miles de piezas. Debido a su relativa simplicidad, son más baratos que el siguiente tipo de lógica programable. Todo esto lleva al hecho de que CPLD se usa principalmente en circuitos donde se necesitan alta velocidad y una gran cantidad de salidas, mientras se realizan tareas simples.
2. FPGA (matriz de puerta programable en campo - matriz de puerta programable por el usuario, sin embargo, a menudo se la conoce como FPGA) - los dispositivos más desarrollados y complejos en comparación con CPLD, están construidos sobre bloques lógicos con conmutación flexible y contienen una mayor cantidad de elementos (decenas o cientos de miles de piezas).
El firmware generalmente se almacena en una memoria externa no volátil. Además de los elementos lógicos más simples, los FPGA pueden contener bloques listos para realizar cualquier operación, por ejemplo, bloques de procesamiento de señales DSP. Todo esto le permite implementar un procesador, dispositivos de procesamiento de señales y otros dispositivos complejos.
Interesante
Aunque, de hecho, la presencia de memoria no volátil no hace lógica programable CPLD. Esto es parcialmente engañoso. La principal diferencia entre CPLD y FPGA es la estructura interna.

El CPLD interno se muestra con más detalle en la figura a continuación.

Y el esquema aproximado de su macrocelda se ve así:

La macrocelda consta de multiplexores programables, disparadores (uno o más) y forma un grupo de señales de salida FB en varias versiones.
El siguiente es otro ejemplo: un diagrama de bloques de la familia de chips CPLD MAX II de la firma Altera.

Y el plan estructural de los chips de la misma familia.

Las llantas intermedias para macrocélulas se asignan usando un nodo como un distribuidor en inglés. suena como un asignador lógico, que se muestra en el diagrama a continuación, también muestra la matriz de conmutación (grupo de enrutamiento global), y en las macrocélulas de salida (macrocélulas) tiene dos retroalimentaciones.

Las salidas externas del microcircuito están conectadas a las salidas de las macrocélulas a través de otro bloque (matriz) - ORP (Output Routing Pool), tenga en cuenta que a través de él la lógica INPUT está conectada a GRP, como se muestra en la siguiente ilustración.
Nota:
Algunos CPLD han llamado Entradas directas (Entrada directa): están conectadas directamente a las entradas de las celdas, lo que reduce los retrasos.
La estructura FPGA tiene la forma:

-
L - bloque configurable lógico;
-
S (bloque de sustitución): un bloque de sustitución, recibe un cierto número de bits por movimiento, se convierte, de acuerdo con cierto algoritmo, y genera un número diferente de bits en la salida. En otras palabras, un decodificador, un encriptador y un conmutador.
-
C (bloque de conexión) - bloque de conexión.
Diagrama de bloque S:

Programacion
HDL (lenguaje de descripción de hardware) - este es el lenguaje con el que se programan los FPGA. Popular y versátil son Verilog HDL y VHDL. Existen otros idiomas, como los específicos de los fabricantes, como AHDL para productos ALTERA.
La programación gráfica está disponible para los desarrolladores que trabajan con FPGA. Es decir, simplemente puede dibujar circuitos lógicos o combinar código con gráficos. Este último se llama método de desarrollo modular, cuando se prescriben módulos específicos, y el módulo superior, en el que todo se combina, se programa gráficamente.
Ejemplos de fabricantes y series populares.
Al momento de escribir, los más famosos son los productos de dos fabricantes.
-
Altera (fundada en 1983);
-
Xilinx (fundada en 1984).

Altera tiene varias series principales de lógica programable:
-
MAX, MAX II, MAX IIZ;
-
7000S;
-
3000A;
-
MAX V;
-
Ciclón
-
Arria
-
Stratix
Consideremos cada uno de ellos con más detalle. En las tablas a continuación, puede ver información general sobre los microcircuitos de la familia.


Altera 3 CPLD CPLD:
-
MAX es un CPLD para uso en dispositivos móviles, las características distintivas son el consumo de energía relativamente bajo y la disipación de calor. Dependiendo de la complejidad y años de lanzamiento, se distinguen las siguientes modificaciones:
-
7000S está desactualizado hasta la fecha, fue lanzado en 1995.
-
3000A: lanzado en 2002, está fabricado con tecnología de 300 nm. Consiste en un pequeño número de macrocélulas (32-512)
-
MAX II lanzado en 2004, fabricado con tecnología de 100 nm, consta de una mayor cantidad de unidades (240-2210) que funcionan a frecuencias de hasta 304 MHz. El producto está hecho en cajas de tipo TQFP 0.5 mill con 100 o más patas.
-
MAX IIZ - 2007, la característica principal es el consumo de energía reducido; este es un punto positivo, sin embargo, las frecuencias se reducen a 152 MHz. Estos microcircuitos son alimentados desde 1.8 V.
-
MAX V - año 2010. Se produce de acuerdo con la tecnología de 180 nm, puede contener de 40 a 2210 bloques y operar a frecuencias de hasta 152MHz o 304MHz; depende de la cantidad de bloques.

FPGA:
-
Cyclone es un chip de tipo FPGA económico. Hay cinco generaciones que están marcadas con números griegos (de I a V, respectivamente). La primera generación se lanzó en 2002, producida con tecnología de 180 nm, y la quinta generación se lanzó en 2011 y fabricada con tecnología de 28 nm. Vale la pena señalar que todas las generaciones siguen siendo relevantes.
-
Arria: también se refiere al FPGA de rango medio.
-
Stratix: potentes FPGA.
A continuación se muestran las tablas dinámicas programables Altera FPGA.



Y la tabla completa en el enlace:
El fabricante Xilinx CPLD presentó en serie:
-
XC9500XL de 36-288 macrocélulas. Operan a frecuencias de hasta 178 MHz y modelan a 288 macrocélulas a 208 MHz. Se lleva a cabo como en pequeños casos con 44 pines (cables) a una distancia de 0,8 mm entre sí; estos casos se consideran fáciles de soldar. También disponible con 64 y 100 patas en incrementos de 0,5 mm, así como modelos en gabinetes tipo PLCC.
-
La serie CoolRunner-II es un CPLD energéticamente eficiente pero productivo. Una característica está alimentada por un voltaje de 1.8V, las entradas y salidas están diseñadas para operar en el rango de 1.5-3.3V. Se componen de 32-512 macrocélulas y se producen utilizando tecnología de 180 nm. Dependiendo del número de celdas, funcionan en el rango de frecuencia 179-323 MHz, y cuanto más pequeñas son las celdas, más frecuencia pueden trabajar en este caso. Se encuentran en diferentes casos, incluso fácilmente soldables, como en los microcircuitos de la serie considerada anteriormente.
La compañía Xilinx no pasó y FPGA:
-
Spartan-6: consta de bloques lógicos de 6 entradas, su número se encuentra en el rango de 3840-147443 piezas. Es interesante porque pueden contener controladores para el intercambio de datos como DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA, etc.
-
La serie Vitrex-7 es compleja, los microcircuitos pueden contener hasta 2,000,000 de bloques lógicos y 1,200 contactos.
A continuación puede encontrar las tablas de resumen con las especificaciones CPLD y FPGA de las series Xilinx 6 y 7, así como el Zynq-7000.





Conclusión
FPGA y PPVM también son producidos por otras compañías como Lattice Semiconductor (en 2002 comenzó a producir FPGA), Actel y sus conocidos lectores de nuestro sitio. microcontroladores ATMEL y muchos otros En la lógica programable, puede implementar varios dispositivos, implementar cálculos paralelos independientes entre sí en un dispositivo, sin embargo, para proyectos domésticos, su compra a menudo no está justificada financieramente, pero al mismo tiempo es bastante razonable en una escala de producción, como alternativa a los circuitos integrados personalizados.
P.S.Mire el video, en él verá un ejemplo de la implementación de la consola de juegos Nintendo en la FPGA:
Ver también en electro-es.tomathouse.com
: