10 votos

¿Qué lógica programable ICs de diferente complejidad utilizados para?

La lógica programable puede ser implementado en su widget en diferentes espectros, de la quema de un par de puertas o el uso de un MUX a la última FPGA con construido-en el microcontrolador de e / s y periféricos, por no mencionar el BRAZO PrimeCell GPIO o de otros, algunos ejemplos más concretos. Para qué aplicaciones son los diferentes niveles de lógica programable de la complejidad del dispositivo utilizado? Aunque la agrupación mezclarse juntos cerca de los extremos de sus definiciones, creo que esta es una lista aceptable:

  1. PAL/PLA/GAL: Matriz de Lógica Programable; aparecen en la lista como 'Embedded PLDs' en Digikey, cubriendo asincrónica 10/8 I/O (ATF16V8C) a 50MHz, 192 macrocell, (CY7C341B), y en su mayoría son reprogramables.
  2. CPLD: Complejo Programable Logic Dispositivos; Digikey las enumera como tales, disponible en 7,5 ns 10 I/O (ATF750C) a 233 MHz, 428 I/O "CPLDs en FPGA Densidades" (CY39100V484B).
  3. FPGA: Field-Programmable Gate Array; disponible en 58 e/S (XC2064) a 1023 I/O BGA bestias (EP1S80F1508C7N).
  4. FPGA con duro MCU: esto es cuando un MCU es físicamente establecidos en la FPGA de la IC, no se emula.

Wikipedia cita:

La diferencia entre los FPGAs y CPLDs es que los FPGAs son internamente en función Look-up tables (LUTs), mientras que CPLDs forma de las funciones lógicas con el mar-de-puertas (por ejemplo, la suma de los productos). CPLDs están destinados para el más simple de los diseños, mientras que los FPGAs son para diseños más complejos. En general, CPLDs son una buena opción para muchas aplicaciones de la lógica combinacional, mientras que los FPGAs son más adecuadas para grandes máquinas de estado (es decir, microprocesadores).

Esto no explica la diferencia entre el uso de un 233 MHz, 400 I/O CPLD y un comparables FPGA; o entre un 192 macrocell PLD y un comparables CPLD. Yo no puedo grep fiable pautas mediante las cuales para limitar las opciones de diseño. Tenga en cuenta que actualmente no tienen una aplicación específica en mente, pero a menudo se preguntan, "¿qué haría yo uso para hacer eso?"

He recibido excelentes consejos fuera del sitio con respecto a los requisitos específicos, pero aún así creo que esta pregunta podría beneficiarse con algunos ejemplos que muestran preferencia sobre una familia de PLDs cuando otro le puede haber parecido ser igual o más adecuado.

7voto

BWW Puntos 302

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:

  1. 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.

  2. 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.

  3. 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.

3voto

Joel B Puntos 2031

Un buen "regla de oro" de la lista sería algo como esto:

  • PAL/PLA/GAL: se Utiliza en lugar discreto de la IC puertas de la lógica en un PCB
  • CPLD: Usa donde compleja, nonDSP, y, posiblemente, el tiempo es crítico, tareas son necesarias (carga de código de arranque en un FPGA de la memoria, LUT generador de onda sinusoidal para el DAC, etc)
  • FPGA: se Utiliza cuando el tiempo es fundamental, multiplicación, o capacidad de DSP es necesario (Filtros FIR, Fft, etc)
  • FPGA con duro MCU: se Utiliza cuando la FPGA se requiere la funcionalidad y periféricos en el FPGA debe ser accesible (temp sensores) o para permitir una menos sensibles al tiempo de la tarea a ser implimented en C en lugar de VHDL para la simplicidad (UART/puerto serie funcionalidad, servicio de limpieza de PCB, etc)

2voto

Michael Gundlach Puntos 616

Una simple respuesta podría ser que hay dos maneras:

1. Primero el diseño de su sistema de alto nivel de abstracción (es decir HDL o esquemas). A continuación, intenta encajar en PAL/CPLD/FPGA y elija aquellas que satisface sus necesidades (número de puertas/lógica de los elementos, rendimiento, etc.) y, a continuación, elija el más barato de estos en función de lo que definir más barato (el coste de desarrollo vs costo de producción, etc).

2. Pero por lo general antes de iniciar cualquier HDL codificación o esquemática de desarrollo ya se puede estimar la complejidad del sistema (cantidad de puertas que usted necesita, si parece que usted necesita 8-bit MCU de 32 bits o de MCU, o no microcontrolador). Basado en que usted puede elegir su dispositivo programable así. Esto sería menos preciso, pero se va a permitir el diseño de su no-programable analógico y digital de hardware en paralelo con programación de hardware y software (si cualquiera).

2voto

Chris Miller Puntos 2552

La FPGA con el núcleo duro se utiliza, ya que es de menor área que hacer un microcontrolador y más rápido que un soft-core microprocesador. Sin embargo, el precio es generalmente peor que un FPGA y separar a un microcontrolador. En el software en general y, por tanto, un microcontrolador es mejor para el (relativamente) lento y, en raros casos, tales como la configuración de parámetros y manejo de errores; la lógica es mejor para procesos continuos. Por ejemplo, en el procesamiento de paquetes, la escritura a una memoria debe ser en la lógica; manejo del tiempo de vida tiempo de espera debería permanecer en el software.

Dentro de la FPGA espacio hay hoteles/baja potencia partes y caro/partes más rápidas. Generalmente el microcontrolador es sólo en la cara; esto hace que el costo del comercio frente a un discreto MCU aún peor para el FPGA solución.

Nadie usa PALs en los nuevos diseños, en menos de 10 años. CPLDs han tomado el relevo de ese nicho.

En los últimos 5? años CPLDs son FPGA como en el interior, pero con memoria para almacenar la configuración en el chip. Desde los FPGAs son ahora de 100 MHz, la velocidad es mucho menos de una razón para poner la lógica en un CPLD de lo que era hace 10-15 años. Sin embargo, los FPGAs todavía tiene otras características tales como multiplicadores, serializadores y muchos recuerdos que pueden forzar un diseño en uno, incluso si no tiene mucha lógica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X