FPGA vs microcontroladores: outra abordagem para design embarcado

FPGA vs microcontroladores: otra aproximación al diseño integrado

La mayoría de los ingenieros comienzan su formación en sistemas integrados aprendiendo sobre microcontroladores. Los microcontroladores envuelven un sistema informático en miniatura completo en un único circuito integrado. La CPU, la RAM, la ROM y los periféricos de entrada/salida se encuentran en un único sistema del tamaño de un pulgar en un chip (SoC), el circuito integrado que comprende todos o la mayoría de los componentes electrónicos.

Además de los componentes, otra parte del diseño embebido está relacionada con el desarrollo de software. Los microcontroladores (y microprocesadores) tienen un conjunto de instrucciones que permanecen fijos en tamaño y funcionamiento, lo que significa que un ingeniero utiliza las mismas instrucciones a través del lenguaje ensamblador o C integrado para resolver una tarea informática, generalmente para una aplicación del mundo real.

La buena noticia es que trabajar con microcontroladores es relativamente sencillo de aprender, dada la experiencia con lenguajes de programación. Versiones populares como AVR, 8051, PIC y ARM exponen a los ingenieros al aspecto de desarrollo de software de los sistemas integrados. Entonces, hay varias opciones.

Sin embargo, también existe otro enfoque para el desarrollo de software integrado que los microcontroladores no son capaces de realizar: el diseño integrado basado en hardware. Para ello, se requiere una matriz de puertas programables en campo (FPGA).

Los FPGA fueron inventados por Xilinx en 1984. Son circuitos integrados que contienen millones de puertas lógicas que están configuradas electrónicamente para realizar tareas específicas (es decir, las puertas son programables en campo).

Comparemos una FPGA con una computadora. La computadora (que puede ser un microcontrolador, microprocesador o procesador gráfico) es un circuito electrónico digital que realiza tareas basándose en un conjunto de instrucciones. Estas instrucciones contienen códigos de máquina que el circuito digital de la computadora implementa en datos, donde los datos se almacenan y manipulan en registros o chips de memoria.

Alternativamente, una FPGA lleva el diseño al hardware, de modo que un ingeniero puede diseñar un dispositivo informático (simple) a nivel de arquitectura para realizar tareas o aplicaciones específicas.

Matriz de puertas programables en campo (FPGA)

Microcontroladores versus FPGA

Aunque una FPGA se utiliza a menudo para diseñar circuitos digitales para realizar tareas computacionales simples, no se compara con un microcontrolador en términos de computación. Los microcontroladores y microprocesadores son verdaderos dispositivos informáticos con una arquitectura compleja.

Una FPGA es comparable y puede funcionar con circuitos integrados de aplicaciones específicas (ASIC). Un ASIC está personalizado para una tarea específica y no para uso general. De hecho, cualquier función ASIC se puede diseñar y fabricar a medida en una FPGA.

Mientras que los microcontroladores permiten a los ingenieros con experiencia en ensamblaje o software de lenguaje de programación de alto nivel diseñar software para una computadora, una FPGA permite el diseño de un dispositivo informático simple. Este diseño integrado basado en hardware requiere un conocimiento detallado de los circuitos digitales y la arquitectura informática.

Algunas diferencias en el idioma:

  • Los microcontroladores se programan utilizando un lenguaje ensamblador o de alto nivel (como 'C'), que se convierte en código de máquina para su ejecución en una CPU.
  • Los chips FPGA se programan utilizando Verilog o el lenguaje de descripción de hardware de circuito integrado de alta velocidad (VHDL). VHDL se convierte en bloques lógicos digitales fabricados en chips FPGA para diseñar una computadora personalizada para aplicaciones específicas. Utilizando VHDL o Verilog, un ingeniero diseña la ruta de datos y el hardware de la unidad lógica aritmética (ALU) desde el nivel raíz. Incluso se puede diseñar un microcontrolador en una FPGA, siempre que haya suficientes bloques lógicos para respaldar el diseño.

Tiene sentido aprender primero sobre microcontroladores y microprocesadores porque es importante comprender cómo funcionan las computadoras y cómo están programadas para realizar tareas específicas. Los microcontroladores, FPGA y CPLD (dispositivos lógicos programables complejos) son sistemas integrados independientes con sus propias ventajas y desventajas.

Los FPGA extienden este conocimiento a los circuitos de hardware, con conocimiento sobre cómo se construyen las computadoras.

