usar tipos placa microcontrolador cuando caracteristicas barata aplicaciones logic fpga digital

logic - tipos - placa fpga



¿Cuáles son algunas aplicaciones prácticas de un FPGA? (7)

Estoy súper emocionado de que mi programa alimente una pequeña pantalla de siete segmentos, pero cuando se lo muestro a personas que no están en el campo, siempre dicen "bueno, ¿qué puedes hacer con eso?" Nunca puedo darles una respuesta concisa. ¿Puede alguien ayudarme?



Hay limitaciones para el software. En el software, se está ejecutando a la velocidad de reloj de la CPU, lo que le permite ejecutar solo una instrucción por ciclo de reloj. En el software, todo es de alto nivel, no controla los detalles que ocurren en el nivel bajo. Siempre estará limitado por el sistema operativo o la placa de desarrollo que está programando. Esto es cierto para los tableros de desarrollo populares como Arduinos y Raspberry Pi.

En el hardware FPGA, puede programar y controlar con precisión lo que sucede entre cada ciclo de reloj, proporcionando a sus cálculos la velocidad a nivel de electrones (nota: la velocidad de los electrones determina la velocidad de las transferencias de señales eléctricas entre hardware)

Ahora, sabemos que FPGA implica hardware, velocidad de electrones, que es mucho mejor que la CPU que implica software, 1 instrucción por ciclo de reloj.

Entonces, ¿por qué usar FPGA cuando podemos diseñar nuestras propias placas utilizando una placa de circuito impreso, nivel de transistor?

¡Esto es porque los FPGA son hardware programable! Está construido de tal manera que puede programar las conexiones de una placa en lugar de cablearlo para una aplicación específica. ¡Esto explica por qué los FPGA son caros! Es una especie de ''hardware general'' o hardware programable.

Para argumentar por qué debería elegir los FPGA a pesar de su costo, el componente de hardware programable permite:

  1. Ciclo de producto más largo (puede actualizar el hardware programable en los productos del cliente que contienen su FPGA simplemente permitiéndoles programar su código HDL actualizado en su FPGA)

  2. Recuperación de error de hardware. Simplemente les permite descargar el programa corregido en su FPGA. (nota: no puede hacer esto con diseños de hardware específicos, ya que tendrá que gastar millones para recuperar sus productos, crear nuevos y enviarlos a los clientes)

Para ver ejemplos de las cosas geniales que puede hacer el FPGA, consulte el infame curso ECE5760 de Stanford.

http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/

¡Espero que esto ayude! Pronto Chee Loong, Universidad de Toronto


Historia verdadera.

Le permiten corregir fallas de diseño en los tableros de adquisición de datos personalizados para un experimento multimillonario de física de partículas que se vuelve obvio solo después de que tiene todo instalado y está realizando el trabajo de integración y la caracterización del detector.


Los FPGA también se utilizan para probar / investigar el diseño de circuitos antes de comenzar la producción en masa. Esto está sucediendo en varios sectores: procesamiento de imágenes, procesamiento de señales, etc.

Edición: después de algunos años, ahora podemos ver aplicaciones más prácticas, incluidas las finanzas y la obtención de maquinaria:

  • espacio aéreo
  • emulación
  • automotor
  • emisión
  • computadoras de alto rendimiento
  • médico
  • aprendizaje automático
  • finanzas (incluidas las criptomonedas)

Me gusta este artículo: http://www.hpcwire.com/hpcwire/2011-07-13/jp_morgan_buys_into_fpga_supercomputing.html

Mi sensación es que los FPGA pueden ubicarse directamente en sus datos de transmisión en el punto donde ingresan sus sistemas bajo su control. Luego, puede procesar esos datos sin pasar por los pasos que requeriría un GPGPU (traer los datos fuera de la red, pasarlos a través del bus PCI Express y procesarlos a Gb a la vez).

Hay buenas razones para ambas cosas, pero creo que la idea de si le importa almacenar los datos es un buen punto de referencia.

Aquí hay otra aplicación FPGA genial:

http://milkymist.org/


