Registros de Tres Estados con la GAL22V10 Se presentan dos proyectos realizados con ABEL-HDL mediante el software de desarrollo isp LEVER starter de Lattice, ambos relacionados con salidas que pueden tomar tres estados: alto (1), bajo (0) y el tercer estado (alta impedancia). Al igual que las compuertas lógicas, se pueden empaquetar varios registros de tres estados independientes. Por ejemplo, la figura 1 muestra los diagramas de las terminales del 74LS125 y del 74LS126, cada uno de los cuales contiene cuatro registros de tres estados no inversores independientes en paquetes DIP de 14 pines. Nuestro primer proyecto consiste en emular al primero de ellos. Figura 1 Búferes cuádruples de tres estados. Para crear el buffer cuádruple de tres estados se empleó la herramienta esquemática, según ilustra la figura 2. La habilitación para cada buffer es en nivel bajo, como se observa. Figura 2 Captura esquemática para el primer proyecto. La figura 3 exhibe el reporte del grabador de fusibles con fórmulas y asignación de pines. Y4 Y4.OE = ( = ( A4 ); !C4 ); Y3 Y3.OE = ( = ( A3 ); !C3 ); Y2 Y2.OE = ( = ( A2 ); !C2 ); Y1 Y1.OE = ( = ( A1 ); !C1 ); Page 3 ispLEVER 5.0.00.47.19.05_Starter - Device Utilization Chart Sun Oct 21 20:50:04 2007 ls125.bls P22V10G Chip Diagram: P22V10G C4 C3 C2 C1 A4 A3 A2 A1 GND +---------\ /---------+ | \ / | | ----| | 1 24 | | | | 2 23 | | 3 22 | | 4 21 | | 5 20 | | | | 6 19 | | | | 7 18 | | | | 8 17 | | 9 16 | | 10 15 | | | | 11 14 | | 12 13 | | | `---------------------------' Vcc Y1 Y3 Y4 Y2 Figura 3 Reporte del mapa de fusibles con asignación de patitas. La siguiente figura muestra los vectores de simulación propuestos. MODULE VECTAS X,Z = .x.,.z.; " no importa y alta impedancia de salida " entradas C1,A1,C2,A2,C3,A3,C4,A4 PIN; "SALIDAS Y1,Y2,Y3,Y4 PIN ISTYPE 'COM'; TEST_VECTORS ([C1,A1,C2,A2,C3,A3,C4,A4]->[Y1,Y2,Y3,Y4]) [1,1, 1,0, 0,1, 0,0] ->[Z, X, X, 0]; [0,1, 0,1, 0,1, 1,0] ->[1, 1, X, Z]; [1,0, 1,0, 1,0, 0,1] ->[X, Z, X, 1]; [0,1, 0,0, 1,X, 1,0] ->[X, 0, X, Z]; END Figura 4 Archivo VECTAS.ABV que define cuatro vectores de prueba. Z = alta impedancia. La figura 5 brinda el resultado de la simulación del JEDEC grabado. Figura 5 Simulación de los cuatro vectores de prueba. El achurado implica alta impedancia. El segundo proyecto es emular el comportamiento del dispositivo octal 74LS541 de tres estados no inversor, ver figura 6. Octal significa que la parte contiene ocho buffers individuales. Este MSI tiene sus ocho entradas en un lado del integrado y sus ocho salidas en el otro lado. Ambas entradas de habilitación /E1 y /E2 deben activarse para habilitar las salidas del dispositivo de tres estados. Los símbolos rectangulares pequeños dentro de los símbolos del los búferes indican histéresis. Las entradas del 74LS541 tienen 0.4V de histéresis típicamente. Figura 6 Encapsulado de 20 pines del buffer octal 74LS541 de tres estados. A diferencia del proyecto previo, ahora no se usó la captura esquemática sino que se definió la relación de entrada-salida mediante un módulo de texto que se ofrece en la figura 7. MODULE tresEdosBuff TITLE 'Buffer octal de 3 estados con dos permisos' X,Z = .x.,.z.; " entradas E1,E2,D8..D1 pin 1,2,4..11; D = [D8..D1]; E = !(E1#E2); " Salidas Y8..Y1 pin 23..20, 18..15 istype 'com'; Y = [Y8..Y1]; equations Y = D; Y8.oe = Y7.oe = Y6.oe = Y5.oe = E; E; E; E; "!(E1#E2); "!(E1#E2); Y4.oe = !(E1#E2); Y3.oe = !(E1#E2); Y2.oe = !(E1#E2); Y1.oe = !(E1#E2); test_vectors ([E1,E2,D] -> Y) [X, 1, X] -> Z; [1, X, X] -> X; [0, 0,23] -> 23; [0, 0,45] -> X; [0, 1, X] -> Z; [1, 0, X] -> Z; [0, 0,93] -> X; [0, 0,159] -> 159; END Figura 7 Archivo LS541.ABL para definir la ecuación de salida, el control del tercer estado y ocho vectores de prueba. La figura 8 nos indica el formulado y la distribución de patitas de la GAL. Y8 Y8.OE Y7 Y7.OE = = = = ( ( ( ( D8 ); !E1 & !E2 ); D7 ); !E1 & !E2 ); Y6 Y6.OE = ( = ( D6 ); !E1 & !E2 ); Y5 Y5.OE Y4 Y4.OE = = = = ( ( ( ( D5 ); !E1 & !E2 ); D4 ); !E1 & !E2 ); Y3 Y3.OE = ( = ( D3 ); !E1 & !E2 ); Y2 Y2.OE = ( = ( D2 ); !E1 & !E2 ); Y1 Y1.OE = ( = ( D1 ); !E1 & !E2 ); ispLEVER 5.0.00.47.19.05_Starter 21 20:21:37 2007 - Device Utilization Chart Page 3 Sun Oct Buffer octal de 3 estados con dos permisos P22V10G Chip Diagram: ---------------------------------------------------------------------------P22V10G E1 E2 D8 D7 D6 D5 D4 D3 D2 D1 GND +---------\ /---------+ | \ / | | ----| | 1 24 | | | | 2 23 | | 3 22 | | 4 21 | | | | 5 20 | | 6 19 | | 7 18 | | | | 8 17 | | 9 16 | | | | 10 15 | | 11 14 | | | | 12 13 | | | | | `---------------------------' Vcc Y8 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Figura 8 chip report para el segundo proyecto, mostrando relaciones y asignación de pines. La figura 9 ilustra la respuesta en tiempo de los ocho vectores de prueba. Figura 9 Comportamiento del mapa de fusibles grabado. Achurado = Tercer estado. El diseño realizado permite la conformación de buses o ductos. Un bus es compartido por varios dispositivos y para evitar que éstos se dañen, cuando algunos de ellos no deben poner sus señales en el bus se les pone en el tercer estado, de tal modo que sólo uno de ellos puede tener sus salidas activas. Memorias y puertos son dispositivos que se usan en el diseño de microcomputadoras y tienen la característica de que sus salidas se van al tercer estado cuando no son seleccionadas.