Inicio - Blog

FPGA y microcontroladores: cuál es mejor para sus necesidades

Acerca de FPGA y microcontroladores, ¿Le gusta crear sus sistemas integrados e interactivos?

FPGA y microcontroladores son dos de los elementos más populares que utilizan los ingenieros eléctricos o los aficionados. Ambos pueden programarse para realizar determinadas funciones. Las posibilidades son infinitas si conoce los conceptos básicos, y es lo que veremos a continuación. Sin embargo, antes de empezar, ¿conoces las diferencias entre ellos?

Es crucial conocer las diferencias entre FPGA, microprocesadores y microcontroladores para elegir el correcto para su proyecto.

Hemos preparado una guía en profundidad que se centra en las diferencias de varios componentes para que su proyecto pueda tener éxito y resultar eficiente.

1. FPGA

1.1 ¿Qué es FPGA? 

FPGA es la abreviatura de Field-Programmable Gate Array y es un tipo de circuito integrado. Un ingeniero o diseñador puede programarlo después de la fabricación para realizar diversas tareas.

Los FPGA vienen con muchos bloques lógicos programables y marcos de interconexiones que se pueden reconfigurar para volver a cablear. Las puertas lógicas se pueden interconectar utilizando diferentes configuraciones, lo que les permite conectarse entre sí. Puede realizar funciones combinacionales complejas configurando los bloques lógicos y puertas lógicas seguras como XOR y AND.

También encontrará componentes de memoria en una FPGA, como bloques de memoria completos y flip-flops simples.

Los FPGA se encuentran en automóviles, centros de datos, equipos médicos, herramientas de procesamiento de imágenes y video, comunicaciones por cable, etc.

FPGA y microcontroladores

Imagen 1: FPGA vs. Microcontrolador 

1.2 Programación FPGA 

La programación FPGA es el proceso de configurar o reconfigurar el IC utilizando lenguajes descriptivos de hardware como VHDL y Verilog. A través de la programación, los FPGA pueden realizar funciones específicas conectando los bloques lógicos y las interconexiones. 

Lenguaje de programación FPGA

1.Lenguaje de programación para hardware llamado FPGA

2.Lenguaje de descripción, ya que está destinado a diseñar o describir hardware. Los dos lenguajes que se utilizan comúnmente para programar FPGA incluyen VHDL y Verilog HDL. 

VHDL

El Departamento de Defensa de EE. UU. Desarrolló VHDL, un lenguaje VHSIC (circuitos integrados de muy alta velocidad). El Departamento investigó el idioma durante la década de 1980 para crear circuitos de alta velocidad. Fue adoptado como estándar IEEE 1076 en el año 1987.

Se usa ampliamente para diseñar circuitos de señales analógicas mixtas y digitales. 

Verilog HDL

  • Warmke, C.-L, creó el lenguaje. Huang, P. Goel y P. Moorby para realizar una simulación y modelar puertas en 1984 para un simulador lógico. Cadence se hizo cargo del proyecto en 1990 y adquirió el estándar IEEE 1364 en 1995.

E. Se utiliza para validar y diseñar circuitos digitales, así como para circuitos analógicos o de señal mixta. 

1.3 Tablero FPGA

Los FPGA son circuitos integrados destinados a realizar tareas específicas. Puede comprar FPGA como un producto independiente o optar por placas FPGA que se utilizan con fines de emulación y desarrollo.

Las placas FPGA facilitan su trabajo y no requieren que compre dispositivos periféricos adicionales. Los paneles tienen algunas formas de almacenamiento externo y vienen con RAM y ROM para realizar tareas. También puede encontrar interruptores, LED, encabezados de expansión de clavijas, flip-flops y los puertos de E / S necesarios.

Puede ser una opción rentable comprar una placa FPGA en lugar de invertir en piezas de hardware independientes. 

1.3 Tutorial de FPGA 

Sería útil si entendiera el diseño lógico digital y esté familiarizado con conceptos como puertas lógicas y circuitos lógicos secuenciales y combinacionales. Luego, puede aprender el lenguaje de programación Verilog o VHDL para configurar sus FPGA.

Si desea obtener ayuda, se pueden usar muchos videos en línea para obtener instrucciones paso a paso. También hay muchas guías y tutoriales disponibles en Internet para aprender a programar FPGA.