Ventajas de los FPGA
Los FPGA no sólo sirven como una forma de aprender sobre diseño digital y arquitectura informática, sino que estos chips también ofrecen aplicaciones del mundo real en ingeniería de sistemas integrados. Proporcionan una alternativa a los ASIC, con ciertas ventajas…

Subprocesos múltiples. Los FPGA pueden procesar múltiples instrucciones al mismo tiempo o en paralelo. Esta es una gran ventaja sobre los microcontroladores, que sólo pueden ejecutar una instrucción a la vez, de forma secuencial. Esto significa que los FPGA suelen ser mucho más rápidos en las tareas de procesamiento. Debido a que estos procesos están codificados lógicamente a nivel de hardware, los chips FPGA son ideales para aplicaciones dedicadas o especializadas, incluido el preprocesamiento de datos de sensores, criptografía, diseño de circuitos lógicos, aplicaciones de audio digital, transmisión de video y más.

Los microcontroladores, por otro lado, tienen una arquitectura genérica con un conjunto de instrucciones dedicado, lo que los hace más adecuados para resolver tareas computacionales complejas a velocidades más lentas que pueden requerir interfaces estándar.

En general, los FPGA tienen una ventaja cuando el volumen de datos a procesar en una aplicación es alto, gracias a esta característica de subprocesos múltiples. Hoy en día, las placas FPGA están disponibles con CPU integradas, por lo que solo se necesita la lógica de diseño para el procesamiento específico de la aplicación.

Flexibilidad y alcance del diseño. Cualquier circuito digital, independientemente de su complejidad, se puede diseñar en una FPGA, siempre que el chip contenga una cantidad suficiente de bloques lógicos para emular el diseño. Entonces, técnicamente, los FPGA se pueden usar para diseñar cualquier periférico o realizar cualquier tarea computacional.

También se pueden programar para tener múltiples temporizadores, UART de canal o generadores de modulación de ancho de pulso (PWM) de canal, a diferencia de los microcontroladores, que no ofrecen esta flexibilidad. Esto se debe a que no hay forma de cambiar el conjunto de chips de un microcontrolador para adaptarlo a una aplicación. En cambio, tienen una unidad informática genérica y periféricos integrados (como temporizadores, GPIO, interrupciones e interfaces serie).

Esta flexibilidad de los FPGA brinda a los ingenieros mayor poder para proyectos especializados.

Factor analógico. Normalmente, en cualquier sistema integrado, el controlador o procesador está acoplado con sensores que proporcionan entrada analógica o actuadores que requieren salida analógica del controlador o procesador.

Los conjuntos analógicos programables en campo (FPAA) también son una opción que permite a los diseñadores programar circuitos analógicos complejos. Muchos chips FPGA incluyen FPAA, por lo que el chip se puede programar en un circuito digital y procesar señales analógicas. Estos chips de señal mixta contienen periféricos de convertidor analógico a digital (ADC) o convertidor de digital a analógico (DAC), junto con bloques de acondicionamiento de señal analógica.

Los pines de salida de dichos dispositivos se pueden programar para la fuerza motriz y la velocidad de giro según lo requiera la carga en ese pin. Este es otro ejemplo de cómo los FPGA ofrecen mayor flexibilidad, con la capacidad de ofrecer programación analógica para aplicaciones específicas.

Reutilizar. Los FPGA se pueden reprogramar para emular cualquier otro circuito digital (o analógico), por lo que un circuito nunca es fijo. Cuando se enciende el chip, el diseño digital de acuerdo con los datos de configuración se carga en el chip. Esto sucede cada vez que se enciende el chip.

Los datos de configuración se pueden cambiar para el próximo partido con un nuevo diseño. Debido a que el chip es reutilizable, un ingeniero puede experimentar infinitamente con diferentes diseños digitales en el mismo chip.

Solución de un solo chip. Los FPGA ofrecen una solución de un solo chip para una aplicación. Esto es diferente de los microcontroladores que normalmente deben interactuar con otros periféricos (que pueden no estar integrados), interfaces o ASIC.

Procesamiento en tiempo real. Los FPGA no son circuitos integrados informáticos genéricos, pero se utilizan para diseñar un dispositivo informático dedicado en el chip. A diferencia de los microcontroladores, que ejecutan un programa (código de máquina), las rutas de datos y la ALU se fabrican en la FPGA para resolver una tarea computacional.