Primero: no necesitan tener memoria volátil.

De hecho, los grandes jugadores (Xilinx, Altera) usualmente tienen su configuración en el chip en la SRAM, por lo que necesita EEPROM / Flash / WhatEver (TM) adicional para almacenarlo afuera.

Pero hay otros, por ejemplo, Actel es un gran jugador que viene a la mente, que tiene un almacenamiento de configuración no volátil en sus FPGA (por cierto. Esto también tiene otras ventajas, ya que la SRAM generalmente no es muy tolerante a la radiación, y usted debe requerir Mediciones cuando entras en órbita).

Hay dos grandes cosas que justifican FPGAS:

  1. Precio - No son baratos. Pero a veces no puedes hacer algo en el software, y necesitas hardware para ello. Y cuando está por debajo de cierto punto en su volumen requerido (por ejemplo, debido a que es solo una serie pequeña o un prototipo), un FPGA es MUCHO más barato que un ASIC. Además, mientras se desarrollan los ASIC, esto permite, antes de alcanzar un estado final, tiempos de respuesta mucho más elevados.

  2. Reconfiguración: puede reconfigurar su FPGA. Eso es algo que un procesador o un ASIC no pueden hacer. Existen algunas aplicaciones donde puede usar esto: por ejemplo, cuando necesita la capacidad de arreglar algo en el diseño, pero no puede acceder físicamente al dispositivo. Ejemplo para esto: los orbiters / rovers mars utilizaron FPGA Xilinx. Cuando alguien encuentra que hay un error (o quiere cambiar a una codificación diferente para transmitir datos o lo que sea), no puede reemplazar la nave, ya que simplemente no es accesible. Pero con un FPGA puedes reconfigurar y aplicar tus cambios. Otro escenario es que puede tener un solo chip que sea capaz de realizar diferentes aceleraciones, dependiendo del escenario. Imagine un teléfono inteligente, cuando el telefono del FPGA puede configurarse para hacer la en- decodificación de audio, al navegar puede funcionar como un motor de compresión, al reproducir videos puede configurarse como decodificador / acelerador h264. Otra cosa que podría hacer es que puede hacer coincidir su hardware con la instancia de su problema. Por ejemplo, Cisco usa muchos FPGA en su hardware. Necesita el hardware para realizar la conmutación / enrutamiento / inspección de paquetes con la velocidad requerida, y puede generar desde la configuración real los motores de coincidencia directamente en el hardware.

Otra cosa que podría surgir pronto (sé que algún fabricante de automóviles lo pensó) es para los dispositivos que incluyen muchos aparatos electrónicos diferentes y tienen una gran cadena de suministro. Es más o menos una combinación de precio y reconfiguración. Es más caro tener 10 ASIC que 10 FPGA, donde ambos realizan la misma tarea, pero es más barato tener 10 FPGA con un solo proveedor y la necesidad de tener solo 1 tipo de chip en servicio y suministro que tener 10 proveedores con Necesidad de mantener y gestionar 10 chips diferentes en suministro y servicio.


Puede evolucionar circuitos, esto es un poco de algoritmos evolutivos de la vieja escuela, pero a partir de un conjunto de individuos aleatorios, puede seleccionar los circuitos que obtienen una puntuación más alta en una función de aptitud que los demás y criarlos para crear una nueva población ad infinitum. lea sobre Hardware evolutivo, piense que este libro cubre los http://www.amazon.co.uk/Introduction-Evolvable-Hardware-Self-Adaptive-Computational/dp/0471719773/ref=sr_1_1?ie=UTF8&qid=1316308403&sr=8-1

Digamos, por ejemplo, que quería un circuito DSP, que tiene una señal de entrada y una señal de salida deseada, comenzando con una población aleatoria que seleccione tal vez solo la más apta (mala) o tal vez una mezcla de fitties y extrañas para crear la próxima generación. después de varias generaciones, puede abrir la tapa y descubrir que ha ocurrido una evolución baja y que tiene un circuito que puede igualar sus expectativas iniciales.

También lea la guía de campo para la programación genética, es gratis en la web en algún lugar.