INGENIERIA ELECTRONICA
PRACTICA DE ELECTRONICA
DIGITAL
TEMA:
MONOGRAFIA DE UN CPLD
INTEGRANTES :
SANTANA SOLIS, LUIS
GONZALES VIZA, RICARDO ANGEL
TURNO:
MIERCOLES: DE 5-7PM
AREQUIPA PERU
2014
CPLD
Un CPLD (del acrnimo ingls Complex Programmable Logic Device) es un dispositivo electrnico.
Los CPLD extienden el concepto de un PLD (del acrnimo ingls Programmable Logic Device) a un mayor
nivel de integracin ya que permite implementar sistemas ms eficaces, ya que utilizan menor espacio,
mejoran la fiabilidad del diseo, y reducen costos. Un CPLD se forma con mltiples bloques lgicos, cada uno
similar a un PLD. Los bloques lgicos se comunican entre s utilizando una matriz programable de
interconexiones, lo cual hace ms eficiente el uso del silicio, conduciendo a una mejor eficiencia a menor
costo. A continuacin se explican brevemente las principales caractersticas de la arquitectura de un CPLD.
Arquitectura
Matriz de Interconexiones Programables
Macroceldas
Las macroceldas de un CPLD son similares a las de un PLD. Estas tambin estn provistas con registros,
control de polaridad, y buffers para salidas en altaimpedancia. 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, slo que esta no puede ser conectada directamente a un pin de salida. La
salida de una macrocelda interna va directamente a la matriz de interconexin programable.
Celda de entrada/salida
La funcin de una celda de entrada/salida es permitir el paso de una seal hacia dentro o hacia el exterior del
dispositivo. Dependiendo del fabricante y de la arquitectura del CPLD estas celdas pueden o no ser
consideradas parte del bloque lgico.
CPLD MAX 7000
Su Arquitectura de un CPLD es la forma en que estn organizados y a la disposicin a los elementos internos
del dispositivo. Son similares al diagrama de bloque de un CPLD genrico, Teniendo la estructura clsica
PAL/GAL que nos permite generar las funciones suma de producto. Su densidad vara entre dos bloques LAB
y 16 bloques LAB, dependiendo del dispositivo concreto de la serie que se vaya a utilizar.1
Un bloque LAB es similar a un SPLD y que el tamao de los encapsulados varan entre 44 y 208 pines, cabe
mencionar que utilizan una tecnologa de proceso basada en EEPROM. Las versiones que se pueden
programar dentro del sistema para ello se utilizan la interfaz estndar JTAG.2
Funcionamiento de un CPLD
Un CPLD (del acrnimo ingls Complex Programmable Logic Device) es un dispositivo electrnico que
extiende el concepto de un PLD (del acrnimo ingls Programmable Logic Device) a un mayor nivel de
integracin ya que permite implementar sistemas ms eficaces, porque utilizan menos espacio, mejoran la
fiabilidad del diseo, y reducen costos.
Un CPLD se forma con mltiples bloques lgicos, cada uno similar a un PLD. Los bloques lgicos se
comunican entre s utilizando una matriz programable de interconexiones, lo cual hace ms eficiente el uso
del silicio, conduciendo a una mejor eficiencia a menor costo.
CRITERIOS DE SELECCIN
Es importante tomar en cuenta la densidad de compuertas que se requiere, y para ello es
necesario determinar el nmero de macroceldas que debe poseer el dispositivo; tambin es importante
determinar el nmero de entradas y de salida, segn la ecuacin lgica obtenida. los retardos de
propagacin entre la seal de entrada y de salida se debe de tomar en cuenta cuando se esta
trabajando con altas velocidades de procesamiento. hay sistemas que trabajan con diferentes niveles de
tensin por lo que es importante conocerlos tomarlo en cuenta en el dispositivo CPLD. estos niveles de
tensi pueden oscilar entre 1.5 V a 5 V.
En la metodologa modernas de diseos digitales, para sistemas de relativa complejidad, en lugar
de utilizar descripciones del comportamiento del sistema en forma de tablas (tablas de la verdad, de
transicin de estado, etc) se utilizan lenguajes especficos, loslenguajes de descripcin de hardware o
HDL (Hardware Description Language), que pueden describir tanto el comportamiento como la
estructura de un sistema.
Diseo de un decodificador binario de 2 a 4.
Paso 1: Se realiza la descripcin del sistema, de forma que el entorno de desarrollo pueda
generar una representacin interna del mismo. se puede optar entre una descripcin estructural, con
ayuda de un editor grfica de captura de esquemas, o una descripcin del comportamiento con un
lenguaje HDL.
Paso 2: Se realiza una compilacin funcional, con la que se verifican posibles errores en el
diseo (salidas cortocircuitadas, entradas flotantes...) y adems se genera una representacin interna del
sistema, con la que puede efectuarse una simulacin funcional del mismo. en esta fase la simulacin es
slo funcional y es independiente de la tecnologa de implementacin, que es la que depende de los
retardo que se produzcan.
Paso 3: En el software (compilador) se especifica la tecnologa de implementacin. Se proyecta el
diseo al tipo de celdas lgicas, celdas de entradas y salida, y recurss de conexin del CPLD
seleccionado. tras la compilacin se obtiene una representacin interna del sistema implementado y se
genera un fichero informativo donde se detalla el porcentaje de ocupacin del dispositivo, las
asignaciones de celdas y pines de entrada y salida, y otros..)
Paso 4: Se hace una simulacin y anlisis temporal. con la informacin detallada de las
caractersticas tcnicas de cada uno de sus componentes de la biblioteca de elementos se puede realizar
una nueva simulacin mas real y se puede establecer los tiempos de retardos.
Paso 5: Una vez compilado y simulado el circuito; se debe configurar fsicamente el CPLD, lo
que puede realizarse fsicamente con un programador de PLD o en el propio sistema (ISP). Es preferible
utilizar este ltimo para reducir los psibles daos mecnicos en los pines del dispositivo, por lo tanto
suelen configurarse los CPLD en la propia tarjeta del sistema final, con una programacin ISP (In-System
Programming), esta opcin se utiliza en circuitos borrables elctricamente EEPROM o configurables con
celdas SRAM. Comnmente se utiliza el protocolo JTAG (joint Test Action Group). que utiliza cuatro
lineas para transferir bit a bit entre el computador y la tarjeta del sistema la informacin de configuracin.
Estructura de un CPLD
Los CPLD son dispositivo lgicos programables con una complejidad entre los dispositivos PLA y
FPGA. La caracterstica principal comun entre los CPLD y PAL, es la configuracin de memoria novolatil, y con respecto a los dispositivo FPGA, la caracterstica comn de ste ltimo es que posee
un desarrollo de compuertas de grande densidades, con la diferencia que los FPGA, tienen mayor
densidad que los CPLD. A modo general un CPLD es como si se tuviera varios PLD, tipo PAL, dentro
de un slo chip. el tamao mas grande los CPLD permite implementar ecuaciones lgicas o diseos
mas complicados. la programacin de estos dispositivos es generalmente en lenguajes de
descripcin de hardware , por ejemplo, VHDL o Verilog.
Matriz de Suma de Puntos
Se relacionan con un mayor nmero de interconexin de secciones de compuertas programables,
tales secciones pueden ser otros PLD, es decir el CPLD puede contener similares PLD de baja
densidad, "PAL", interconectados entre s, en un solo chip.
La estructura principal son los bloques de matriz lgicos (LAB) o bloques de Funcin (Funtion Block),
que se comunican en un bus interno con la matriz de Interconexin Programable (PIA) o tambin
llamado Fast CONNECT Switch Matrix. Cada bloque es un grupo de 16 macroceldas; tienen
entradas y salidas similares a los PLD de baja densidad, con capacidad de programarse. El nmero
de pines de entrada y/o salida depender del dispositivo, para el caso de la figura 1, corresponde al
modelo MAX7000S, basados en celdas EEPROM, del fabricante ALTERA, de 6 a 16 pines de
entrada y salida, estas ltimas se encuentran en el bloque de control de entrada y salida, la cual
tambin posee conexin con el PIA, y en la figura 2, el bloque de salida y entrada I/O, poseen un
bufer para los dispositivos de entrada y salida.
Cada bloque de funcin, para el caso de XILINX modelo de ejemplo "XC9500", esta compuesto de
18 macroceldas independientes. Los bloques funcionales tambin reciben una seal (reloj) de
sincronismo global, una seal para habilitar la salida y una seal para habilitar el reset/set. El bloque
funcional genera 18 salidas que maneja el FAST CONNECT. estas 18 salidas y su correspondiente
seales de habilitacin son gobernadas por el bloque I/O. la lgica dentro de los bloques funcionales
es implementada utilizando la representacin de suma de producto .
Las macroceldas pueden ser configuradas individualmente por una funcin de registro. 5 matriz de
compuertas AND, directos al "product terms "(termino de producto), son utilizados como entrada de
datos primario (para las compuertas OR y XOR) para implementar funciones combinacionales, o
como entradas de control incluyendo el reloj, seales set/reset, y seal de habilitacin de salida. Los
registros de las macroceldas pueden ser configurados como FLIP-FLOP tipo D o FLIP-FLOP tipo T. o
este puede ser omitido por una operacin combinacinoal. Cada registro soporta operaciones set y
reset asincronos. durante el encendido del dispositivo, todos los registro son inicializados al estado
predefinido por el usuario.
Las seales de contro global son desarrolladas individualmente en cada macrocelda, incluyendo
seal de reloj, seal de set/reset, y la seales de habilitacin. la macrocelda registra seales de reloj
de cada uno de los tres relojes globales o del termino producto. La seal GSR, es una seal de
Reset/set, de entrada que permite que sea definido por el usuario.
El termino producto, controla que la matriz de las 5 AND sean asignadas a cada macrocelda, un
ejemplo pudiera ser que todas las AND sean manejadas por una OR. El inconveniente de esto es
que se evidencia el retardo de un termino producto a otro como se observa en la siguiente figura.
Figura # 6: Lgica de
Macrocelda utilizando termino producto
El FAST CONNECT Switch Matriz conecta las seales a la entrada del bloque de funcin; tanto las
salidas del bloque I/O como las salidas del bloque de funcin las manejas el Fast Connect Switch
Matrix, cualquiera de estas pueden ser seleccionadas, a travs de la programacin del usuario, para
poder manejar cada bloque con un retardo uniforme.
El Bloque I/O es la interfaz entre la lgica interna y los pines de entrada y salida del dispositivo
CPLD. Cada bloque de I/O incluye un bufer de entrada y un manejador de salida; un multiplexor que
selecciona la salida habilitada, y tambin incluye una seal de control de tierra para la programacin
del usuario. El bufer de entrada es compatible con tensin de 5 V CMOS, 5 V TTL, y seales de
voltaje de 3.3 V. El bufer de entrada usa internamente un suministro de potencia de 5 V ( Vccint),
para asegurarse que el umbral de entrada permanezca constante y no varie con el voltaje Vccio. la
seal de salida se habilita de la siguiente formas: una seal puede ser generada por el termino
producto de la macrocelda, cualquiera de las seales globales de OE, o por una seal de tercer
estado GTS.
Look-Up Table (LUT), Es un circuito que implementa una funcin de lgica combinacional para
almacenar una lista de valores de salida que correspondan a todas las posibles combinaciones de
entradas, es decir un nmero de elementos almacenados son usados; para resumir una funcin
lgica, almacenando cada funcin como una tabla de la verdad, esto se ilustra en la figura 12.
Tomando como ejemplo la tabla de la verdad de la figura 12, como comparador A1A0=B1B2 , hace
que la salida lgica AEQB = 1 lgico. Una matriz de 16 flip-flops (Q0 hasta Q15), contiene data de
todas las posibles combinaciones A1A0B1B0, por cada combinacin se necesita un flip-flop. La
entrada de cada LUT son decodificada por un decodificador de direcciones, cada salida del
decodificador activa una buffer de tres estados, que pasa por un bloque de salida de flip-flop.
Cuando se activa un buffer para pasar el contenido del flip-flop, el resto de los buffer permanecen en
estado de alta impedancia, de esta manera se bloquea la data de los otros flip-flops. El contenido de
los flip-flop son cargados cuando el LUT es programado, con las funciones requeridas. Continuando
con el ejemplo de la figura 12, los 16 elementos almacenados en dicha tabla, combinados , para
seleccionar una salida combinacional y para interconectar con otras partes del chip, es llamado
Elemento Lgico (LE). La funcin del desempeo del elemento lgico es similar a la de macroceldas
en los PLD de suma de producto. La estructura de un elemento lgico se muestra en la figura 13.
El circuito "Cascade Chain", permite al usuario programar la funcin boleana, este circuito puede ser
de compuertas AND o OR.
Embedded Array Block (EAB), este bloque es una matriz de 2048 elemento de almacenaje que
pueden ser usado eficientemente en la implementacin de funciones lgicas complejas.
El FLEX10K es un dispositivo del fabricante ALTERA, tiene una matriz de 6 filas por 24 columnas de
bloque de matriz lgico (LAB), es decir que tendr 144 LAB, que a su ves son 8 x 144LAB= 1152
elementos lgicos, estos elementos tambin tienen 6 EAB; 6X2048 = 12288 bits de almacenaje de
EAB, note que un EAB tiene mas capacidad de almacenaje que un LAB combinado.
Algunos los dispositivos basados en LUT, son de tecnologa de memoria de acceso aleatorio esttica
(SRAM), la ventaja de esta configuracin es que este puede ser fabricado en densidades muy altas
de celdas de almacenajes y programar rpidamente, comparado con un dispositivo, (suma de
producto, SOP), basado en EEPROM. La desventaja es que las celdas SRAM, son voltiles; es decir
que deben reconfigurarse cada vez que se reinicia el sistema.
El mismo fabricante ALTERA, posee el modelo MAXII, "tabla de datos LUT", tal modelo contiene un
bloque de memoria "falsh", dentro del dispositivo. La mayora de estos almacenajes de memorias
flash, son particionadas como un bloque de programacin o configuracin de memoria flash (CFM);
este provee un almacenaje no voltil; la CFM descarga y configura la lgica. Una porcin pequea
de la memoria flash es utilizado para la data de usuario, este pequeo bloque de memoria UFM,
provee una almacenaje para el usuario de propsito general, en este bloque se provee la conexin
del puerto programable para el arreglo lgico de lectura y escritura.
El bloque UFM, puede ser utilizado como el EEPROM serial, para almacenar informacin no voltil,
este bloque se conecta al bloque de arreglo lgico a travs del bus Multitrack interconectado, de esta
manera se permite la interface con el bloque de elemento lgico.
Construccin de un CPLD
Las vas estn 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. Como
caractersticas especiales posee tecnologa "FLASH FAST". Las compuertas en el canal N son del
orden de 0.45 micra, y el canal P son del orden de 0.5 micra. El dispositivo esta formado por una
capa de nitruro de silicio sobre otra capa de dixido de silicio. Posee dos capas de polisilicio. El
PLOY 1 fue utilizada exclusivamente en compuertas flotantes, y POLY 2 (polisilicio y silicio de
tusteno) fue utilizado para todas las compuertas estndar, en la matrix de lineas de programas y de
palabra. La matrix de celdas programables son EEPROM (tecnologa FAST FLASH), el Metal 2, ser
utilizado para las lneas de programa y de la palabra de dato. El Metal 1 distribuye la tierra GND y
una lnea de un bit. El dieltrico se encuentra entre las capas POLY es de ONO "xido-nitruro-xido".
el color anaranjado es Nitruro de Silicio, el color azul es Metal 1 y 2, el color amarillo es xido, el
color verde es polisilicio, color rojo difusin del canal P y N, y el color gris es el substrato P. Ver figura
19.
Si el dispositivo es borrable elctricamente EEPROM, sus conexiones es a base de transistores
MOS de puerta flotante, que contiene una puerta adicional embebida en el aislante entre la puerta
normal (accesible desde el exterior) y el substrato. esta puerta extra, sin conexin al exterior y
completamente rodeada de material aislante, es la puerta flotante. los transistores MOS, inicialmente
no tienen carga en la puerta flotante, de forma que actan como transistores normales: en cada linea
vertical se realiza la operacin lgica Y; es necesario que todas las lneas horizontales estn bajas
(a=b=c=d=L) para que las lneas verticales sean altas (x=y=z=H), y basta que una de las entradas
sea baja (a=L, por ejemplo) para que su lnea correspondiente sea alta, y por tanto los transistores
cuyas puertas estn conectadas a esa lnea de entada pasan a conduccin, y entonces las lneas
verticales se hacen L. En otras palabras, los transistores hacen el punto de conexin entre las lneas
verticales y horizontales. Para desconectar un punto de conexion (un transistor), en la fase de
programacin se aplica una tensin relativamente elevada (15 a 20)V en la puerta del transistor a
desconectar; esta tensin hace que, por un proceso fsico conocido como efecto tnel, atraviesen
electrones desde el substrato por la fina capa de aislante y queden almacenados en la puerta
flotante. En definitiva la introduccin de electrones en la puerta flotante desconecta el transistor del
circuito, ya que siempre estar cortado (estado off).
Diseo de un CPLD
Es importante tomar en cuenta la densidad de compuertas que se requiere, y para ello es necesario
determinar el nmero de macroceldas que debe poseer el dispositivo; tambin es importante
determinar el nmero de entradas y de salida, segn la ecuacin lgica obtenida. los retardos de
propagacin entre la seal de entrada y de salida se debe de tomar en cuenta cuando se esta
trabajando con altas velocidades de procesamiento. hay sistemas que trabajan con diferentes
niveles de tensin por lo que es importante conocerlos tomarlo en cuenta en el dispositivo CPLD.
estos niveles de tensi pueden oscilar entre 1.5 V a 5 V.
En la metodologa modernas de diseos digitales, para sistemas de relativa complejidad, en lugar de
utilizar descripciones del comportamiento del sistema en forma de tablas (tablas de la verdad, de
transicin de estado, etc) se utilizan lenguajes especficos, los lenguajes de descripcin de hardware
o HDL (Hardware Description Language), que pueden describir tanto el comportamiento como la
estructura de un sistema.
Fabricantes de un CPLD
ALTERA
ATMEL
Ofrece el modelo ATF1500A, alto desempeo y alta densidad de compuertas, construido con
tecnologa FLASH, con un retardo de 7.5 ns de pin a pin.
AMD
Ofrece una familia de CPLD con 5 sub-familias llamadas Mach 1 a Mach 5. Cada dispositivo Macth,
contiene bloques con mltiplos 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 desempeo en velocidad. Todos los Match estn basados en tecnologa EEPROM. El rango
de capacidad lgicas estn cercas de 2000 a 5000 compuertas.
CYPRESS SEMICONDUCTOR
Son similares a los dispositivos AMD y Lattice en muchas maneras; el Cypress CPLD, llamado
FLASH370, esta basado en tecnologa FLASH EEPROM, y ofrece un desempeo 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.
LATTICE SEMICONDUCTOR
Lattice ofrece un completo rango de CPLD; con dos lneas 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 lgicas estn
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 mas grande con 5000 compuertas y un retardo de 10 a 15 ns.
XILINX
Ofrecen el modelo XC7000 y el XC9500; hay dos familias principales en el XC7000: la serie 7200 y
7300, el 7200 es un dispositivo moderadamente pequeo con 600 a 1500 compuertas; y con un
retardo de pin a pin de 25 ns. El 7300 ofrece 3000 compuertas y lo otro que diferencia al 7200 es
que el 7300 incluye dos compuertas OR en cada macroceldas. Finalmente el XC9500 ofrece la
programacin dentro del circuito, con una capacidad de 6200 compuertas y un retardo de 5 ns.
BIBLIOGRAFIA
http://electronicaintegrada.blogspot.com/2008/02/cpld-verilog.html
http://html.rincondelvago.com/dispositivos-logicos-programables_2.html
http://yombo.org/2013/04/circuitos-complejos-de-logica-programable-cpld-introduccion/
http://serdis.dis.ulpgc.es/~itis-dl/Teoria%20VHDL/mas
%20cosas/II_DISPOSITIVOS_LOGICOS_PROGRAMABLES.pdf
http://es.wikipedia.org/wiki/CPLD
http://server-die.alc.upv.es/asignaturas/lsed/2002-03/PLDs/Web%5CCPLD.htm
http://unidadsimd.obolog.es/cpldhttp://unidadsimd.obolog.es/cpld-83442
http://www.profesores.frc.utn.edu.ar/electronica/tecnicasdigitalesi/pub/file/Publicaciones/PLD-PAL-CPLD.pdf
https://upcommons.upc.edu/pfc/bitstream/2099.1/6452/1/PFC%20final5.pdf
Referencias
[1] Antonio Lloris Ruiz, Alberto Prieto Espinosa, Luis Parrilla Roure: Sistemas Digitales; Mc Graw Hill,
pag. 501-535; 2003
[2] http://www.xilinx.com/
[3] http://www.altera.com/
[4] Digital Design with CPLD applications and VHDL
[5] Altera Device Package Information Data Sheet
[6] XC9500 In-System Programmable CPLD Family (XILINX)
OBJETIVOS
- conocer el funcionamiento y programacion de un cpld .
-saber las diferentes funciones de un CPLD al variar su programacin.
-dar a conocer las diferentes empresas [marcas] que lo fabrican.
- poder conseguir una adecuada orientacin para poder programacin un CPLD.
-este trabajo abarca los conocimientos necesarios para el manejo de un CPLD.
CONCLUSIONES
-los CPLDs son dispositivos electrnicos que sintetizan el funcionamiento de varias compuertas lgicas.
-es necesario tener los conocimientos bsico tericos de un CPLD para el manejo conveniente de su
programacin.
- los CPLDs necesitan de un lenguaje de programacin predeterminado por las empresas
-Los CPLDs permiten implementar sistemas ms eficaces, ya que utilizan menor espacio, mejoran la fiabilidad
del diseo, y reducen costos