¿Cuándo se prefiere un FPGA en lugar de un CPLD, y viceversa?

7

Estoy empezando con la lógica programable, y estoy utilizando principalmente una entrada de esquema. (Hey, me gusta ver el esquema en lugar de VHDL / VERILOG: P)

He estado usando una CPLD de Xilinx originalmente que tenía 128 macrocélulas, y el diseño tiene un bus de datos y usaba extensivamente buffers tri estado. Resulta que no encajaba en el CPLD, y el siguiente paso en digikey fue un Xilinx FPGA ($ 5.80), así que pensé que todo lo que tendría que hacer era cambiar el dispositivo al FPGA en el ISE. Al parecer, los búferes de estado Tri no existen en un FPGA, lo que significa que tengo que rediseñar mucho. Además, una de las razones principales por las que quise usar un FPGA fue que el FPGA se puede programar usando un flash SPI en lugar de JTAG. (No tengo programadores JTAG, pero tengo MCU para programar SPI flash). Hay un MachXO2 en digikey a un precio similar pero con 640 macrocélulas, que creo que deberían ser más que suficientes, sin mencionar que se puede programar. utilizando SPI flash, y probablemente tiene los buffers de Tri estado.

Entonces, aquí está la pregunta. ¿Cuándo se utilizan los CPLD en lugar de los FPGA y viceversa? ¿En qué aplicaciones no tiene sentido un CPLD, pero un FPGA es más adecuado?

    
pregunta hak8or

3 respuestas

5

Por lo general, es un sistema de compensación. Cuántos rieles de voltaje se necesitan, cuántos circuitos integrados discretos se requieren, cuánta potencia, cantidad de lógica.

Los CPLD, por lo general, son más pequeños (menos recursos programables), generalmente requieren un solo riel de voltaje, no requieren una PROM externa. Como se mencionó, usualmente se usa para la lógica del pegamento, en lugar de puertas discretas.

Los FPGA son, generalmente, muy grandes (más recursos lógicos). Requieren varios rieles de voltaje, consumen más energía.

La mayoría de los proyectos que las personas describen son los más apropiados para los FPGA.

    
respondido por el Christopher Felton
5

Los CPLD se utilizan principalmente para la lógica aleatoria que solía implementarse utilizando chips TTL y CMOS individuales. Los FPGA tienden a usarse para sistemas completos o subsistemas complejos. Obviamente, habrá cierta superposición, y los CPLD de Altera son en realidad pequeños FPGA con memoria de configuración en el chip.

Las E / S FPGA generalmente pueden ser de tres estados.

    
respondido por el Leon Heller
1

Un CPLD típico tendrá un pequeño número de circuitos para calcular las funciones lógicas, generalmente 1-4 por pin de salida, pero cada circuito podrá actuar sobre un gran número de entradas. Un FPGA normalmente tendrá un número mucho mayor de circuitos para calcular las funciones lógicas, pero cada uno de ellos solo podrá actuar sobre unas pocas entradas.

Desde el punto de vista de la eficiencia del hardware, parece que sería mejor combinar los enfoques, ya que parece un desperdicio tener que usar uno de un pequeño número de circuitos lógicos de 36 entradas para implementar un circuito de dos entradas. Puerta NAND, pero por otro lado, sería inútil usar nueve elementos lógicos de tres entradas separados, y todo el enrutamiento asociado con ellos , para implementar una puerta AND de diecisiete entradas. Sin embargo, en la práctica, la mayoría de los dispositivos tienden fuertemente hacia el campo FPGA o CPLD; Sospecho que esto se debe a que, si bien un ser humano puede tener un buen sentido de cómo implementar un proyecto más pequeño utilizando una variedad de recursos diferentes, es más fácil para el software implementar un diseño si un chip tiene una gran cantidad de recursos que son exactamente equivalentes. / p>

Por consiguiente, sugeriría que un factor importante para decidir entre un FPGA y un CPLD suele ser la medida en que un dispositivo necesita generar una pequeña cantidad de funciones complicadas, o una mayor cantidad de funciones simples.

    
respondido por el supercat

Lea otras preguntas en las etiquetas