FPGA o CPLD para la "lógica de pegamento" y capacidades de video / LCD

4

Algunos de ustedes recordarán que publiqué una pregunta en la que se sugirió que usara CPLD en lugar de una gran cantidad de multiplexores. Aquí está la pregunta, para referencia.

Sin embargo, a medida que leía y aprendía sobre CPLD y FPGA, me di cuenta de que los FPGA también se usan para capacidades de video. Mi proyecto necesitará, en cualquier caso, algo así como un LCD en color de 6 "a 7". Nota, no se requiere color de 24 bits o tal. Incluso una pantalla de 8 bits es más que suficiente para esta aplicación. Pero no puedo ayudar y me pregunto: ¿no sería mejor que usara un FPGA en lugar de CPLD? Esto significaría que trabajarían menos chips y se libraría de un microcontrolador, posiblemente.

Con mi conocimiento limitado, las razones por las que los FPGA no parecen ser una buena solución son:

  1. Es probable que sean más caros que los CPLD.
  2. Un FPGA de rango medio podría no manejar toda la lógica requerida para la aplicación, junto con el video. Esto implica que puedo necesitar más de un chip. En esta etapa, un microcontrolador y CPLD relativamente poderosos se vuelven más atractivos. Los CPLD se pueden configurar para toda la lógica requerida y el controlador puede ser el cerebro.
  3. Los FPGA requerirán un programador a bordo ya que no pueden conservar su programación. En comparación, los CPLD se activan instantáneamente.

¿Por qué parecen una buena opción?

  1. Puede posiblemente reemplazar varios CPLD y microcontrolador.
  2. Hay más soporte disponible para FPGA que CPLD.

Tenga en cuenta que no puedo usar un FPGA potente por dos razones. Son muy costosos y, en segundo lugar, probablemente vienen en paquetes BGA. Los fabricantes locales son capaces de manejar BGA pero no se recomienda (pregunté).

    
pregunta Saad

3 respuestas

6
  1. Los FPGA son más caros que los CPLD, pero también pueden hacer mucho más. Solo uso CPLD donde se requiere el "encendido instantáneo" (es decir, sin tiempo de programación), o cuando necesito algo que cuesta menos de US $ 5 por chip. Para todo lo demás, un FPGA es preferible a un CPLD, en mi opinión.

  2. Rara vez tiene sentido colocar una CPU EN EL INTERIOR del FPGA. Cuando se trata de ganar dinero, no puedes competir con un ARM disponible o algo similar. Las únicas veces que tiene sentido es cuando solo necesita un pequeño micro de 8 bits (a.la. Xilinx Picoblaze), o está utilizando un FPGA que incluye un núcleo duro y el espacio es más importante que el costo. Para su aplicación, necesitará una CPU de 32 bits razonable para renderizar los gráficos para la pantalla LCD. Por lo menos, tendrá una solución de 2 chips (CPU + FPGA / CPLD).

  3. Sí, los FPGA deben programarse en el encendido. Esto puede ser algo bueno o malo. Es malo porque significa que al menos necesitas un pequeño chip Flash EEPROM desde el que "arrancan". Es bueno porque significa que puede hacer fácilmente "en el campo actualizaciones de firmware". Con un CPLD, tendría que extender el hardware / software del programador de CPLD cada vez que necesite hacer una actualización.

Para la mayoría de las tarjetas que he diseñado, siempre he tenido una CPU que se encargó de programar el FPGA. Esa CPU ha sido Power-PC's, ARM's y un Intel Atom. Dado que la CPU ya tenía Flash, RAM, Ethernet y Linux, fue muy fácil implementar los controladores FPGA y las cosas de programación de FPGA.

En su caso, me inclino por los CPLD en lugar de los FPGA. He aquí por qué:

  1. La implementación de un circuito de salida de video en un FPGA no es trivial. Si le asignara esa tarea a un ingeniero, no la asignaría a un ingeniero junior. Tendría que ser un ingeniero senior con más de 10 años de experiencia. Un ingeniero jr podría ser capaz de "hacerlo funcionar", pero no sería muy bueno. De todos modos, como usted necesita una CPU de 32 bits, también puede obtener una con salida de video, como algunas T.I. Los ARM tienen, así como las cosas de Freescale iMX.

  2. Para esos registros de grandes cambios, necesita muy poca lógica y muchos pines de E / S. Más específicamente, necesita aproximadamente 4 Flip-Flops por pin de E / S. Un FPGA de tamaño mediano tendrá quizás 300 pines de E / S, pero más de 50,000 Flip-Flops. Así que realmente estás pagando dinero por cosas que nunca usarás. Al final, creo que gastará aproximadamente el doble o el triple en una solución FPGA que en una solución CPLD.

  3. Para alguien que recién comienza con una lógica programable, los CPLD tienen una curva de aprendizaje mucho más fácil. No tiene sentido hacer las cosas más complicadas antes de tener que hacerlo.

Y aquí hay otro consejo no solicitado: apegarse a las grandes personas FPGA / CPLD (Xilinx y Altera). Evite los fabricantes de segundo y tercer nivel como Lattice, Actel, Quicklogic, etc. Los grandes no son más caros (o no tanto), sus herramientas y soporte son mejores (y gratis), y las habilidades que aprende serán más fáciles para utilizar en futuros proyectos. ¡Y lo más importante, se verá mejor en un currículum!

    
respondido por el user3624
1

Es difícil decirlo con exactitud, sin saber mucho más sobre lo que está tratando de hacer y las velocidades / datos involucrados, etc., pero creo que hay algunas opciones de FPGA que pueden ser adecuadas para usted.

Actel (ahora Microsemi) crea FPGA basados en flash que no necesitan un chip de soporte para cargar la configuración, solo programa como lo haría con un microcontrolador.
Hacen algunos bastante potentes a precios razonables (por ejemplo, IIRC, la compuerta ProASIC3 de 250 k cuesta alrededor de $ 15) en paquetes QFP hasta 1M compuertas, algunas con soft ARM Cortex M1 . Aquí está la gama ProASIC3, he usado algunas de ellas (no he probado ninguna de las puertas superiores a 250k) y ha quedado bastante impresionado en general.

    
respondido por el Oli Glaser
1

Su apuesta más simple para una pantalla es probablemente un LCD TFT de chip en vidrio. Esos datos pueden ser alimentados a la velocidad que sea conveniente. Una interfaz típica requiere la sincronización de 16 bits de datos por píxel, incluso si todo lo que uno quiere hacer es mostrar texto, pero si no necesita actualizaciones instantáneas de la pantalla, es más fácil trabajar con ellas que las pantallas LCD que requieren una actualización continua.

    
respondido por el supercat

Lea otras preguntas en las etiquetas