METODOLOGIA DE ANALISIS DE LOS DISPOSITIVOS LOGICOS PROGRAMABLES COMPLEJOS Enrique Mandado Pérez Jacobo Alvarez Ruiz de Ojeda Serafín A. Pérez López Departamento de Tecnología Electrónica Universidad de Vigo 1.Resumen En este trabajo se desarrolla una metodología para el análisis de los dispositivos lógicos programables ( DLP ) que tiene como objetivo sistematizar su estudio y orientar al usuario en la elección del más adecuado a su aplicación.Para ello se clasifican en primer lugar de acuerdo con las formas de realizar la macrocelda y la matriz de conexión y la forma de compartir los recursos de ésta entre las macroceldas.A continuación se estudian las características de las diversas variantes. 2.Introducción. Se definen los dispositivos lógicos programables complejos o avanzados basados en una matriz lógica programable (PAL) como aquellos que combinan una matriz de este tipo con un conjunto de macroceldas y responden a la estructura básica de la figura 1. En la tabla 1 se representa una forma de clasificar los DLP complejos que hace ver claramente la gran cantidad de conceptos con variantes alternativas que convierten este campo de la microelectrónica en uno de los más dinámicos. 1.DLP basado en PAL Uno de los conceptos básicos para clasificar los DLP's es la forma de realizar la macrocelda que puede poseer una o más (normalmente dos) realimentaciones y uno o más (normalmente dos) biestables. En el caso de tener dos realimentaciones éstas pueden ser independientes o combinadas entre las macroceldas. El segundo concepto utilizado en la tabla 1 es el de la compartición de los recursos (puertas Y y puertas O) de la matriz entre las macroceldas. Cuando las macroceldas no comparten recursos de la matriz entre ellas se dice que el DLP es de asignación fija y por el contrario cuando los comparten se dice que el DLP es de asignación variable. El tercer concepto es la forma de realizar la matriz de conexión que puede ser única (DLP's no segmentados) o múltiple (DLP's segmentados). Pero las tres formas de clasificar los DLP's basados en matrices Y-programables (PAL) no son disjuntas sino que se combinan entre sí de tal manera que un DLP puede tener una o más matrices, compartir o no los recursos de éstas entre macroceldas y poseer una mayor o menor complejidad de estas últimas. A continuación se estudian los DLP's de acuerdo con la clasificación de la tabla 1. En primer lugar se supone que poseen asignación fija y se analizan según la complejidad de la macrocelda. A continuación se analizan las formas de compartir los recursos de la matriz entre macroceldas y finalmente se estudian los DLP segmentados. 3.Dispositivos lógicos complejos con asignación fija , doble realimentación y un único biestable. Su esquema de bloques se representa en la figura 2 en la que se observa que cada macrocelda se conecta a la matriz lógica a través de una doble conexión. macrocelda. Esta estructura permite que sea posible realimentar la salida del biestable, al mismo tiempo que el terminal de entrada/salida se utiliza como entrada. 3.Macrocelda con 1 biestable y doble realimentación 4.Dispositivos programables con asignación fija , doble realimentación y dos biestables. La macrocelda estudiada en el apartado anterior , aunque posee dos realimentaciones, tiene un único biestable, y por lo tanto en ella no es posible sincronizar la variable de entrada al mismo tiempo que se realimenta la variable de estado interno memorizada. Surge de esta forma el interés de dotar a la macrocelda de un segundo biestable destinado a sincronizar la variable de entrada tal como se indica en la figura 4 en la que se representa el esquema básico de una macro- 2.DLP con asignación fija En la figura 3 se representa el esquema básico de una macrocelda de este tipo, que se realimenta a la matriz a través de dos puertas seguidoras/inversoras independientes. La entrada de una de ellas se conecta a la salida del biestable D que constituye el elemento de memoria de la macrocelda y la entrada de la otra se conecta a la salida de la puerta de tres estados que está conectada además a un terminal de entrada/salida de la 4.Macrocelda con 2 biestables y doble realimentación celda que posee dos biestables y dos realimentaciones independientes. 5.Dispositivos programables con asignación variable. Tal como se indica en el apartado 2 se da esta denominación a los DLP en los que las macroceldas no están asignadas de manera rígida a un único conjunto de puertas Y de la matriz. Su finalidad es superar la limitación que presenta la utilización de una matriz lógica Y-programable (PAL) en la que el número de productos asignados a cada puerta O es fijo. Para ello es necesario prever la compartición de puertas O entre macroceldas, que se puede realizar de diferentes formas que se estudian en sucesivos apartados. Para realizar dicho estudio es conveniente transformar el diagrama de bloques de la figura 1 en el de la figura 5 en la que se indican por separado el conjunto de puertas Y y las puertas O de tal manera que la matriz queda convertida en una simple matriz de conexión que permite programar la unión entre las macroceldas, las variables de entrada y los conjuntos de puertas Y. 5.Esquema DLP basado en PAL El esquema de la figura 5 constituye el diagrama de bloques de un DLP con asignación fija sobre el que pueden analizarse las diferentes variantes de compartición. 5.1.Dispositivos lógicos programables con compartición de productos lógicos. Esta solución se basa en el diagrama de bloques representado en la figura 6 que consiste en colocar un circuito (steering circuit) entre las salidas de los conjuntos de las puertas Y y las puertas O que permita que las primeras se puedan conectar a más de una de las últimas. 6.DLP con compartición de productos Esta variante puede presentar a su vez muchas soluciones distintas según el número de macroceldas que comparten un conjunto de puertas Y. En la figura 7 se representa una solución práctica consistente en compartir m puertas Y entre dos macroceldas contiguas. El circuito de compartición consiste en una matriz de m columnas, tantas como puertas Y se comparten. Las puertas O tienen m entradas que se conectan a través de uniones programables a las columnas que a su vez están unidas de forma fija a las salidas de las puertas Y. Este circuito constituye por lo tanto una pequeña matriz lógica programable (PLA) que le da al DLP la flexibilidad de la que carece al estar realizado con una matriz Y-programable (PAL) solamente. O conectada a la macrocelda superior aparece el nivel cero o la salida de la puerta O conectada a la macrocelda inferior. Esta forma de compartición presenta el inconveniente de que las puertas O se conectan en serie y de esta forma se aumenta el tiempo de propagación. 7.Realización práctica del circuito de la figura 6 5.2.Dispositivos lógicos programables con compartición de sumas de productos lógicos. Constituye otra forma de compartición de puertas O entre macroceldas que consiste en conectar las puertas O de cada macrocelda con las de las contiguas a través de un circuito multiplexor.El esquema del circuito de la figura 8 representa una de las soluciones utilizadas en la práctica. La salida de cada puerta O se conecta a una de las entradas de un multiplexor de dos canales formado por dos puertas seguidoras de tres estados y la otra entrada se conecta al nivel de cero lógico. Según la entrada de selección (EN) del multiplexor (que en la figura 8 es programable mediante un elemento independiente) se encuentre en nivel cero o uno, a la entrada inferior de la puerta 8.DLP con compartición de sumas de productos 5.3.Dispositivos lógicos programables con distribución múltiple de suma de productos lógicos (Product term allocation). Consiste en : - Elevar el número de puertas O de tal manera que cada macrocelda y cada conjunto de puertas Y tengan una asociada. - Colocar un sistema de compartición entre las puertas O asociadas a los conjuntos de puertas Y y las asociadas a las macroceldas. Estas dos características que se acaban de describir se pueden combinar con la de elevar el número de conjuntos de puertas Y con respecto al de macroceldas, de tal manera que a una de éstas últimas se le pueda asignar un número variable de puertas Y según las necesidades de la aplicación concreta. En la figura 9 se representa una solución práctica en la que cada macrocelda está conectada a una puerta O de cuatro entradas y el número de puertas O situadas antes del circuito de compartición es doble del de macroceldas. Cada una de estas puertas O lleva asociado un demultiplexor que forma parte del sistema de compartición. Según la entrada G1 de selección del demultiplexor se encuentre en nivel uno o cero, la salida de la puerta O asociada a un conjunto de puertas Y queda unida a una entrada de la puerta O de la macrocelda representada en la figura 9 o a la de la macrocelda contigua. Se distribuyen de esta forma los recursos de la matriz entre las macroceldas adecuadas. 5.4.Dispositivos lógicos programables con conjuntos de puertas NO-Y (NAND) de expansión (Expander product term array). ciones que el DLP permita que el estado interno de cada macrocelda se realimente a todas las demás. Por ello el crecimiento de la complejidad de los DLPs provocó el desarrollo de las estructuras segmentadas como la representada en la figura 11. Consiste en asociar a cada macrocelda un conjunto de puertas NO-Y ( NAND ).El conjunto formado por las puertas Y, la puerta O, la macrocelda y el conjunto de puertas NO-Y de expansión constituye un bloque funcional que se repite n veces en el interior del DLP.El esquema puede verse en la figura 10.Las puertas NO-Y (NAND) de expansión permiten: - Ampliar la complejidad de las funciones lógicas asociadas a una macrocelda. 10.DLP con puertas NO-Y de expansión 9.DLP con distribución múltiple de sumas de productos - Realizar circuitos lógicos combinacionales o secuenciales (registros de sincronización de entrada por niveles o flancos, etc). que aumentan la flexibilidad del dispositivo lógico programable en su conjunto. 6.Dispositivos lógicos programables con matrices múltiples. Todos los dispositivos lógicos programables complejos estudiados en apartados anteriores poseen una única matriz. Pero la elevación del número de entradas y de macroceldas de un DLP produce a su vez una elevación del número de entradas de las puertas Y que provoca un incremento del tiempo de propagación del circuito.Por otra parte, cuando el número de macroceldas es elevado, no es necesario en muchas aplica- En ella existe una matriz de conexión denominada global o total a la que están conectadas todas las variables de entrada y una parte de las macroceldas, mientras que el resto de las macroceldas se dividen en grupos (dos en la figura 11) que se realimentan sólo entre sí, constituyendo una matriz de conexión local o regional. La combinación de la segmentación con todos los conceptos estudiados anteriormente da lugar a un gran número de variantes. Por ejemplo en las estructuras segmentadas, al igual que en las no segmentadas estudiadas previamente , las macroceldas pueden poseer una o más realimentaciones. La utilización de dos realimentaciones en las estructuras segmentadas permite que una macrocelda se realimente a través de la matriz local o la global y que su terminal de entrada/salida pueda ser utilizado como terminal de entrada a la matriz global (variable de entrada del DLP) al mismo tiempo que el estado interno de la macrocelda se realimenta a través de la matriz local. 11.DLP con estructura segmentada