Circuitos Digitales I Tema V Lenguajes ABEL y PLAN PLDs (Programmable Logic Devices) Estándares de documentación Circuitos MSI Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 158 Diseño Lógico en el Mundo Real ! Circuitos con mucho más de 6 entradas –No es práctico usar mapas de Karnaugh ! Diseño correcto mucho más importante que la minimización de compuertas – Se usa un “lenguaje de alto nivel” para especificar las operaciones lógicas ! Uso de programas para manipular las expresiones lógicas y minimizar los diseños. ! PALASM, ABEL, CUPL – desarrollados para PLDs ! VHDL, Verilog – desarrollados para ASICs Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 159 Lenguajes de programación de PLD ! Son herramientas que facilitan la forma de programación de los fusibles de los PLD, mediante la especificación simbólica de funciones lógicas. ! El archivo con las expresiones lógicas en la sintaxis del lenguaje debe ser procesado por un compilador que genera un archivo con el patrón de fusibles para el PLD especificado. ! Existen diferentes lenguajes con pequeñas variaciones en la sintaxis: ABEL (Data IO Corp.), PALASAM (Monolitic Memories), CUPL (Logical devices), PLAN (National Semiconductors). Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 160 ABEL (Advanced Boolean Equation Language) Desarrollado para utilizarlo con dispositivos lógicos programables (PLDs) , los cuales tienen una estructura AND-OR programable. ! Funciones lógicas combinacionales – Operadores: AND, OR, NOT, & – Conjuntos: # ! XOR, XNOR $ !$ XBUS = [X3,X2,X1,X0]; XBUS = [1,1,0,1]; XBUS = 13; – Relaciones: (XBUS == YBUS) (XBUS > [1,1,0,1]) – Variables intermedias Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 161 Estructura de un programa en ABEL module nombre_del_módulo Caracteres encerrados entre comillas simples title cadena IDdispositivo device TipoDeDispositivo; declaraciones de pines otras declaraciones equations ecuaciones test_vectors vectores de prueba end nombre_del_módulo Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 162 Ejemplo en ABEL Module Circuito_de_Alarma Title ‘Ejemplo de Circuito de Alarma, adaptado del libro DDPP J. Wakerly, 3ra edicion’ C_ALARMA device ‘P16V8C’ “ Esto es un comentario “ pines de entrada: PANICO, HABILITAR, SALIR VENTANA, PUERTA, GARAJE “ pines de salida: ALARMA pin 1,2,3; pin 4,5,6; pin 11 istype ‘com’; “definiciones de constantes: X = .X.; “Ecuacion intermedia SEGURO = VENTANA & PUERTA & GARAJE equations ALARMA = PANICO # HABILITAR & !SALIR & !SEGURO; Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 163 Ejemplo en ABEL (continuación) test_vectors ([PANICO,HABILITAR,SALIR,VENTANA,PUERTA,GARAJE]->[ALARMA]) [ 1, .X., .X., .X., .X., .X.]->[ 1 ]; [ 0, 0, .X., .X., .X., .X.]->[ 0 ]; [ 0, 1, 1, X, X, X]->[ 0 ]; [ 0, 1, 0, 0, X, X]->[ 1 ]; [ 0, 1, 0, X, 0, X]->[ 1 ]; [ 0, 1, 0, X, X, 0]->[ 1 ]; [ 0, 1, 0, 1, 1, 1]->[ 0 ]; end Circuito_de_Alarma Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 164 Procesador del lenguaje ABEL (compilador) ! Revisa la sintaxis ! Revisa las capacidad de pines del dispositivo ! Expande las declaraciones del lenguaje y las ecuaciones ! Reduce las ecuaciones a la forma suma de productos para el PLD ! Revisa los vectores de prueba contra las ecuaciones ! Revisa los requerimientos de las ecuaciones (número de entradas, términos producto) contra la disponibilidad en el PLD ! Determina el “mapa” de fusibles para programar el PLD Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 165 El lenguaje PLAN (1) ! Operadores: . PUNTO, identificador de etiqueta de comando/ delimitador de lista = IGUALDAD * AND, Producto + OR, Suma := CLOCK (próximo estado después del reloj) :+: XOR, OR Exclusivo / complemento (precede a un símbolo) ; delimitador de comentarios Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 166 El lenguaje PLAN (2) ! Sintaxis del archivo: Dispositivo (PALxxxx o Lista de los pines del Lista de los pines del Macros y Ecuaciones de GALxxxx) componente (1ra mitad) componente (2da mitad) conmutación ! Ejemplo: Implementar en un GAL16V8 todas las funciones básicas: NOT, NAND, NOR, OR-EX, NOR-EX Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 167 Solución al Ejemplo GAL16V8 ;Todas las funciones basicas E_INV E1_NAND E2_NAND E1_NOR E2_NOR E1_XOR E2_XOR E1_XNOR E2_XNOR GND /OE NC NC NC S_XNOR S_XOR S_NOR S_NAND S_INV VCC S_INV S_NAND S_NOR S_XOR S_XNOR = = = = = /E_INV /E1_NAND+/E2_NAND /E1_NOR*/E2_NOR /E1_XOR*E2_XOR + E1_XOR*/E2_XOR /E1_XNOR*E2_XNOR + E1_XNOR*/E2_XNOR E_INV E1_NAND S_INV E2_NAND S_NAND E1_NOR S_XOR S_NOR E2_NOR S_XNOR E1_XOR E2-XNOR E2_XOR E2-XNOR E2_XNOR Ver salida Luis Tarazona, UNEXPO Barquisimeto E2_XNOR EL-3213 – Circuitos Digitales I - 2004 168 Estándares de documentación ! Diagramas de bloque – Primer paso en el diseño jerárquico ! Diagramas esquemáticos ! Programas HDL (ABEL, PLAN,Verilog, VHDL) ! Diagramas temporizados ! Descripciones del circuito Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 169 Diagrama de bloques Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 170 Diagramas esquemáticos ! Detalles de entradas, salidas e interconexiones de los componentes ! Designadores de referencia ! Número de cada pin ! Títulos de cada bloque ! Nombres para todas las señales ! Conectores de página a página Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 171 Ejemplo de diagrama esquemático Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 172 Estructura esquemática plana Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 173 Estructura esquemática jerárquica Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 174 Otra documentación ! Diagramas temporizados – Salida del simulador – Herramientas especializadas para diagramas temp. ! Descripciones de circuito – Texto (procesadores de texto) – Puede ser tan grande como un libro (por ej. La descripción de un ASIC ) – Normalmente incorpora otros elementos – (diagramas de bloque, diagramas temporizados, etc.) Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 175 Símbolos de compuertas Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 176 Símbolos equivalentes DeMorgan ¿Cuál símbolo utilizar? Su uso depende de los nombres de las señales y de los niveles activos Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 177 Nombres de señales y niveles activos ! Los nombres se eligen de modo que sean descriptivos. ! Niveles activos – ALTO(H) o BAJO(L) – La condición indicada ocurre en el estado ALTO o BAJO, de acuerdo con la designación de nivel activo en el nombre Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 178 Ejemplo Circuito Lógico ALTO cuando ocurre error ERROR OK_L BAJO cuando ocurre error Circuito Lógico ERROR_L ERROR ERROR1_L Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 179 Arreglos lógicos programables (PLA) ! Dispositivo combinacional de dos niveles AND-OR caracterizado por: – Conexiones programables en el arreglo AND – Conexiones programables en el arreglo OR ! No están presentes todos los posibles términos AND ! No se puede implementar todas las combinaciones de funciones posibles ! La capacidad de un PLA se denota por: entradas x productos x salidas Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 180 Estructura de un PLA 3x6x3 A X X B X X X C X OR de 8 entradas AND de 3 entradas X X X x = programado • = fijo Luis Tarazona, UNEXPO Barquisimeto X Z0 Z1 Z2 EL-3213 – Circuitos Digitales I - 2004 181 Lógica de arreglo programable (PAL) ! Dispositivo combinacional de dos niveles AND-OR caracterizado por: – Conexiones programables en el arreglo AND – Conexiones fijas en el arreglo OR ! No están presentes todos los posibles términos AND ! No se puede implementar todas las combinaciones de funciones posibles ! Si un término producto es requerido por dos funciones diferentes, se debe implementar dos veces en en arreglo AND Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 182 Estructura de un PAL A X X B X X C X AND de 3 entradas X X X X OR de 8 entradas Z0 Z1 x = programado • = fijo Luis Tarazona, UNEXPO Barquisimeto Z2 EL-3213 – Circuitos Digitales I - 2004 183 Modificaciones a la estructura básica ! Realimentación – Si la salida del arreglo OR tiene un camino hacia el arreglo AND es posible construir lógica multinivel ! Salidas con registro – Junto con la realimentación permiten la implementación de circuitos secuenciales de mediana-alta complejidad ! Pines bidireccionales para E/S – Si los buffers de salida tienen 3 estados, es posible usar el camino de realimentación para porveer entradas extra ! Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 184 Arreglo genérico de compuertas (GAL) ! Es un nombre comercial (Lattice Semiconductors) para dispositivos tipo PAL que pueden reprogramarse eléctricamete (tecnología similar a las EEPROM) ! Un GAL puede servir como reemplazo a diferentes PAL comerciales ! GALs más populares: 16v8 Luis Tarazona, UNEXPO Barquisimeto 20v8 22v10 EL-3213 – Circuitos Digitales I - 2004 185 Decodificadores MSI Luis Tarazona, UNEXPO Barquisimeto Decodificador eo ap M ! Un decodificador es un circuito de múltiples entradas y multiples salidas que convierte entradas codificadas en salidas Palabra de codificadas en otro código código (mapeo). de entrada ! Es posible que ciertas combinaciones de entrada no Entradas sean válidas y generen salidas habilitadoras “sin sentido” ! El decodificador puede tener entradas habilitadoras que habiliten su operación. Palabra de código de salida EL-3213 – Circuitos Digitales I - 2004 186 Decodificadores binarios (1) ! Entrada de n bits ! Salida: uno de 2n (salidas mutuamente exclusivas) ! Las entradas habilitadores permiten la conexión en cascada HABILITADOR Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 S0 S1 S2 Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 187 Decodificador binario de 2 a 4 Observe la notación “x” (don’t care) Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 188 Diagrama lógico del decodificador de 2 a 4 Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 189 Decodificador MSI de 2 a 4 ! Amplificación en la entrada (menos carga) ! Compuertas NAND (más rápido) Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 190 Símbolo del decodificador Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 191 Decodifcicador 74x139 completo Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 192 Más símbolos para el decodificador Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 193 Decodificador de 3 a 8 Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 194 Símbolo del decodificador de 3 a 8 74x138 Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 195 Aplicaciones de los decodificadores ! Usos típicos: – Generador de minitérminos para funciones de salidas múltiples. – Generador de señales de selección de dispositivos (Chip Select - CS) en sistemas con microprocesadores. ! Los circuitos decodificadores MSI tienen una funcionalidad similar a las celdas presentes en dispositivos PLD LSI. Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 196 Ejemplos de uso: Línea 0 1 2 3 4 5 6 7 X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 F1 0 0 1 1 0 0 1 0 F2 0 1 1 0 0 0 0 1 F3 1 0 0 0 1 1 0 0 5 V +V 1k 74LS138 74LS138 X Y Z A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 F3 F2 F1 Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 197 Ejemplos de uso ! Diseñar un circuito decodificador con 74xx138 para ser utilizado en un sistema con un microprocesador 6802 de acuerdo a la siguiente tabla: Direcciones de sel. A15 A14 A13 A12 1 X X X 0 1 1 1 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 1 Dispositivo selec. Selección ROM : 8000 – FFFF RAM : 7000 – 7FFF P. Paralelo : 6000 – 6FFF Reloj de tiempo real : 5000 – 5FFF P. Serial : 4000 – 4FFF Expansión : 1000 – 1FFF ¿Y con el ‘154? NOTA: El microprocesador genera 2 señales activas en alto cuando la dirección de acceso a memoria es válida: E y VMA Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 198 Decodificadores de 7 segmentos ! Son utilizados para convertir dígitos BCD o binarios a su representación en código de 7 segmentos. ! Las salidas del decodificador manejan un visualizador de 7 segmentos (con LEDS, LCD o incandescente) – A veces es necesario utilizar drivers a las salidas para manejar altas corrientes/voltajes – Algunos integrados tienen salidas especiales para este propósito Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 199 Dispositivos de 7 segmentos a f b g e c d Ejemplo Luis Tarazona, UNEXPO Barquisimeto EL-3213 – Circuitos Digitales I - 2004 200