Ahora echaremos un vistazo a los microcontroladores en nuestro próximo capítulo. 

2. microcontrolador 

Los microcontroladores son como computadoras con su RAM, ROM, puertos de E / S y otros dispositivos periféricos para realizar tareas específicas. Puede encontrar diferentes microcontroladores como el microcontrolador Arduino y el microcontrolador Pic.

microcontrolador 

Imagen 2: FPGA vs. Microcontrolador 

Microcontrolador PIC 

Microchip Technology produce microcontroladores PIC basados en el PIC1650 desarrollado por General Instrument. Las versiones anteriores salieron en 1976 y la compañía vendió más de doce mil millones de kits en 2013.

Los microcontroladores se pueden reprogramar y utilizar la memoria flash para almacenamiento. Los microcontroladores vienen en diferentes modelos y los modernos utilizan chips potentes con instrucciones para el procesamiento de señales digitales.

Puede comprarlos en diferentes combinaciones de pines que van desde 6 pines hasta chips de 144 pines. También incluye puertos de comunicación, USB, pines de E / S y módulos ADC y DAC. Puede utilizar el software proporcionado por la empresa para programar los microcontroladores. 

Programación de microcontroladores 

Los microcontroladores se pueden programar utilizando una variedad de lenguaje ensamblador. Actualmente, también se utilizan muchos lenguajes de programación de alto nivel, como JavaScript, Python y C. Algunos lenguajes se han diseñado con un propósito específico, mientras que otros son lenguajes de programación generales como C.

Los lenguajes de propósito general pueden tener algunas restricciones y también características para admitir las capacidades únicas de un microcontrolador. Los fabricantes también lanzan un entorno de programación para que los usuarios ayuden en su desarrollo.

En el próximo capítulo, veremos las diferencias entre microprocesadores y microcontroladores. 

3. microprocesador vs. Microcontrolador

Mucha gente usa los términos microprocesador y microcontrolador indistintamente, pero son dos cosas completamente diferentes. Puede encontrar algunas similitudes entre ellos, y ambos están diseñados para realizar actividades en tiempo real.

Los microprocesadores y los microcontroladores no se pueden diferenciar solo por el estudio visual, y ambos son tipos de CI. Puede encontrar diferentes versiones en el mercado que van desde 6 pines hasta 100 pines según el propósito y las características.

microprocesador vs. Microcontrolador

Imagen 3: FPGA vs. Microcontrolador 

3.1 Diferencia entre microprocesador y microcontrolador 

Los microprocesadores son circuitos integrados que vienen con una computadora o CPU en su interior y están equipados con potencia de procesamiento. Los ejemplos pueden ser Pentium 3, 4, i5, core two duos y otros que se encuentran en las computadoras.

No encontrará periféricos como RAM, ROM en el chip. El diseñador proporciona los periféricos fuera del chip para lograr la funcionalidad.

El microcontrolador en sí es una computadora con RAM, ROM, temporizadores, puertos de E / S y otros periféricos integrados. También se les conoce como computadora en un solo chip o mini-computadoras por este motivo. Hay muchos microcontroladores disponibles en la actualidad con una variedad de características en diferentes versiones.

Los microprocesadores son voluminosos debido a los periféricos externos, mientras que los microcontroladores son más pequeños. Microprocesadores forman el corazón de un sistema informático, mientras que los microcontroladores controlan los sistemas integrados.

Los microcontroladores están diseñados para realizar tareas específicas donde se han definido la entrada y la salida. Se realiza algún procesamiento en función de la naturaleza de la aplicación y se genera trabajo. La especificidad de las tareas requiere un uso significativamente menor de puertos de E / S, RAM, ROM y pueden adaptarse a un solo chip.

Las ventajas incluyen la reducción de costes y se pueden encontrar en dispositivos como mandos a distancia, móviles, teclados, pendrives, cámaras digitales, etc.

No usa microprocesadores para tareas específicas.

Sino para tareas de múltiples facetas, como desarrollar juegos, software, sitios web y edición de videos. La relación entre entrada y salida no está definida en este caso.

