Curso: Electrnica Digital-Practica Tema: CPLD Docente: Ing. Juan Carlos Cuadros Integrantes:
. Grupo:
Arequipa Per
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. Un dispositivo lgico programable, o PLD (Programmable Logic Device), es un dispositivo cuyas caractersticas pueden ser modificadas y almacenadas mediante programacin. El principio de sntesis de cualquier dispositivo lgico programable se fundamenta en el hecho de que cualquier funcin booleana puede ser expresada como una suma de productos. El dispositivo programable ms simple es el PAL (Programmable Array Logic). El circuito interno de un PAL consiste en un arreglo, o matriz, de compuertas AND y un arreglo de compuertas OR. El arreglo AND es programable mientras que el OR generalmente es fijo. Mediante una matriz de conexiones se seleccionan cuales entradas sern conectadas al arreglo AND, cuyas salidas son conectadas al arreglo OR y de esta manera obtener una funcin lgica en forma de suma de productos. Una matriz de conexiones es una red de conductores distribuidos en filas y columnas con un fusible en cada punto de interseccin. La mayora de los PLDs estn formados por una matriz de conexiones, una matriz de compuertas AND, y una matriz de compuertas OR y algunos, adems, con registros. Con estos recursos se implementan las funciones lgicas deseadas mediante un software especial y un programador. Las matrices pueden ser fijas o programables. El tipo ms sencillo de matriz programable, que data de los aos 60, era una matriz de diodos con un fusible en cada punto de interseccin de la misma. En la figura 1.1 se muestran los circuitos bsicos para la mayora de los PLDs.
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. Matriz de Interconexiones Programables La matriz de interconexiones programables (PIM) permiten unir los pines de entrada/salida a las entradas del bloque lgico, o las salidas del bloque lgico a las entradas de otro bloque lgico o inclusive a las entradas del mismo. La mayora de los CPLDs usan una de dos configuraciones para esta matriz: interconexin mediante bloques o interconexin mediante multiplexores. El primero se basa en una matriz de filas y columnas con una celda programable de conexin en cada interseccin. Al igual que en las GAL esta celda puede ser activada para conectar/desconectar la correspondiente fila y columna. Esta configuracin permite una total interconexin entre las entradas y salidas del dispositivo o bloques lgicos. Sin embargo, estas ventajas provocan que disminuya el rendimiento del dispositivo, adems de aumentar el consumo de energa y el tamao del componente. En la interconexin mediante multiplexores, existe un multiplexor por cada entrada al bloque lgico. Las vas de interconexin programables son conectadas a las entradas de un nmero de multiplexores por cada bloque lgico. Las lneas de seleccin de estos multiplexores son programadas para permitir que sea seleccionada nicamente una va de la matriz de interconexin por cada multiplexor la cual se propagara a hacia el bloque lgico. Cabe mencionar que no todas las vas son conectadas a las entradas de cada multiplexor. La rutabilidad se incrementa usando multiplexores de mayor tamao, permitiendo que cualquier combinacin de seales de la matriz de interconexin pueda ser enlazada hacia cualquier bloque lgico. Sin embargo, el uso de grandes multiplexores incrementa el tamao de dispositivo y reduce su eficiencia. Bloques Lgicos Un bloque lgico es similar a un PLD, cada uno pose un bloque de compuertas AND y OR en forma de suma de productos, una configuracin para la distribucin de estas sumas de productos, y macroceldas. El tamao del bloque lgico es una medida de la capacidad del CPLD, ya que de esto depende el tamao de la funcin booleana que pueda ser implementada dentro del bloque. Los bloques lgicos usualmente tienen de 4 a 20 macroceldas. Macroceldas Estas tambin estn 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, 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.
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 no-volatil, 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.
Figura # 1: Diagrama de Bloque de un CPLD (por ALTERA)
Figura # 2: Diagrama de Bloque de un CPLD (por XILINX)
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 . Figura # 3: Bloque de Funcin
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.
Figura # 4: Macrocelda con Bloque de Funcin
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.
Figura # 5: Reloj de Macrocelda
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
Figura # 7: Lgica de un 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.
Figura # 8: Fast Connect Switch Matrix
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.
Figura # 9: Bloque I/O
Cada salida tiene un control independiente de "Slew Rate" (Mxima variacin del voltaje de salida con respecto al tiempo); este control permite reducir o controlar el ruido en el sistema, con slo modificar el Tslew. Figura # 10: Slew Rate
Estos CPLD poseen circuito con memoria EEPROM; que permiten reescribirse muchas veces, dependiendo del fabricante puede ser hasta 10.000 veces, como es el caso del fabricante XILINX, los modelos de la serie XC9500.
Tabla de Datos (Look up Table) Esta arquitectura se basa en la implementacin lgico de bus de interconexin de filas y columnas, estas interconexiones tambin proveen conexin al bloque de matriz lgicos (LAB). El LAB consiste de varios elementos lgicos (LE); segn el modelo pueden ser 10 LE, por cada LAB. Los LE es una pequea unidad lgica que proveen una eficiente implementacin de funciones lgicas del usuario. El Multitrack Interconnect provee una rpida conexin entre los LAB.
Figura # 11: Diagrama de bloque de la arquitectura de tabla de datos
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.
Figura # 12: Look-Up Table
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.
Figura # 13: Elemento Lgico
El circuito "Cascade Chain", permite al usuario programar la funcin boleana, este circuito puede ser de compuertas AND o OR.
Figura # 14: Operacin en Cascada
Bloque de Matriz Lgico (LAB), consiste en un nmero de elementos lgicos e interconectados localmente; el bloque LAB, esta conectado con el resto del dispositivo por medio de una serie de columnas y filas interconectadas, lo cual para este caso el fabricante ALTERA ha llamado FastTrack Interconnect, tambin se le conoce como Multitrack Interconnect.
Figura # 15: Bloque de Matriz Lgicos
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.
http://www.altera.com/support/software/drivers/dri-bb-xp.htmlSistemas Digitales: Principios y Aplicaciones. Ronald J. Tocci, Neal S. Widmer, Gregory L. Moss.Dcima Edicin. Prentice Hall IEC FRANCISCO JAVIER TORRES VALLE CAPTULO II: DISPOSITIVOS LGICOS PROGRAMABLES