TEMA III Circuitos Digitales Electrónica II 2008
TEMA III Circuitos Digitales 3.1 REPRESENTACIÓN DE LA INFORMACIÓN 3.2 ALGEBRA DE BOOLE 3.3 MODULOS COMBINACIONALES BÁSICOS
3.1 REPRESENTACIÓN DE LA INFORMACIÓN 1.1 Del mundo analógico al digital. 1.2 Sistemas digitales. Definición e historia. 1.3 Sistemas de numeración. 1.4 Números negativos. 1.5 Códigos binarios.
Del mundo analógico al digital Se dice que una señal es digital cuando las magnitudes de la misma se representan mediante valores discretos en lugar de variables continuas. La digitalización o conversión analógica-digital (conversión A/D) consiste básicamente en realizar de forma periódica medidas de la amplitud de la señal o de su frecuencia y traducirlas a un lenguaje numérico. La conversión A/D la realiza el MODULADOR. La conversión D/A la realiza el DEMODULADOR. El MODEM realiza ambas funciones (MO-DEM).
Del mundo analógico al digital Cuatro procesos que intervienen en la conversión A/D: Muestreo: periódicamente se toman muestras (Ej. de la amplitud de onda). La velocidad con que se toman las muestra (número de muestras por segundo) es la frecuencia de muestreo. Retención: las as muestras tomadas se retenidas (retención) el tiempo suficiente para permitir evaluar su nivel (cuantificación). Cuantificación: se mide el nivel de voltaje de cada una de las muestras. Se asigna un margen de valor a un único nivel de salida. Codificación: se traducen los valores obtenidos a código binario.
Del mundo analógico al digital Señal analógica función matemática continua Amplitud y periodo variable en función del tiempo
Del mundo analógico al digital Muestreo en amplitud : Consiste en tomar muestras periódicas de la amplitud de onda. La velocidad con que se toman las muestras o frecuencia de muestreo.
Del mundo analógico al digital Cuantificación: Se “discretiza” el nivel de voltaje de cada una de las muestras.
Del mundo analógico al digital Codificación: Consiste en traducir los valores muestreados a código binario (binario puro, grey, BCD, etc)
Del mundo analógico al digital Teorema de muestreo de Nyquist-Shannon: Para poder reconstruir la señal original de forma exacta a partir de sus muestras la frecuencia de muestreo debe ser mayor que dos veces el ancho de banda de la señal de entrada Para señales analógicas, el ancho de banda es la anchura, medida en hercios, del rango de frecuencias en el que se concentra la mayor parte de la potencia de la señal.
Ventajas de la señal digital La señal digital es más resistente al ruido y menos sensible que la analógica a las interferencias, etc. Ante la pérdida de cierta cantidad de información, la señal digital puede ser reconstruida gracias a los sistema de regeneración de señales (usados también para amplificarla, sin introducir distorsión). Cuentan con sistemas de detección y corrección de errores: Bit de paridad: permite detectar un número impar de erores. Código Hamming: permite corregir un error mediante 3 bit de paridad en códigos de 4 bits. Códigos polinomiales: basados en un poliomio generador.
Ventajas de la señal digital Es posible introducir el valor de una muestra dañada, obteniendo el valor medio de las muestras adyacentes (interpolación). La señal digital permite la multigeneración infinita sin pérdidas de calidad. Facilidad para el procesamiento de la señal. Cualquier operación es fácilmente realizable a través de cualquier software de edición o procesamiento de señal.
Inconvenientes de la señal digital La transmisión de señales digitales requiere una sincronización precisa entre los tiempos del reloj de transmisor, con respecto a los del receptor. Un desfase, por mínimo que sea, cambia por completo la señal. La señal digital requiere mayor ancho de banda para ser transmitida que la analógica. Se necesita una conversión analógica-digital previa y una decodificación posterior, en el momento de la recepción.
Sistemas digitales. Definición -Tipos de circuito de commutación: Combinacional: La salida depende de los valores actuales de la entrada. Secuencial: La salida depende de los valores que ha habido en la entrada tiene memoria. -Diseño lógico de circuitos combinacionales: Deducir la tabla de verdad que describe su comportamiento Simplificar las ecuaciones del circuito (Karnaugh). Implementación utilizando puertas lógicas. -Diseño lógico de circuitos secuenciales: Construir su tabla de estados Implementación con biestables y circuitos combinacionales.
Sistemas digitales. Historia -Primeros conmutadores: diodos de cristal y de tubos de vacío (1906). -Transistor (TRT): más pequeño y fiable, de material semiconductor (1950). -Circuitos integrados (CI): integran gran número de TRT´s (1961). Clasificación de los CI´s por número de TRT´s que llevan: • SSI: pequeña escala de integración (1 .. 100 transistores). • MSI: media escala de integración (100 .. 1000 transistores). • LSI: gran escala de integración (1000 .. 10000 transistores). • VLSI: alta escala de integración (más de 10000 transistores).
Sistemas de numeración. DEFINICIÓN: sistema que emplea un número determinado de símbolos (dependiente de la base) para representar números. Cada dígito tendrá un valor determinado por la posición que ocupa. n n-1 0 -p Se cumple: Nb = anb+ an-1b + ... + a0b + ... + a-pb siendo: ai: símbolo del sistema de numeración, n+1: número de dígitos enteros y p: número de dígitos decimales
Sistemas de numeración. DENOMINACIÓN: reciben diferentes nombres según su base: •Decimal (base 10). (Símbolos: 0..9). Dígito 1 0 -1 -2 Ej: 55,23 = 5*10 + 5*10 + 2*10 + 3*10 •Binario (base 2). (Símbolos: 0,1). Bit. 1 -2 Ej: 10,01 = 1*2 + 1*2 = 2,25 •Octal (base 8). (Símbolos: 0..7). 1 0 -1 Ej: 65,4 = 6*8 + 5*8 + 4*8 = 53,5 •Hexadecimal (base 16). (Símbolos: 0..9,A,B,C,D,E,F). 1 0 -1 Ej: A7,C = 10*16 + 7*16 + 12*16 = 167,75
Sistemas de numeración. CONVERSIÓN: -Desde cualquier sistema a decimal: Sustitución serie: Aplicar la fórmula antes vista (por pesos). -De decimal a otro sistema en base b: Parte entera del número a convertir: Dividir ésta entre b. El último cociente (última división) será el dígito de mayor peso (dígito más a la izquierda) El primer resto (primera división) será el de menor peso (dígito a la izquierda de la coma decimal). Para la parte fraccionaria: Multiplicar ésta por b. La parte entera de dicho producto es el siguiente dígito. Si es mayor que la unidad, se resta dicho valor.
Sistemas de numeración. EJEMPLO: Pasar a binario el número decimal: 6,375. 6/2=3 resto 0. 0 (bit de menor peso entero). 3/2=1 resto 1. 1 1/2=0 resto 1. 1 (bit de mayor peso entero). 0,375*2=0,75. 0 (bit de mayor peso fraccionario). 0,75*2=1,5. 1 0,5*2=1. 1 (bit de menor peso fraccionario). Luego: 6,375 = 110,011 De binario a octal: Se agrupan los bits de tres en tres y se convierte cada grupo en un dígito octal. De binario a hexadecimal: Las agrupaciones son de cuatro bits.
Aritmética binaria. Es similar a la decimal, pero más sencilla: SUMA RESTA Las circuitos lógicos que realizan aritmética binaria son más sencillos que para aritmética decimal. 0 + 0 0 + 1 1 + 0 1 + 1 1 0 y acarreo 1 a la siguiente columna 0 - 0 0 – 1 1 - 0 1 – 1 1 y restamos 1 a la siguiente columna 1
Aritmética binaria. EJEMPLO: 1310 = 00001101 + 1110 = 00001011 = Suma con 8 bits: 1310 = 00001101 + 1110 = 00001011 = ---------------- 00011000 = 2410 Sustración con 8 bits: 1310 = 00001101 - 1110 = 00001011 = ------------- 00000010 = 210
Sistemas de numeración.
Números negativos. n-1 n-1 -Signo y magnitud: rango: -2 < N < 2 El bit más significativo indica el signo y el resto el módulo. Ej: 010101012 = 8510 110101012 = -8510 n-1 n-1 __ n -Complemento a 1 (C1): rango: -2 < N < 2 def: N = (2 – 1) - N Si + el bit más significativo indica el signo y el resto el módulo. Si - el bit más significativo indica el signo; el módulo es el resultante de cambiar los “1” por “0” y viceversa. 101010102 = -8510 n-1 n-1 n -Complemento a 2 (C2): rango: -2 <= N < 2 def: N* = 2 - N Si – igual que el C1, pero se suma “1” al resultado. Ej: 010101012 = 8510 010101002 = 8410 101010112 = -8510 101011002 = -8410
Números negativos. Convenios de representación de números enteros (4 bits)
Números negativos. Suma y resta en complemento a 2 -Suma normal, no diferenciándose los negativos -Resta, como una suma pero complementando a dos el sustraendo x-y = x+ (-y) En ambos cuidado con el desbordamiento u “overflow”: La representación correcta de la suma (incluyendo el signo) requiere más de n bits. Suma: Se ignora el acarreo de salida del bit más significativo Se produce desbordamiento si los signos de los sumandos son iguales y el del resultado es diferente (o que los acarreos de entrada y salida del bit más significativo son diferentes) Resta: Complementar a dos el sustraendo y realizar la suma, o bien invertir el sustraendo y sumar “1” al resultado
Números negativos. Ejemplos de suma y resta en complemento a 2: n-1 1. Suma de dos números positivos, suma < 2 +3 = 0011 +4 = 0100 ------- +7 0111 resultado correcto 2. Suma de dos números positivos, suma >= 2 +5 = 0101 +6 = 0110 1011 error de desbordamiento +11 requiere 5 bits 3. Suma de un positivo y un negativo, negativo > positivo -6 = 1010 -1 1111 resultado correcto
Números negativos. Ejemplos de suma y resta en complemento a 2. Continuación: 4. Suma de un positivo y un negativo, negativo < positivo -5 = 1011 +6 = 0110 ------- +1 (1) 0001 correcto, el acarreo se ignora n-1 5. Suma de dos números negativos, | suma | <= 2 -3 = 1101 -4 = 1100 -7 (1) 1001 correcto, el acarreo se ignora 6. Suma de dos números negativos, | suma | > 2 -6 = 1010 (1) 0101 error de desbordamiento -11 requiere 5 bits, no es acarreo, el bit de signa ha cambiado.
Códigos binarios. DEFINICIÓN: Utilizan los dígitos 0 y 1. Código binario natural: se codifica de forma directa. Con n bits se pueden representar 2**n combinaciones diferentes. Código BCD: se codifica cada dígito decimal (esto es, 0..9) directamente con un código binario. Se requieren al menos 4 bits por cada dígito decimal. Los códigos pueden tener las siguientes características: • Ponderado: el valor de cada bit depende de la posición que ocupe (peso). Ej.: Binario natural. • Continuo: si los números decimales consecutivos tiene representaciones adyacentes, es decir, varían en un único bit. Ej.: Gray o reflejado. • Cíclico: si la última representación es adyacente a la primera.
Códigos binarios. EJEMPLOS: Decimal B. Natural (3 bits) (4 bits) Exceso-3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 000 001 010 011 100 101 110 111 ---- 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Gray (4 bits) 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000 Decimal Codificado en Binario (BCD) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 0001 0000 0001 0001 0001 0010 0001 0011 0001 0100 0001 0101
Códigos binarios. -Paridad: detecta 1 error -Polinomiales: correctores CONTROL DE ERRORES: -Paridad: detecta 1 error Par: número par de 1s Impar: número impar de 1s -Polinomiales: correctores RECEPTOR 7 bits 8 bits ASCII Señal de error (ASCII + p. par) EMISOR
3.2 Algebra de BOOLE 2.1 Teoremas y propiedads. 2.2 Funciones: representación y simplificación. 2.3 Funciones incompletamente especificadas 2.4 Puertas lógicas 2.5 Cronogramas
Algebra de Boole Binary digIT George Boole, desarrolló un sistema algebraico para formular proposiciones con 2 símbolos (1 y 0) y a tres operadores: AND (y) -> producto lógico OR (o) -> suma lógica NOT (no) Las variables Booleanas sólo toman los valores: 1 ó 0. Una variable Booleana representa un bit que quiere decir: Binary digIT
Algebra de Boole Operadores básicos : La función AND La función OR Si todas los dos operandos son “1”, la función vale “1” Si algún operando es “0”, la función vale“0” La función OR Si algún operando es “1”, la función vale “1” Si todos los operandos son “0”, la función vale “0” La función NOT Si el operando es “0”, la función vale “1” Si el operando es “1”, la función vale “0” La tabla de verdad se usa para especificar el comportamiento (función) de dispositivos digitales.
Algebra de Boole Teoremas básicos: Operaciones con 0 y 1: X + 0 = X X · 0 = 0 X + 1 = 1 X · 1 = X Idempotencia: X + X = X X · X = X Equivalencia: (X’)’ = X Complementariedad: X + X’ = 1 X · X’ = 0
Algebra de Boole Propiedades básicas: Conmutativa: XY = YX X + Y = Y + X Asociativa: (XY)Z = X(YZ) = XYZ (X + Y) + Z = X + Y + Z Distributiva: X(Y + Z) = XY + XZ X + YZ = (X + Y)(X + Z)
Algebra de Boole · A B 1 Leyes de Morgan (XY)’ = X’ + Y’ 1 (XY)’ = X’ + Y’ (X + Y)’ = X’Y’ Convierte AND en OR Convierte OR en AND
Algebra de Boole. Resumen de Propiedades
Tabla de verdad de una función de conmutación Expresión de la función: suma de productos (1) o producto de sumas (0)
Forma canónica de una función de conmutación Suma de productos canónicos: f = x2x1x0 + x2x1x0 + x2x1x0 + x2x1x0 + x2x1x0 Producto de sumas canónicas: f = (x2+x1+x0)(x2+x1+x0)(x2+x1+x0) Suma de minterns: f = m(2,3,4,5,6) Producto de MAXTERNS: f = PM(0,1,7) Mi = mi Expresión de la función: suma de productos (1) o producto de sumas (0)
Composición de funciones de conmutación 00 01 10 11 1 f AND NOT fNOT (fAND (x1,x0)) = (1 1 1 0) = fNAND
Teoremas de simplificación XY + XY’ = X (X + Y)(X + Y’) = X Teorema 2: X + XY = X X(X + Y) = X Teorema 3: (X + Y’)Y = XY XY’ + Y = X + Y
Mapas de Karnaugh de una y dos variables 1 x 2 3 (00) (01) (10) (11) Notaciones alternativas Minterm: cada término producto en FC, Maxterm: cada término suma en FC
Mapas de Karnaugh de tres y cuatro variables 1 2 3 00 01 x 4 5 6 7 11 10 12 13 14 15 8 9 a) Tres variables b) Cuatro variables
Representación de FC en mapas de Karnaugh. Minterms 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 f(x2,x1,x0) = m(0,3,7) m = f(x3,x2,x1,x0) = m(0,2,6,7,8,9,10,14,15)
Simplificación de FC sobre mapas de Karnaugh f(x3,x2,x1,x0) = m (2,3,6,7) f(x3,x2,x1,x0 ) = m(0,2,6,7,8,9,10,14,15) 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 x x 1 x x 00 01 11 10 3 2 1 3 2 00 4 5 7 6 01 12 13 15 14 11 8 9 11 10 10 Principal implicado: cada agrupación que será un término producto
Estrategias de simplificación f(x2,x1,x0) = m(1,3,4,5) x 1 2 3 00 01 4 5 6 7 11 10 1 2 3 00 01 4 5 6 7 11 10 x Mínimo número de principales implicados lo más grande posible
Estrategias de simplificación f(x2,x1,x0) = m(1,3,4,5) x 1 2 3 00 01 4 5 6 7 11 10 1 2 3 00 01 4 5 6 7 11 10 x x 1 2 3 00 01 4 5 6 7 11 10 x 1 2 3 00 01 4 5 6 7 11 10
Funciones de cinco variables 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 16 17 18 19 20 21 22 23 28 29 30 31 24 25 26 27 x = 0 x = 1 f(x4,x3,x2,x1,x0) = m (5,8,9,10,11,18,21,22,24,25,26,27)
Mapa de Karnaugh para FC de 6 variables 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 x 1 x x 00 01 11 10 3 x 2 16 17 19 18 00 20 21 23 22 01 x = 0 5 28 29 31 30 11 24 25 27 26 10 33 35 00 01 37 38 39 11 10 x 1 3 2 44 45 46 47 40 41 42 43 36 32 49 51 00 01 53 54 55 11 10 x 1 3 2 60 61 62 63 56 57 58 52 48 34 50 x = 1 5 x = 0 4 x = 1 4
Representación de FC en mapas de Karnaugh. Maxterms f(x3,x2,x1,x0) = PM(0,2,6,7,8,9,10,14,15) f(x2,x1,x0) = PM(0,3,7) = m(1,3,4,5,11,12,13) = m(1,2,4,5,6) 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 M = x 1 2 + M = x x 3 2 + x 1 + x 1 00 01 11 10 x 2 1 3 2 4 5 7 6 1 M = x 2 + 1 7
Funciones incompletamente especificadas: ejemplos Ejemplo 2: cara o cruz f(x2,x1,x0) = (1 1 0 0 0 d 0 d) Tabla de verdad: f(x2,x1,x0) = (d 0 1 0 1 0 1 d)
Simplificación de FC incompletamente especificadas 1 2 3 00 01 4 5 6 7 11 10 x 12 13 14 15 8 9 d f(x3,x2,x1,x0) = m (5,6,8,12,14) + d (0,1,2,9,10,11)
Binario como Voltaje Las señales digitales tienen 2 estados: 1 lógico “high”, or H, or “on” 0 lógico “low”, or L, or “off” Utilizamos Voltajes como valores lógicos: Si hay corriente (Vcc or Vdd) = 1 Cero Volts or tierra (gnd or Vss) = 0 Un simple switch es un 1 lógico (high) o un 0 lógico (low).
Un Simple Switch Un simple switch usado para proporcionar un valor lógico: Vcc Vcc, or 1 Vcc Gnd, or 0 Un buen ejemplo binario es una luz (on or off)
Puertas lógicas Inversor
Puertas lógicas AND OR
Puertas lógicas NAND NOR
Puertas lógicas XOR XNOR
Cronograma
Cronograma
Cronograma
Cronograma
Cronograma
Cronograma
Cronograma
Cronograma
3.3 MODULOS COMBINACIONALES BASICOS. 3.1 Comparadores. 3.2 Sumadores y Semisumadores 3.3 Multiplexores. 3.4 Codificadores Y Decodificadores. 3.5 Memorias ROM y dispositivos PLA. 3.6 Buffer triestado.
Especificación de un comparador Especificación en alto nivel Codificación: A B Z COMPARADOR
Especificación binaria Función de conmutación: Ecuación de conmutación : z1 (a1,a0,b1,b0) = m (0,5,10,15) z0 (a1,a0,b1,b0) = m (1,2,3,6,7,11)
Suma de dos números Función de conmutación: TV del sumador para operandos de 4 bits A B S SUMADOR
Sumador Suma de dos números de 4 bits: s0 = a0 + b0 (suma base 2) si = ai + bi + ci-1 (suma base 2, i = 1,3) s4 = c3 Ejecución de la suma por columnas
Semisumador Tabla de Verdad x y C S 0 0 0 0 Implementación 0 1 0 1 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 Implementación X Y A B S C XOR 2 AND 2 Equationes Lógicas: C = x • y S = x y
Sumador Total o Completo Tabla de Verdad A B CIN COUT S 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 A B CIN COUT S SUMADOR TOTAL
Sumador Total o Completo: Equationes Lógicas: COUT = A•B + A•CIN + B•CIN COUT = (A B)•CIN + A•B S = A B CIN A B CIN COUT S Implementación:
Sumador Sumador de 4 bits SC SS a 3 b 2 1 s 4 c SUM
Sumador/restador binario para números de 4 bits en C2 3 2 1 3 2 1 F S/R (Paso / C a 1) x x x x 3 2 1 c 3 SUMADOR c -1 s s s s 3 2 1
Generación del segundo operando b 3 2 1 x S/R F
Sumador/restador binario de 16 bits en C2 -1 S/R F SUMADOR 3 a - b s 4 7 11 8 15 12
Multiplexor de 2n entradas Capacitación (Enable) E x x 1 1 Salida Entradas de datos z x 2 -1 n 2 -1 n n-1 s n-1 s Entradas de control
Multiplexor de 2 a 1 1 E x Z = S0´X0 + S0X1 x 1 1 S
Multiplexor de 2 a 1 1 E x Z = x 1 1 Entradas de control
Multiplexor de 2 a 1 1 E x Z = x0 x 1 1
Multiplexor de 2 a 1 1 E x Z = x 1 1 1 Entradas de control
Multiplexor de 2 a 1 1 E x Z = x1 x 1 1 1 Entradas de control
Multiplexor de “4 a 1” s 1 E x 2 3 z
Diseño con multiplexores 1 f 2 3 4 5 6 7 x y z FIGURA 3.11. Diseño con multiplexores
Implementación de sumador 7 6 5 4 3 2 1 E x i y c i-1 s
Implementación parcial con multiplexor 2 -1 n v F 2 -1 u k-1 1 n+k-1 f (x , ..., x )
Diseño basado en multiplexor 1 f 2 3 x 00 01 4 5 6 7 11 10 12 13 14 15 8 9 F
Efecto de la selección de las variables de control 1 f 2 3 x 00 01 4 5 6 7 11 10 12 13 14 15 8 9 F
El multiplexor de 2 a 1 como conjunto universal 1 E x 1 1 NOR E NOR 1 x 1 1 x x
Decodificador de n entradas 1 n-1 E 2 -1 n x z 2 -1 ENTRADAS SALIDAS Capacitación (Enable)
Decodificador de dos entradas x 1 z 2 3 E
Convertidor de código Convierten una codificación de entrada en otra de salida, EJEMPLO: decodificador de BCD a 7-segmentos 1 w a b 2 3 c d e f g a a b w c f b w 1 d w 2 g e e c w 3 f g d Display de 7-segmentos Convertidor de Código Tabla de verdad
Decodificador de BCD a D7S 1 E m x x 1 1 x 2 2 m 9 x 3 3 a b etc. FIGURA 3.2. Descodificador de dos entradas
Codificador de 2n entradas Capacitación (Enable) E x 1 2 -1 n z 1 n-1 1 1 ENTRADAS SALIDAS n-1 2 -1 n A Activo
Implementación de un codificador de 8 entradas x 7 E z 1 2 A
Tipos de ROM Mask-programmable ROM Los datos están permanentemente Economicamente poible en grandes cantidades EPROM (Erasable Programmable ROM) Se graba con un programador PROM Se borra con luz ultravioleta EEPROM – Electrically Erasable PROM Se borra con pulsos eléctricos Se puede reprogramar de 100 a 1000 veces Flash memoria –similar a EEPROM pero se puede escribir sin necesidad de programador
Líneas externas de una ROM Capacitación (Enable) E x x 1 1 Líneas de dirección ROM x n-1 n-1 k-1 z k-1 z Líneas de datos
Representación de una tabla Dirección Dato 0 Dato 1 Dato 2 Dato X n-1 1 2 X n-1
Almacenamiento de información ROM 1 2 3 4 5 6 7 : 000000 000001 000100 001001 010000 011001 100100 110001 :::::::::::: 111111 Vector C 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 0 0 0 1 1 0 0 0 1 ::::::::::::::::::::::::::::: 1 0 1 0 0 0 1 x z 15