Los microprocesadores están diseñados para manejar tareas complejas y alcanzar velocidades de reloj mucho más altas que los microcontroladores. Los microprocesadores modernos pueden ir más allá de 1 GHz, mientras que los microcontroladores logran alcanzar un máximo de 30 a 50 MHz.

Otra diferencia está relacionada con el costo. Puede comprar un microcontrolador a un precio mucho menor que un microprocesador. Sin embargo, usar un microcontrolador en lugar de un microprocesador no es adecuado, mientras que usar un microprocesador en lugar de un microcontrolador hace que la aplicación sea costosa.

El costo también es menor porque los microcontroladores se configuran con tecnología CMOS. Los microprocesadores requieren múltiples componentes externos para funcionar y, al final, se vuelven costosos.

Los microcontroladores tienen un sistema de ahorro de energía, mientras que los microprocesadores carecen de dicha característica. Microprocesadores también consumen menos energía en comparación con el microprocesador, ya que no necesitan la contribución de componentes externos.

La arquitectura de Harvard se utiliza para diseñar un microcontrolador con memoria y programación de información específica. Los microprocesadores están diseñados con una arquitectura von-Neumann, donde la memoria se transfiere a un módulo de memoria equivalente.

Los microprocesadores no necesitan tantos registros como los microcontroladores. El primero tiene operaciones basadas en memoria y el segundo hace que los programas sean más accesibles para escribir.

Hemos cubierto las diferencias entre microprocesadores y microcontroladores, y ya debería tener una comprensión clara de ambos. Ahora exploraremos las diferencias entre FPGA y microcontroladores. 

4. FPGA vs. Microcontroladores 

Los microcontroladores y los FPGA son las dos herramientas más esenciales que utilizan tanto los aficionados como los ingenieros eléctricos. Es necesario pasar por una discusión sobre FPGA vs. microcontrolador para distinguir entre los dos.

Sin embargo, primero, ¡también veremos las similitudes! Ambos componentes están destinados a monitorear los valores de salida y el efecto basado en el valor de salida en un sentido más amplio. Puede crear una arquitectura de microcontrolador utilizando un FPGA, pero no es posible lo contrario.

FPGA y microcontroladores

Imagen 4: FPGA vs. Microcontrolador 

4.1 Diferencia entre FPGA y microcontroladores 

Casi todos los dispositivos informáticos vienen con un microcontrolador integrado para realizar tareas e interacciones. Puede comparar la estructura de un microcontrolador con la de una computadora, que tiene todos los periféricos necesarios, como memoria, puertos de entrada y salida y temporizadores. Puede programarse para realizar tareas sencillas en nombre de otro hardware.

FPGA es un circuito integrado que viene con millones de puertas lógicas y se puede hacer que lleve a cabo tareas programando las puertas lógicas. Los FPGA necesitan periféricos externos como RAM y ROM para su aplicación.

El microcontrolador utiliza un programa de software para ejecutar comandos consecutivamente, como C, C ++. La conexión de programación de la FPGA está en el circuito lógico y utiliza soluciones de programación como VHDL y Verilog.

La potencia de procesamiento de los microcontroladores está limitada en el tiempo y se basa en la potencia de ciclo de su procesador. Los FPGA tienen un espacio limitado; necesita crear más circuitos lógicos para lograr la escala de codificación deseada.

Los FPGA son más versátiles y flexibles debido a su naturaleza. Son ‘programables en campo’: puede reprogramar el FPGA para realizar cualquier tarea lógica que pueda acomodarse dentro de las puertas lógicas disponibles. Las puertas lógicas se pueden volver a cablear tantas veces como sea necesario para cambiar el programa y realizar una tarea diferente.

Los microcontroladores pueden realizar tareas limitadas porque vienen con instrucciones y sus circuitos. Un programador tiene que cumplir con las restricciones mientras desarrolla el código.

Los dos también difieren en los métodos utilizados para procesar las instrucciones. Los microcontroladores leen cada línea del programa de forma secuencial; eso significa que los comandos también se procesan en secuencia.

FPGA pueden procesar órdenes simultáneamente y pueden ejecutar numerosas líneas de códigos en un momento dado.

También están cableados como un circuito eléctrico para que pueda obtener circuitos paralelos adecuados.

