Hay dos criterios que se pueden utilizar para evaluar un proyecto digital que ayudará a decidir qué parte mejor se adapte a sus criterios. La primera es el diseño de tamaño/complejidad - ¿cuánto lógica está involucrado. La segunda es la entrada y salida de los requisitos en términos de conteo de pin. La velocidad puede ser un factor en si se puede estimar más lento de lo que su función sería. El proveedor de herramientas (Altera Quartus II, Xilinx ISE, etc.) le ayudará una vez que en el derecho de béisbol.
PAL/PLA/GAL: Estos están destinados a sustituir a un pequeño a mediano tamaño de los circuitos que normalmente se podría implementar como LSI logic chips (7400, de la serie 4000). Estos pueden ofrecer mejores diseños de tarjetas debido a la I/O reasignación, y un montón de funciones lógicas sencillas. Estas fichas contienen una memoria no volátil (o de un tiempo programable de fusibles) y no requieren de energía-hasta el momento de la configuración. No podrá contener datos de los elementos de almacenamiento.
CPLD: Estos son más grandes primos de el PLA. Los diseños pueden ser pequeñas máquinas de estado, o incluso una simple microprocesador core. La mayoría de los CPLD fichas que he visto no tiene ningún chip de SRAM, a pesar de la gran Ciprés CPLD se enlaza. CPLDs son más propensos a ser re-programable con memoria flash, y además no requieren configuración del tiempo en el poder.
FPGA: a Diferencia de la CPLD, los bloques de lógica se basa en SRAM lugar de memoria flash, lo que resulta en el más rápido de la lógica de las operaciones. El principal abajo del lado con FPGAs es que desde que la configuración se almacena en SRAM, cada vez que el dispositivo se enciende la FPGA debe cargar su programación en este SRAM. Dependiendo del tamaño de su diseño y la velocidad de su almacenamiento no volátil, esto puede causar un retraso notable desde el encendido a pleno funcionamiento. Algunos de los FPGAs tienen en el chip flash para el almacenamiento de sus datos, pero la mayoría de uso independiente de chips de memoria. Los FPGAs a menudo tiene hard-wired multiplicadores, Pll, y otras funciones de lógica para mejorar la velocidad de computación. Grandes bloques en el chip de memoria RAM también está disponible. Usted también será capaz de utilizar de alto rendimiento de e/S especificaciones como LVDS, PCI y PCI-Express.
FPGA con Microprocesador Núcleo Duro: no estoy familiarizado con estos, pero me imagino que su diseño se tendría que centrar en torno a la programación de microcontroladores, y la FPGA aumentaría el microcontrolador. Las partes que se identifican hacer que se vea como quieres empezar tu diseño con un microcontrolador y un FPGA, y luego combinar los dos en un solo chip/paquete.
Cómo decidir cuál es el adecuado para usted:
La mejor manera es tener el código (Verilog/VHDL) terminado y, a continuación, utilizar el proveedor de herramientas para intentar encajar en la parte más pequeña posible. Sé que Altera la herramienta le permite cambiar la programación de objetivos con bastante facilidad, por lo que podría seguir picking menor FPGAs y, a continuación, menor CPLDs hasta su uso de diseño se encuentra cerca del 75%. Si usted requiere un rendimiento, a continuación, trate de elegir los dispositivos que tienen características de fast (multiplicadores) que disminuyen la velocidad de los requisitos de la lógica. De nuevo, el proveedor de herramientas le ayudará a identificar si usted necesita para actualizar o si se puede downgradear.
Otro factor de que la parte a utilizar es la facilidad de uso. El uso de PAL/PLA/GAL lógica es probablemente más esfuerzo que el de construir la función de uso discreto de puertas lógicas (74HC*, 4000, etc). CPLDs suelen requerir sólo una sola tensión de alimentación, y no requieren de circuitos adicionales. Son efectivamente independiente. Los FPGAs de comenzar a utilizar múltiples fuentes de alimentación de e/S y la lógica del núcleo, el complejo I/O estándares, independiente de la memoria de programa, multi-capa (>2) los Pcb, y BGA paquetes.
Pasos para reducir sus requisitos de diseño incluyen:
Identificar todas las entradas y salidas para su FPGA/CPLD. Esta es generalmente una parte fácil de la etapa de diseño. De este modo se puede saber qué paquete que usted está mirando, y de lo cerca que se puede cortar para que se de ese margen.
Dibuje un diagrama de bloques de la lógica interna. Si los bloques que parecen simples (cada bloque tendría una mano llena de puertas lógicas y registros), entonces usted probablemente puede utilizar un CPLD. Si, sin embargo, los bloques tienen etiquetas tales como "Ethernet transciever", "PCI-Express x16 interfaz", "DDR2 Controlador", o "h264 Codificar/Decodificar", entonces es casi seguro que buscando en una FPGA y el uso de HDL.
- Mirar y ver si sus interfaces de e/S especiales requisitos, tales como voltajes especiales, LVDS, DDR, o de alta velocidad SERDES. Es más fácil conseguir un chip que admite que para obtener un traductor chip.
Ejemplo CPLD Aplicaciones:
- Multi-canal PWM con interfaz SPI
- I/O Expander
- CPU Espacio de Direcciones de Decodificación
- Relojes (Tiempo de mantenimiento)
- Pantalla Multiplexors
- Simple DSP
- Algunos programas sencillos que pueden ser convertidos en un CPLD diseño
Ejemplo un Aficionado a la FPGA Aplicaciones:
- Pequeño System-on-Chip (SoC) de los diseños
- Video
- Complejo protocolo de puentes
- El procesamiento de la señal
- Cifrado/Descifrado
- Legado de sistema de emulación
- La Lógica De Analizador/Generador De Patrones De
Para la mayoría de los aficionados de trabajo, usted estará limitado a la relativamente pequeña FPGAs, a menos que desee para la soldadura BGA paquetes. Me volvería a escoger entre una gran CPLD o un hoteles de la FPGA, y el tamaño y los requerimientos de velocidad dictaría que uno necesitaba.