Circuitos Digitales I Tema V Lenguajes ABEL y PLAN PLDs (Programmable Logic Devices) Estándares de documentación Circuitos MSI Luis Tarazona, UNEPO 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, UNEPO 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, UNEPO 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, OR, NOR & #! $!$ Conjuntos: BUS = [3,2,1,0]; BUS = [1,1,0,1]; BUS = 13; Relaciones: (BUS == YBUS) (BUS > [1,1,0,1]) Variables intermedias Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 161
Estructura de un programa en ABEL module nombre_del_módulo title cadena IDdispositivo device TipoDeDispositivo; declaraciones de pines otras declaraciones equations ecuaciones test_vectors vectores de prueba end nombre_del_módulo Caracteres encerrados entre comillas simples Luis Tarazona, UNEPO 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 pin 1,2,3; VENTANA, PUERTA, GARAJE pin 4,5,6; pines de salida: ALARMA pin 11 istype com ; definiciones de constantes: =..; Ecuacion intermedia SEGURO = VENTANA & PUERTA & GARAJE equations ALARMA = PANICO # HABILITAR &!SALIR &!SEGURO; Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 163
Ejemplo en ABEL (continuación) test_vectors ([PANICO,HABILITAR,SALIR,VENTANA,PUERTA,GARAJE]->[ALARMA]) [ 1,..,..,..,..,..]->[ 1 ]; [ 0, 0,..,..,..,..]->[ 0 ]; [ 0, 1, 1,,, ]->[ 0 ]; [ 0, 1, 0, 0,, ]->[ 1 ]; [ 0, 1, 0,, 0, ]->[ 1 ]; [ 0, 1, 0,,, 0]->[ 1 ]; [ 0, 1, 0, 1, 1, 1]->[ 0 ]; end Circuito_de_Alarma Luis Tarazona, UNEPO 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, UNEPO 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) :+: OR, OR Exclusivo / complemento (precede a un símbolo) ; delimitador de comentarios Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 166 El lenguaje PLAN (2)! Sintaxis del archivo: Dispositivo (PALxxxx o GALxxxx) Lista de los pines del componente (1ra mitad) Lista de los pines del componente (2da mitad) Macros y Ecuaciones de conmutación! Ejemplo: Implementar en un GAL16V8 todas las funciones básicas: NOT, NAND, NOR, OR-E, NOR-E Luis Tarazona, UNEPO 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_OR E2_OR E1_NOR E2_NOR GND /OE NC NC NC S_NOR S_OR S_NOR S_NAND S_INV VCC S_INV = /E_INV S_NAND = /E1_NAND+/E2_NAND S_NOR = /E1_NOR*/E2_NOR S_OR = /E1_OR*E2_OR + E1_OR*/E2_OR S_NOR = /E1_NOR*E2_NOR + E1_NOR*/E2_NOR Ver salida E_INV E1_NAND E2_NAND E1_NOR E2_NOR E1_OR E2-NOR E2_OR E2-NOR E2_NOR E2_NOR S_INV S_NAND S_OR S_NOR S_NOR Luis Tarazona, UNEPO Barquisimeto 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 169
Diagrama de bloques Luis Tarazona, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 171
Ejemplo de diagrama esquemático Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 172 Estructura esquemática plana Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 173
Estructura esquemática jerárquica Luis Tarazona, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 175
Símbolos de compuertas Luis Tarazona, UNEPO 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, UNEPO 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, UNEPO 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, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 180 Estructura de un PLA 3x6x3 A B C AND de 3 entradas OR de 8 entradas Z0 Z1 x = programado = fijo Z2 Luis Tarazona, UNEPO Barquisimeto 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 182 Estructura de un PAL A B C AND de 3 entradas OR de 8 entradas Z0 Z1 x = programado = fijo Z2 Luis Tarazona, UNEPO Barquisimeto 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, UNEPO 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 20v8 22v10 Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 185
Decodificadores MSI! Un decodificador es un circuito de múltiples entradas y multiples salidas que convierte entradas codificadas en salidas codificadas en otro código (mapeo).! Es posible que ciertas combinaciones de entrada no sean válidas y generen salidas sin sentido! El decodificador puede tener entradas habilitadoras que habiliten su operación. Palabra de código de entrada Entradas habilitadoras Decodificador Mapeo Palabra de código de salida Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 186 Decodificadores binarios (1)! Entrada de n bits! Salida: uno de 2 n (salidas mutuamente exclusivas)! Las entradas habilitadores permiten la conexión en cascada HABILITADOR S0 S1 S2 Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 187
Decodificador binario de 2 a 4 Observe la notación x (don t care) Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 188 Diagrama lógico del decodificador de 2 a 4 Luis Tarazona, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 190 Símbolo del decodificador Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 191
Decodifcicador 74x139 completo Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 192 Más símbolos para el decodificador Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 193
Decodificador de 3 a 8 Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 194 Símbolo del decodificador de 3 a 8 74x138 Luis Tarazona, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 196 Ejemplos de uso: Línea Y Z F1 F2 F3 0 0 0 0 0 0 1 1 0 0 1 0 1 0 2 0 1 0 1 1 0 3 0 1 1 1 0 0 4 1 0 0 0 0 1 5 1 0 1 0 0 1 6 1 1 0 1 0 0 7 1 1 1 0 1 0 5 V +V 1k Y Z 74LS138 74LS138 A2 A1 A0 E3 E2 E1 Q7 Q6 Q5 Q4 Q3 Q2 Q1 Q0 F3 F2 F1 Luis Tarazona, UNEPO 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. Dispositivo selec. A15 A14 A13 A12 Selección 1 ROM : 8000 FFFF 0 1 1 1 RAM : 7000 7FFF 0 1 1 0 P. Paralelo : 6000 6FFF 0 1 0 1 Reloj de tiempo real : 5000 5FFF 0 1 0 0 P. Serial : 4000 4FFF 0 0 0 1 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, UNEPO 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, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 199
Dispositivos de 7 segmentos a f g b e c d Ejemplo Luis Tarazona, UNEPO Barquisimeto EL-3213 Circuitos Digitales I - 2004 200