Esto significa que en lugar de ejecutar un programa, la FPGA está programada para operar para una tarea específica. Esta ejecución de lógica a nivel de hardware permite el procesamiento de datos e información en tiempo real. Esta es la razón por la que los FPGA se utilizan a menudo para aplicaciones críticas de alta velocidad donde un microcontrolador puede fallar debido a su dependencia del código para ejecutarse en una arquitectura fija con un conjunto de instrucciones limitado.

~

Dadas estas ventajas, los FPGA son ideales para el procesamiento paralelo de alta velocidad donde el volumen de datos a procesar es grande o el chip de procesamiento requiere periféricos personalizados, salida analógica configurable o una aplicación dedicada en el tiempo crítico (que de otra manera no sería posible). en una CPU genérica).

Los FPGA brindan acceso a diseños integrados complejos que de otro modo solo estarían disponibles a un alto costo de ingeniería. Este chip es como una mini fundición de semiconductores en una placa del tamaño de una tarjeta de crédito.

En aplicaciones del mundo real, los FPGA se utilizan en sectores verticales específicos donde el volumen de producción es bajo. Se utiliza ampliamente en la creación de prototipos de diseños ASIC y, por lo general, ofrece un tiempo de comercialización rápido sin un proceso de fabricación prolongado.

Las aplicaciones comunes incluyen procesamiento de señales digitales, procesamiento de imágenes, bioinformática, criptografía, radios diseñadas por software, imágenes médicas, reconocimiento de voz, telecomunicaciones, centros de datos, electrónica aeroespacial y sistemas de seguridad.

En comparación, los microcontroladores se utilizan en aplicaciones integradas generales, como electrónica automotriz, de consumo e industrial, sistemas de comunicación y otros.

Desventajas de los FPGA
Existen algunas desventajas importantes relacionadas con los FPGA, según la aplicación. Estos incluyen complejidad, requisitos de alta potencia y precio.

Costo : las placas FPGA son más caras que los microcontroladores (alrededor de $50 en comparación con $10 o menos). Esta es una de las razones por las que los chips FPGA normalmente no se analizan al comienzo de un curso de capacitación en diseño integrado.

Sin embargo, los FPGA son reutilizables, lo que les confiere un mayor valor a largo plazo, especialmente para fines de investigación y desarrollo o creación de prototipos. En otros casos, a pesar de las bajas velocidades y la arquitectura genérica de los microcontroladores, suelen ser simplemente más asequibles.

Placa de desarrollo FPGA

Una placa de desarrollo FPGA.

Requisito de alta potencia. La mayoría de las placas FPGA funcionan con un backplane de 48 V. Desafortunadamente, el alto requisito de energía las hace inadecuadas para muchas aplicaciones integradas. Compare esto con las placas de microcontrolador, que normalmente solo requieren un suministro de 5 o 3,3 V para funcionar. Son la opción obvia para el diseño de cualquier dispositivo integrado portátil que funcione con baterías.

Volatilidad. El diseño digital de una FPGA se le pasa a través de datos de configuración. Cuando se enciende, la tarjeta se configura adecuadamente y comienza a funcionar. Los datos de configuración deben almacenarse en la memoria flash en modo maestro o pasarse a través de un procesador a través de una interfaz de escaneo de límites (JTAG) en modo esclavo. Estos datos se pierden cuando se apaga la tarjeta.

La naturaleza volátil de la mayoría de los FPGA los hace inadecuados para aplicaciones donde existe riesgo de pérdida o interrupción de energía.

Tiempo de inicio. Los FPGA deben cargar datos de configuración cada vez que se encienden. Esto agrega un tiempo de inicio significativo a su operación. Sin embargo, una vez que se cargan los datos de configuración, una placa FPGA normalmente funciona mucho más rápido que un microcontrolador.

El tiempo de inicio puede ser un problema para ciertas aplicaciones críticas que requieren una acción inmediata tras la activación. Los FPGA no son adecuados para aplicaciones donde el dispositivo integrado se enciende y apaga con frecuencia. Tampoco es posible mantener estos chips encendidos continuamente en un dispositivo integrado debido a su alto consumo de energía.

Alto número de pines. En general, la mayoría de los FPGA tienen múltiples pines. Por lo tanto, estos chips no son ideales para espacios pequeños o aplicaciones integradas limitadas donde el procesador o el controlador informático debe ser compacto. Por el contrario, existen muchos microcontroladores con ocho pines o menos que encajan fácilmente en dispositivos pequeños.