Sin embargo, en los microcontroladores, el procesador cambia de un código a otro para lograr cierto nivel de paralelismo. Le resultará más fácil escribir los siguientes códigos en microcontroladores que en FPGA.

La capacidad de procesamiento paralelo de los FPGA le permite controlar las interrupciones de forma eficaz mediante el uso de máquinas de estado finito (FSM). En el caso de los microcontroladores, debe tener en cuenta el tiempo que tarda ISR en resolver una interrupción.

Puede recablear un FPGA fácilmente con solo reprogramarlo. La configuración en un FPGA se carga en las celdas lógicas configurables cuando se enciende la energía. No es necesario realizar ningún cambio en el hardware para reprogramar la FPGA.

Los microcontroladores pueden ejecutar un programa y realizar tareas generales. Si desea cambiar el conjunto de instrucciones de la placa, deberá modificar el diseño del IC de silicio.

FPGA son adecuados para el procesamiento de datos en paralelo a alta velocidad y vienen con un alto grado de personalización.

Sin embargo, también tienen los inconvenientes del funcionamiento del prototipo y la complejidad de la configuración.

Se necesita tiempo para crear una función FPGA, ya que necesita compilar todos los códigos desde cero y luego convertirlos a lenguaje de máquina. Para los microcontroladores, puede encontrar paquetes listos para usar para realizar tareas específicas y personalizarlos para que se adapten a sus necesidades.

Los microcontroladores son fáciles de usar y configurar y pueden manejar datos secuenciales de alta velocidad. Sin embargo, carecen de algunas de las características de los FPGA. Los microcontroladores son más flexibles en lo que respecta a la programación, pero no se pueden personalizar con precisión a través del hardware.

También se enfrentará a una curva de aprendizaje pronunciada cuando se trate de la programación FPGA. Puede adaptar el método de prueba y error y probar sus desarrollos utilizando microcontroladores.

Cuando se trata de las diferencias entre el microcontrolador y la FPGA, también debe tener en cuenta el consumo de energía. Discutiremos el tema en el próximo capítulo. 

5. FPGA vs. Consumo de energía del microcontrolador 

Se sabe que los FPGA consumen más energía que los microcontroladores por varias razones. Puede representar un desafío para los ingenieros que buscan hacer sistemas de energía eficientes. Los FPGA pueden superar las limitaciones de potencia de un sistema integrado y es posible que no sean adecuados para todos los propósitos.

Los FPGA se han utilizado para la emulación y la creación de prototipos, pero no son tan eficientes como otros componentes como los ASIC. Puede reprogramar un FPGA, pero vendrá con el inconveniente de la ineficiencia a medida que la utilización de la lógica se vuelve baja debido a las restricciones de lugar y ruta.

También consume mucha energía debido a los transistores no utilizados. Los árboles de reloj ineficientes y las rutas de señal extendidas también contribuyen a un mayor consumo de energía.

FPGA para tareas de alta velocidad más allá de las capacidades del microcontrolador. Por esta razón, los FPGA no están optimizados para el consumo de energía. Los microcontroladores tienen velocidades de procesamiento de solo unos pocos MHz y consumen mucha menos energía en comparación con los FPGA.

También puede encontrar modos inactivos o de ahorro de energía en microcontroladores, lo que los convierte en una opción sostenible en muchos casos. Algunos de ellos vienen con corrientes de sueño inferiores a 1 µA y pueden funcionar a unos pocos µA durante frecuencias de reloj lentas.

No podrá encontrar ninguna FPGA con tan bajos requisitos de potencia en el mercado. Es por eso que muchos sistemas FPGA utilizan un microcontrolador en la placa para aumentar la eficiencia energética.

FPGA y microcontroladores

Imagen 5: FPGA vs. Microcontrolador 

6. Conclusión 

Podemos ayudarlo a comprar circuitos y fabricar tableros siguiendo sus especificaciones y preferencias precisas.

Si tiene más preguntas sobre la fabricación y el ensamblaje de PCB, comuníquese con nosotros; Siempre estamos encantados de ayudarle.

Hommer Zhao
Olá, sou o Hommer, fundador do WellPCB. Até agora, temos mais de 4.000 clientes em todo o mundo. Qualquer dúvida pode ficar à vontade para entrar em contato comigo. Desde já, obrigado.

Servicios