Beruflich Dokumente
Kultur Dokumente
INTRODUCCIÓN
Un CPLD (del acrónimo inglés Complex Programmable Logic Device) es un
dispositivo electrónico que extiende el concepto de un PLD (del acrónimo inglés
Programmable Logic Device) a un mayor nivel de integración ya que permite
implementar sistemas más eficaces, porque utilizan menos espacio, mejoran la
fiabilidad del diseño, y reducen costos.
Un CPLD se forma con múltiples bloques lógicos, cada uno similar a un PLD. Los
bloques lógicos se comunican entre sí utilizando una matriz programable de
interconexiones, lo cual hace más eficiente el uso del silicio, conduciendo a una
mejor eficiencia a menor costo.
Los CPLD son la evolución de lo que fueron los PLD, circuitos con el mismo
funcionamiento pero más simples.
Los CPLD llevan ya bastantes años entre nosotros, pero no por ello se han quedado
obsoletos. Sin embargo, más recientemente aparecieron las FPGA. Una FPGA tiene
cientos de pines en contraposición a las pocas decenas hasta el centenar que puede
tener un CPLD.
Historia
El primer PLD fue llamado PAL (Programmable Array Logic). Los PAL solo utilizan
compuertas lógicas (sin Flip-Flops), por lo que solo permiten la implementación de
circuitos combinacionales. Para superar esta limitación luego fueron creados los
registered PLDs los cuales incluyen Flip-Flops en cada salida del circuito. Con estos
dispositivos es posible implementar funciones secuenciales simples.
Todos estos chips (PAL, PLA, registered PLD, GAL/PALCE) son conocidos en
conjunto como SPLDs (Simple PLDs). La GAL/PALCE es la única que aun se fabrica
en chips independientes.
Luego de esto se fabricaron chips con muchas GAL en su interior utilizando una
arquitectura mucho más sofisticada, mejor tecnología y muchas otras
características adicionales como soporte para JTAG. Estas estructuras son
conocidas como CPLD (Complex PLD). Los CPLD son bastante populares por su
alta densidad de puertas, alto performance y bajo costo.
Finalmente a mediados de los 80s fueron introducidas las FPGA, las cuales difieren
de los CPLD en su arquitectura, tecnología y costos. Estos dispositivos fueron
creados principalmente para la implementación de circuitos de alto rendimiento.
Todos los PLDs son no volátiles. Pueden ser OTP (one time programmable) en cuyo
caso son utilizados fusibles o anti fusibles o pueden ser re programables, con
EEPROM o memoria FLASH. Las FPGAs por otro lado son la mayoría volátiles
puesto que utilizan SRAM para almacenar las conexiones en estos casos
generalmente se utiliza un ROM externa para almacenar la configuración inicial al
momento del encendido.
La mayoría de los CPLDs usan una de dos configuraciones para esta matriz:
interconexión mediante bloques o interconexión mediante multiplexores.
El primero se basa en una matriz de filas y columnas con una celda programable de
conexión en cada intersección. Al igual que en las GAL esta celda puede ser
activada para conectar/desconectar la correspondiente fila y columna. Esta
configuración permite una total interconexión entre las entradas y salidas del
dispositivo o bloques lógicos. Sin embargo, estas ventajas provocan que disminuya
el rendimiento del dispositivo, además de aumentar el consumo de energía y el
tamaño del componente.
En la interconexión mediante multiplexores, existe un multiplexor por cada entrada
al bloque lógico. Las vías de interconexión programables son conectadas a las
entradas de un número de multiplexores por cada bloque lógico. Las líneas de
selección de estos multiplexores son programadas para permitir que sea
seleccionada únicamente una vía de la matriz de interconexión por cada multiplexor
la cual se propagara a hacia el bloque lógico. Cabe mencionar que no todas las vías
son conectadas a las entradas de cada multiplexor. La rutabilidad se incrementa
usando multiplexores de mayor tamaño, permitiendo que cualquier combinación de
señales de la matriz de interconexión pueda ser enlazada hacia cualquier bloque
lógico. Sin embargo, el uso de grandes multiplexores incrementa el tamaño de
dispositivo y reduce su eficiencia.
Bloques Lógicos
Macroceldas
Estas también están provistas con registros, control de polaridad, y buffers para
salidas en alta impedancia. Por lo general un CPLD tiene macroceldas de
entrada/salida, macroceldas de entrada y macroceldas internas u ocultas (buried
macrocells), en tanto que un 22v10 tiene solamente macroceldas de entrada/salida.
Una macrocelda interna es similar a una macrocelda de entrada/salida, sólo que
esta no puede ser conectada directamente a un pin de salida. La salida de una
macrocelda interna va directamente a la matriz de interconexión programable.
Estructura de un CPLD
La estructura principal son los bloques de matriz lógicos (LAB) o bloques de Función
(Funtion Block), que se comunican en un bus interno con la matriz de Interconexión
Programable (PIA)
Un CPLD comprende múltiples bloques en un único chip con recursos de cableado
interno para conectar los bloques. Cada bloque es similar a una PLA o PAL, por lo
que en el esquema
de la Fig3 mostrada nos referimos a cada block como PAL like block
Fig4
En la Fig 4 se observa un ejemplo interconexionado
Informes generados
Por defecto, el instalador produce los siguientes archivos de salida significativos:
Timing Simulation
El jefe de diseño produce opcionalmente datos de simulación de tiempo al
implementar su diseño, y produce ya sea un EDIF , VHDL o Verilog HDL netlist
formateados para su simulador tiene procedimientos similares.
3 . Llame a las bibliotecas que necesita para crear su diseño. Proyecto ® Bibliotecas
...
4 . La Biblioteca del Orden cuadro de diálogo . Utilice esta herramienta para añadir
la biblioteca XC9000 , además de la orden interna y simprims bibliotecas .
4 . Si va a simular usando Viewsim , también hay que incluir las " simprims " Xilinx
y Viewlogic " orden interna " de la biblioteca en la ventana Orden de búsqueda o el
archivo viewdraw.ini .
Mentor
FABRICANTES DE CPLD
-ALTERA
Altera Corporation es un fabricante líder de dispositivos lógicos programables.
Familia de dispositivos:
CPLDs
-ATMEL
Atmel es una compañía de semiconductores, fundada en 1984. Su línea de
productos incluye microcontroladores (incluyendo derivados del 8051, el AT91SAM
basados en ARM, y sus arquitecturas propias AVR y AVR32), dispositivos
de radiofrecuencia, memorias EEPROM y Flash, ASICs, WiMAX, y muchas otras.
También tiene capacidad de ofrecer soluciones del tipo system on chip (SoC).
-CYPRESS SEMICONDUCTOR
Son similares a los dispositivos AMD y Lattice en muchas maneras; el Cypress
CPLD, llamado FLASH370, esta basado en tecnología FLASH EEPROM, y ofrece
un desempeño en el retardo de velocidad de 8.5 a 15 ns de pin a pin, la desventaja
es que no es programable en el sistema.
-XILINX
Xilinx es la mayor empresa en investigación y desarrollo de chips conocidos
como field-programmable gate arrays (FPGAs).
Las familias Virtex-II Pro, Virtex-4 y Virtex-5 son particularmente interesantes para
los diseñadores de System on a chip (SoC) porque pueden incluir dos núcleos
del IBM PowerPC405.
Xilinx también crea núcleos IP (IP Cores) en lenguajes HDL para permitir a los
diseñadores reducir los tiempos de desarrollo. Estos núcleos van desde funciones
simples comocontadores a sistemas complejos como microcontroladores, un
ejemplo de esto último es el microprocesador Microblaze.
-AMD
Ofrece una familia de CPLD con 5 sub-familias llamadas Mach 1 a Mach 5. Cada
dispositivo Macth, contiene bloques con múltiplos PAL; Match 1 Y 2 consiste en el
modelo 22V16PALs, Match 3 y 4 consiste en el modelo 34V16PALs y el Match 5
ofrece modelos parecidos a los anteriores pero con mayor desempeño en velocidad.
Todos los Match están basados en tecnología EEPROM. El rango de capacidad
lógica están cercas de 2000 a 5000 compuertas.
-LATTICE SEMICONDUCTOR
Lattice ofrece un completo rango de CPLD; con dos líneas de productos principales:
Lattice pLSI que consiste en tres familias de EEPROM de CPLD; y el ispLSI que
son los mimos dispositivos pLSI, con la diferencia de los ispLSI son programables
en el sistema. Los rangos de capacidades lógicas están cercas de 1200 a 4000
compuertas y el retardo de pin a pin es de 10 ns. El Lattice de la serie 3000
representa su desarrollo más grande con 5000 compuertas y un retardo de 10 a 15
ns.
Construcción de un CPLD
- Las vías están compuesta de 100 porciento metal de aluminio
diluido, aquí se identificará como Metal 2, los contactos son 100
porciento metal de aluminio diluido, identificado como Metal 1.
EL término FPIC incluye a los CI’s no destinados a las aplicaciones lógicas. Son
FPIC’s. Dentro de éstos están los que nos interesan, que son los CPLD´s.
- 2 Conectores a Vcc (+5v) y otros 2 a GND para facilitar las conexiones a los
puertos I/O.
- 1 Barra de 10 LED’s.
RECUERDA QUE…
- Setup Time: Estabilizar las entradas antes del flanco de subida para que no
se creen indeterminaciones,
- La mayoría de los CPLDs usan una de dos configuraciones para esta matriz:
interconexión mediante bloques o interconexión mediante multiplexores.
1
BIBLIOGRAFÍA:
- http://electronicaintegrada.blogspot.com/2008/02/cpld-
verilog.html
- http://rinconelectronicosjd2.blogspot.com/2013/01/cplds-y-
recuerda-que.html
- http://dea.unsj.edu.ar/sisdig2/CPLDs.pdf
- http://clubensayos.com/Tecnolog%C3%ADa/DISPOSITIVOS-
LOGICOS-PROGRAMABLES/792070.html
- http://www.monografias.com/trabajos-pdf3/curso-fpga-
programacion-arreglos-compuertas/curso-fpga-programacion-
arreglos-compuertas.pdf
- http://www.eetasia.com/ARTICLES/1999DEC/1999DEC22_ICD_PL_E
DA_AN.PDF?SOURCES=DOWNLOAD
- http://emagcas.webs.ull.es/index_archivos/apuntes_sed/Arquitectura_
FPGA.pdf
- http://miguelrodriguezlopez.wordpress.com/2012/12/06/cpldsfami
lia-y-entorno-de-trabajo/