Complejidad. Trabajar con FPGA requiere conocimientos detallados sobre diseño digital y arquitectura informática. No es tan sencillo como con los microcontroladores. Los lenguajes para FPGA (VHDL o Verilog) son bastante complejos de aprender en comparación con la programación de alto nivel o el lenguaje ensamblador necesarios para el desarrollo de software.

Aunque la mayoría de las herramientas de desarrollo de FPGA están disponibles gratuitamente, su uso es complejo y elegir la placa ideal puede resultar complicado. También existen muchas complicaciones, trampas y precauciones en el diseño digital que sólo pueden aprenderse con el tiempo y con experiencia práctica.

Limitaciones del proyecto. Sólo es posible interconectar los bloques lógicos de un proyecto digital con FPGA. Tampoco hay control a nivel de puerta y, por lo general, la síntesis no es estándar. Sin embargo, los FPGA son excelentes para pruebas arquitectónicas o para un diseño ASIC en etapa inicial.

Durabilidad. Los circuitos integrados FPGA tienen una vida útil corta en comparación con los microcontroladores. Si bien los microcontroladores pueden durar décadas en un dispositivo, un chip FPGA en un dispositivo integrado generalmente requiere reemplazo cada dos a cinco años.

El alto costo, el número de pines y los requisitos de energía, así como la complejidad, la volatilidad y las limitaciones de diseño han hecho que los FPGA sean menos comunes en aplicaciones integradas. Actualmente, solo se utilizan en dispositivos de alta potencia que requieren una arquitectura dedicada, periféricos personalizados o la ejecución de código de máquina crítico mediante procesamiento paralelo.

Conclusión
Los FPGA tienen ventajas y desventajas. Depende de la aplicación. En general, brindan a los ingenieros un mayor acceso al diseño de hardware y la capacidad de explorar circuitos integrados, lo cual es imposible con los microcontroladores. Pero esto requiere un cierto nivel de conocimiento y experiencia. Puede que valga la pena adquirir un conocimiento profundo de la ingeniería de diseño integrado.

Mientras que los microcontroladores y procesadores brindan experiencia en software, los FPGA brindan experiencia en hardware. Y al igual que después de crear código desde cero, la experiencia hace que todo sea más fácil con el tiempo.

Conteúdo Relacionado

¿Cuál es el papel de los sensores automotrices en los vehículos modernos?
En cada vehículo hay una red de sensores integrada...
Cómo elegir un controlador de bicicleta eléctrica
El controlador del motor es uno de los componentes...
Cómo solucionar problemas comunes de ESP32-CAM
ESP32-CAM es un módulo de cámara compacto que combina...
Una guía de estándares USB desde 1.0 hasta USB4
La evolución de los estándares USB ha sido fundamental...
Schurter mejora la serie de selectores de voltaje con revestimiento de plata
SCHURTER anuncia una mejora de su popular serie SWZ...
Los versátiles tubos de luz rígidos de 3 mm de VCC, que se ofrecen en versión de montaje inverso
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A interface serial PCI fornece conectividade confiável em ambientes extremos
A Sealevel Systems anuncia o lançamento da Interface Serial...
STMicroelectronics expande portfólio de conversão de energia com diodos Trench Schottky de 100 V
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
O que são Sistemas Globais de Navegação por Satélite (GNSS) e como são usados?
Determinar uma localização precisa é necessário em várias indústrias...
O conversor GaN de 50 W da STMicroelectronics permite projetos de energia de alta eficiência
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
Samsung e Red Hat farão parceria em software de memória de próxima geração
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
Primeiro MPU single-core com interface de câmera MIPI CSI-2 e áudio
O mercado embarcado tem uma necessidade de soluções de...
A influência de diferentes enrolamentos de armadura CC no desempenho
O impacto dos enrolamentos da armadura CC no desempenho...
Decodificación fluida en motor de inducción para mejor rendimiento.
Probablemente se haya encontrado con el término " resistencia...
Comprensión de los aisladores de soporte en sistemas eléctricos
Probablemente tenga un aislante de soporte si ha notado...
Explore Stay Insulator: seguridad, instalación y mantenimiento
Probablemente haya visto un aislante colocado en postes de...
Más seguridad y eficiencia con el aislador de grilletes
Probablemente hayas visto aisladores de grillete entronizados en postes...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.