119
UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE INGENIERIA INDUSTRIAL INFORME FINAL TRABAJO DE INVESTIGACION “MODULO DE APOYO PARA EL CURSO ARQUITECTURA DE COMPUTADORAS” EJECUTORES : INGº JORGE L. SANDOVAL RIVERA INGº PEDRO A. CRIOLLO GONZALES PIURA, febrero del 2009

libro de circuitos.pdf

Embed Size (px)

Citation preview

  • UNIVERSIDAD NACIONAL DE PIURA FACULTAD DE INGENIERIA INDUSTRIAL

    INFORME FINAL

    TRABAJO DE INVESTIGACION

    MODULO DE APOYO PARA EL CURSO ARQUITECTURA DE

    COMPUTADORAS

    EJECUTORES : ING JORGE L. SANDOVAL RIVERA ING PEDRO A. CRIOLLO GONZALES

    PIURA, febrero del 2009

  • INDICE pg

    Resumen ............................................................................................................. i

    Introduccin ........................................................................................................ ii

    Esquema del contenido 1. REPRESENTACION DE DATOS 1

    1.1. Sistemas numricos ................................................................................ 1

    1.1.1. Decimal ........................................................................................ 2

    1.1.2. Binario.......................................................................................... 2

    1.1.3. Hexadecimal ................................................................................ 3

    1.2. Representacin de enteros ...................................................................... 4

    1.2.1. Sin signo ...................................................................................... 4

    1.2.2. Con signo ..................................................................................... 4

    1.3. Representacin de reales ....................................................................... 6

    1.3.1. Con punto fijo ............................................................................... 6

    1.3.2. Con punto flotante ........................................................................ 7

    1.4. Otros cdigos.......................................................................................... 9

    Ejercicios resueltos ...................................................................................... 11

    Ejercicios propuestos ................................................................................... 13

    2. CIRCUITOS DE LOGICA DIGITAL ............................................................. 14

    2.1. Compuertas lgicas ............................................................................... 14

    2.2. lgebra booleana .................................................................................. 14

    2.3. Minterminos y Maxterminos .................................................................. 16

    2.4. Simplificacin por lgebra booleana ..................................................... 17

    2.5. Simplificacin por mapa de Karnaugh ................................................... 20

    2.6. Circuitos lgicos combinacionales ........................................................ 23

    2.6.1. Semisumador ............................................................................. 24

    2.6.2. Sumador completo ..................................................................... 24

    2.6.3. Sumador restador ...................................................................... 25

    2.7. Flip-Flops .............................................................................................. 27

    2.7.1. Flip-Flop bsico con compuertas NAND y NOR ......................... 27

    2.7.2. Flip-Flop SR sincronizado por reloj ............................................ 29

    2.7.3. Flip-Flop D sincronizado por reloj ............................................... 29

    2.7.4. Flip-Flop JK sincronizado por reloj ............................................. 29

    2.7.5. Flip-Flop T sincronizado por reloj ............................................... 29

    2.8. Circuitos lgicos secuenciales .............................................................. 30

  • 2.8.1. Ecuaciones de entrada de los Flip-flops ..................................... 30

    2.9. Solucin de ejercicios con Boole........................................................... 34

    2.9.1. Circuitos combinacionales .......................................................... 34

    2.9.2. circuitos secuenciales ................................................................ 37

    2.10. Simulacin de circuitos con Electronics WorkBench .......................... 40

    Ejercicios resueltos ...................................................................................... 45

    Ejercicios propuestos ................................................................................... 50

    3. COMPONENTES DIGITALES .................................................................... 51

    3.1. Registros ............................................................................................... 51

    3.1.1. Registro simple .......................................................................... 51

    3.1.2. Registro de carga paralela ......................................................... 52

    3.1.3. Registro de corrimiento .............................................................. 53

    3.1.4. Registro de corrimiento con carga paralela ................................ 53

    3.2. Contadores ............................................................................................ 54

    3.2.1. Contadores asncronos o de propagacin .................................. 54

    3.2.2. Contadores sincrnicos .............................................................. 55

    3.3. Decodificadores - Codificadores ............................................................ 56

    3.3.1. Decodificadores ......................................................................... 56

    3.3.2. Codificadores ............................................................................. 57

    3.4. Multiplexores y Demultiplexores ............................................................ 59

    3.4.1. Multiplexores .............................................................................. 59

    3.4.2. Demultiplexores ......................................................................... 61

    Ejercicios resueltos ..................................................................................... 62

    Ejercicios propuestos .................................................................................. 69

    4. ORGANIZACIN Y DISEO BASICO DE COMPUTADORAS ................... 70

    4.1. Qu es una computadora? ............................................................... 70

    4.1.1. Organizacin bsica ................................................................... 70

    4.1.2. Funcionamiento ......................................................................... 70

    4.2. Los registros ....................................................................................... 71

    4.2.1. Los registros de la computadora bsica ..................................... 71

    4.3. El BUS comn .................................................................................... 75

    4.4. Transferencia entre el BUS, los registros y la memoria....................... 76

    4.5. El cdigo de instruccin ...................................................................... 78

    4.5.1. Instrucciones que hacen referencia a memoria .......................... 78

    4.5.2. Instrucciones que hacen referencia a registro ............................ 80

    4.5.3. Instrucciones de entrada y salida ............................................... 81

    4.6. La unidad de control ........................................................................... 82

  • 4.7. Ciclo de instruccin ............................................................................. 83

    4.7.1. Bsqueda ................................................................................... 83

    4.7.2. Decodificacin ............................................................................ 84

    4.7.3. Tipo de instruccin ..................................................................... 85

    4.7.4. Ejecutar instruccin .................................................................... 85

    4.7.5. Interrupciones ............................................................................ 90

    4.8. La ALU ............................................................................................... 93

    4.9. Diseo lgico de la computadora bsica ............................................. 95

    4.10. Diseo fsico de la computadora bsica .............................................. 98

    4.10.1. Los flip-flops de apoyo ..............................................................100

    4.10.2. El acumulador ...........................................................................103

    Ejercicios resueltos ....................................................................................105

    Ejercicios propuestos .................................................................................109

    Bibliografa .......................................................................................................110

  • RESUMEN

    Es comn en los docentes universitarios, al preparar sus clases, tomar 2 o ms libros

    texto y hacer un resumen con cada uno de ellos que luego usar para impartir su

    clase. Justamente es lo que pretende realizar el presente trabajo, tomando como base

    el libro Arquitectura de Computadoras de MORRIS MANO M. y otros textos como por

    ejemplo Sistemas Digitales, Principios y Aplicaciones de TOCCI, Ronald y Diseo

    Digital Principios y Practicas de WAKERLY, John F. seleccionar lo mejor de cada uno

    de ellos y hacer un resumen, explicando con mayor detalle las reas que lo requieran

    o se consideren necesarias, resolviendo algunos ejercicios y planteando otros.

    El mdulo se divide en cuatro capitulos:

    El primer capitulo Representacin de datos trata de la forma como se almacenan y

    representa los datos numrico (reales, enteros: positivos y negativos) en un sistema

    digital. Adems se estudian los 3 sistemas de numeracin ms importantes: el binario,

    el decimal y el hexadecimal

    El segundo capitulo Circuitos de lgica digital estudia los circuitos diseados a partir

    de compuertas lgicas y su representacin por medio de expresiones lgicas, estos

    son: Circuitos combinatorios y circuitos secuenciales. Haciendo uso del lgebra

    booleana y de mapas de Karnaugh se realiza la simplificacin de estos circuitos de

    forma manual, pero tambin se explica como usar herramientas de software como el

    WorkBench para el diseo y simulacin de circuitos y Boole para el anlisis y

    simplificacin de circuitos combinatorios y secuenciales

    El tercer capitulo Componentes digitales estudia el diseo de los componentes que

    se pueden construir a partir de los circuitos combinatorios y secuenciales estudiados

    en el capitulo anterior tales como: sumadores, contadores, registros, multiplexores,

    codificadores, etc.

    El cuarto capitulo Organizacin y diseo bsico de computadoras describe la

    estructura de la computadora bsica como por ejemplo el tamao de la memoria,

    cantidad y longitud de los registros, instrucciones que sern reconocidas, etc. Tambin

    se estudia el diseo de circuitos que permitan generar las seales apropiadas entre los

    componentes digitales mencionados para que stos realicen las tareas para lo que

    fueron diseados

  • INTRODUCCION

    En la ciencia, la tecnologa, la administracin y, de hecho, muchos otros campos de la

    actividad humana, constantemente se manejan cantidades. Estas se miden, registran,

    manipulan aritmticamente, observan o se utilizan en muchos sistemas fsicos. Existen

    bsicamente dos maneras de representar el valor numrico de las cantidades: la

    analgica y la digital.

    Las cantidades analgicas tienen la caracterstica de poder variar gradualmente sobre

    un intervalo continuo de valores como en el caso de un velocmetro. La posicin

    angular de la aguja representa el valor de la velocidad del automvil y sigue cualquier

    cambio que ocurra conforme el automvil acelere o frene. Mientras que las cantidades

    digitales varan en etapas discretas (paso a paso), como por ejemplo un reloj digital, el

    cual no cambia continuamente sino por etapas (uno por minuto o por segundo) a pesar

    que el tiempo transcurre en forma contina.

    Para manipular la informacin representada en forma digital se utilizan los sistemas

    digitales. Un sistema digital es una combinacin de dispositivos diseado para

    manipular informacin representada en forma digital, es decir, que slo puede tomar

    valores discretos. Esta informacin digital por lo general se representa en forma

    binaria y sta, a su vez, por medio de cualquier dispositivo que solamente tenga dos

    estados de operacin como por ejemplo un interruptor: abierto y cerrado.

    Esta caracterstica de los circuitos digitales (lgicos) permite utilizar el lgebra

    booleana como herramienta para el anlisis y diseo de sistemas digitales. El lgebra

    booleana tiene tres operaciones bsicas AND, OR y NOT llamadas tambin

    operaciones lgicas. Mediante diodos, transistores y resistencias, conectados entre s,

    se puede construir compuertas lgicas cuyas salidas son el resultado de una

    operacin lgica bsica.

    Partiendo de las compuertas lgicas AND, OR y NOT, se pueden disear circuitos

    cuyas salidas depende slo de sus entradas (circuitos combinatorios) y circuitos cuyas

    salidas dependen tanto de las entradas como del estado (conjunto de entradas

    pasadas) que se encuentre el circuito (circuitos secuenciales).

    Ejemplo de circuitos combinatorios tenemos los sumadores completos de un bit, los

    cuales agrupados en 8, 16 o 32 elementos se obtienen sumadores de 8, 16 o 32 bits.

  • De igual manera se puede disear restadores, multiplicadores, divisores, etc. Todos

    estos circuitos unidos apropiadamente permitirn disear, por ejemplo, una Unidad

    Aritmtica Lgica (ALU), que es una de las partes bsicas de un procesador. As

    tambin el diseo de codificadores, decodificadores y multiplexores que permiten

    conmutar las seales digitales entre los diferentes componentes de una computadora

    con el procesador.

    Por otro lado, uniendo adecuadamente compuertas NAND o NOR se puede formar un

    FLIP-FLOP que es la unidad bsica de almacenamiento. Uniendo Flip-Flops y circuitos

    combinatorios se puede disear registros, contadores, unidad de memoria y otros

    componentes de apoyo del procesador.

    Para finalizar, todos los componentes mencionados unidos mediante circuitos lgicos,

    los cuales les proveeran de las selales de control apropiadas para que stos

    tranfieran y procesen la informacin, ya sea un codigo de instruccin o un dato.

  • 1

    I REPRESENTACION DE DATOS 1.1. Sistemas numricos

    Si bien es cierto que una computadora puede realizar una serie de tareas complejas, la verdad es que lo nico que comprende es 0 y 1. Estos 0 y 1 agrupados adecuadamente (bajo un formato) pueden representar diferentes tipos de informacin binaria para el procesador tales como datos, cdigo ejecutable, caracteres, seales de control, etc. Como resulta obvio pensar, el sistema de numeracin que puede traducir directamente la computadora es el BINARIO, pero ste resulta muy difcil de comprender y manipular por los seres humanos ya que la mayora estamos acostumbrados a usar el sistema de numeracin DECIMAL. Otro de los inconvenientes de trabajar con el sistema binario es la documentacin, ya que para expresar cualquier nmero en binario se necesitar mucho ms espacio que si se utilizara, por ejemplo, el sistema decimal o, mejor aun, el sistema HEXADECIMAL.

    Estos tres tipos de sistemas de numeracin pertenecen a los sistemas numricos de base o raz r (r=2 para binario, r=10 para decimal y r=16 para hexadecimal), tambin se les conoce como sistemas posicionales debido a que cada digito tiene un valor basado en su posicin relativo al digito menos significativo (el que se encuentra ms a la derecha). Para determinar el valor que representa un nmero de base r en el sistema decimal se puede utilizar la siguiente formula:

    Donde: r es la base o raz del nmero

    di es un dgito de la posicin i del nmero f es la cantidad de dgitos de la parte fraccionaria e es la cantidad de dgitos de la parte entera

    En trminos generales, cualquier nmero es simplemente la suma de los productos de cada digito y su valor posicional.

    Ejemplo: Cul es el valor de 31.2041(5 en el sistema decimal?

    Como se aprecia r=5, f=4 y e=2. El nmero sera: d1 d0 . d-1 d-2 d-3 d-4 y el valor en decimal:

    N = 3*51 + 1*50 + 2*5-1 + 0*5-2 + 4*5-3 + 1*5-4 N = 3*5 + 1*1 + 2/5 + 0/25 + 4/125 + 1/625 N = 15 + 1 + 0.4 + 0 + 0.032 + 0,0016 N = 16.4336

    Ahora, para convertir un numero del sistema decimal al sistema de base r, primero se toma la parte entera y se divide entre la raz r, el residuo de esta divisin se convertir en el digito menos significativo de la parte entera. Luego se divide el cociente resultado de la divisin anterior entre la raz r, el residuo ser el siguiente digito, se vuelve a dividir el ltimo cociente entre la raz r y as sucesivamente se repite esta operacin hasta que el cociente sea 0. El nmero se formar tomando el

    =

    =1

    *e

    fi

    ii rdN

  • 2

    ltimo residuo como el digito ms significativo y el primer residuo obtenido como el digito menos significativo. Para convertir la parte fraccionaria, se coge slo la parte fraccionaria (tomando cero como parte entera) y se multiplica por la raz r. La parte entera del resultado de la multiplicacin ser el primer digito de la nueva parte fraccionaria. Luego se elimina la parte entera (se hace 0) y se repite la operacin anterior tantas veces como dgitos se desea obtener. Si en algn momento el resultado de la multiplicacin es 1 significar que se ha obtenido el valor exacto en el sistema de base r, en caso contrario, todos los dgitos obtenidos hasta ese instante slo son una aproximacin al valor real.

    Ejemplo: Convertir 82.573 al sistema de base 7

    Tomamos la parte entera 82 y la dividimos entre la raz r=7 82/7 cociente 11, residuo 5 (digito menos significativo) Dividimos el ultimo cociente entre la raz 11/7 cociente 1, residuo 4 1/7 cociente 0, residuo 1 (digito ms significativo) Por lo tanto la parte entera ser: 145 Ahora tomamos la parte fraccionaria 0.573 y la multiplicamos por la raz 0.573*7 = 4.011 4 ser el 1er digito, luego eliminamos la parte entera. 0.011*7 = 0.077 0 ser el 2do digito. 0.077*7 = 0.539 0 ser el 3er digito. 0.539*7 = 3.773 3 ser el 4to digito, eliminar la parte entera. 0.773*7 = 5.411 5 ser el 5to digito y as sucesivamente Una aproximacin a 82.573 es 145.40035(7

    1.1.1. Decimal La base 10 es importante debido a que se usa en la vida diaria. Este sistema se compone de 10 numerales o smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8 y 9; al utilizar estos smbolos como dgitos de un numero podemos expresar cualquier cantidad. El sistema decimal evolucion en forma natural a partir del hecho de que el ser humano tiene 10 dedos. Incluso, la palabra digito significa dedo en latn. En el sistema digital se comienza a contar con el 0 en la posicin de las unidades y se toma cada smbolo (digito) en progresin hasta llegar al 9, luego se incrementa en 1 la segunda posicin (decenas) y volvemos a empezar con 0 en las unidades. Este proceso contina hasta llegar a 99 y se suma 1 en la tercera posicin (centenas) y se empieza con 0 en las 2 posiciones anteriores. Se repite este proceso mientras se desee.

    1.1.2. Binario

    En el sistema binario slo hay 2 smbolos o valores de dgitos: 0 y 1. Sin embargo, con un conjunto de estos smbolos se puede representar cualquier cantidad denotada en cualquier sistema de numeracin. Al trabajar con nmeros binarios, generalmente se est restringido a utilizar una cantidad especfica de dgitos (bits). Esta restriccin se basa en los circuitos utilizados para representar estos nmeros binarios.

  • 3

    Al tener, este sistema slo los dgitos 0 y 1, cualquier nmero que se desee representar se debe de hacer con una combinacin de stos. El conteo en binario inicia con 0, al sumarle 1 (0+1) nos dar 1. Si luego le sumamos 1 (1 + 1) nos dar 0 (porque no existe el digito 2) ms 1 de acarreo es decir 10 en total, que es la representacin de 2. Nuevamente sumamos 1 (10 + 1) resultar 11 (representacin de 3) y al sumarle 1 (11+1) nos dar 100 (4 en binario) y as sucesivamente.

    Numeracin del 0 al 15 en decimal, binario y binario con 4 bits

    Dec Bin Bin 4 bits

    0 0 0000 1 1 0001 2 10 0010 3 11 0011 4 100 0100 5 101 0101 6 110 0110 7 111 0111

    Dec Bin Bin 4 bits 8 1000 1000 9 1001 1001 10 1010 1010 11 1011 1011 12 1100 1100 13 1101 1101 14 1110 1110 15 1111 1111

    Como se aprecia, el conteo empieza con 0 en las unidades luego se incrementa en 1 y despus en 1 ms, pero como no existe el digito 2 en binario, para representar ste, se suma en 1 el siguiente digito obteniendo 2 en binario (10). Se incrementa en uno las unidades y se repite esto hasta que todos los dgitos son 1s. Las cantidades binarias pueden representarse por medio de cualquier dispositivo que solamente tenga dos estados de operacin o posibles condiciones. Por ejemplo, un interruptor slo tiene dos estados: abierto o cerrado. Arbitrariamente podemos hacer que un interruptor abierto represente el 0 binario y que uno cerrado represente el 1 binario. Una hoja con perforaciones sera otro ejemplo, donde una perforacin ser un 1 binario y la ausencia de ella es un 0 binario. As, podemos seguir mencionando otros ejemplos como un foco elctrico (encendido-apagado), una fotocelda (iluminada u oscura), el transistor (cortado o saturado), una cinta magntica (magnetizada o desmagnetizada), etc. En los sistemas electrnicos digitales, la representacin binaria se hace por medio de voltajes (o corrientes) que estn presentes en las entradas o salidas de los diversos circuitos. Por lo general, el 0 y el 1 binarios se representan con dos niveles de voltaje nominal, 0V para representar el 0 binario y +5V para el 1 binario, aunque para ser ms exactos esta representacin se hace por medio de intervalos de voltaje: el intervalo entre 0 y 0.8V representa un 0 y cualquiera entre 2 y 5V representa un 1

    1.1.3. Hexadecimal Este sistema de numeracin est conformado por los 10 dgitos del sistema decimal (0-9) y 6 dgitos ms, como por ejemplo el DIGITO DIEZ (10) o el DIGITO TRECE (13), pero para evitar confusiones cuando se

  • 4

    presenten los dgitos 1 y 0 o 3 juntos, se ha convenido representarlos por las letra A y D respectivamente. Entonces, A=10, B=11, C=12, D=13, E=14 y F=15. Este sistema proporciona representaciones breves que son convenientes para nmeros con mltiples bits en un sistema digital. Ejemplo: La representacin del entero 23830 en binario de 16 bits es

    0101110100010110, es decir que se necesitan 16 dgitos, mientras que en hexadecimal es 5D16 (5D16h) siendo necesario slo 4 dgitos. Debido a que su base es potencia de 2 (16=24) 4 dgitos binarios pueden representarse con un solo digito hexadecimal, tal como se aprecia a continuacin.

    0101 1101 0001 0110 Dgitos Binarios 5 D 1 6 Dgitos Hexadecimales

    1.2. Representacin de enteros

    Un detalle muy importante en la representacin de enteros es la cantidad de bits que se van a emplear, ya que de ello va a depender el rango de valores que se pueden representar. Ejemplo: Un nmero de 4 bits implicar que se tiene 4 dgitos binarios y como

    cada uno de ellos puede tomar el valor de 0 o 1 significar que se pueden formar 24 combinaciones diferentes y que cada una de ellas puede representar un valor. Por lo tanto, con 4 bits se puede representar 16 valores diferentes que podran estar comprendidos (rango) entre 0 y 15 o entre -8 y 7 o cualquier convencin que se establezca.

    1.2.1. Sin signo

    En este tipo de notacin slo se van a representar enteros positivos (sin signo). El menor valor a representar ser el 0 y el mayor valor depender de la cantidad de bits a emplear. Si N es la cantidad de bits a emplear, 2N-1 ser el mayor valor que se podr denotar, as por ejemplo, con 4 bits el mayor valor ser 15 (24=16); con 8 bits, 255 (28=256) y con 16 bits hasta 65535 (216=65536). En todos los casos, el valor es uno menos debido a que se tiene en cuenta el 0 como primer valor a representar. Ejemplo: Para representar el entero 1837 se necesitan por lo menos 11

    bits, ya que este entero en binario es 11100101101. La representacin de este valor en un formato de 16 bits ser 0000011100101101 y en forma abreviada (hexadecimal) ser 072Dh.

    1.2.2. Con signo

    Aqu se tiene en cuenta los valores negativos y por ende, que la cantidad a representar de valores positivos sea igual a la cantidad de valores negativos. Los dos sistemas ms usados para representar un nmero con signo son:

  • 5

    a) Bit de signo.- Se utiliza el bit ms significativo (el que se encuentra ms a la izquierda) para representar el signo del nmero: 0 para indicar que el nmero es positivo y 1 para indicar que es negativo. Esto trae como consecuencia que, si se utiliza N bits para representar el nmero slo se podrn emplear N-1 bits (2N-1 valores diferentes) ya que 1 bit se usar para el signo y por lo tanto el rango de valores a representar disminuir a la mitad: una mitad ser para representar valores positivos y la otra mitad los valores negativos. Ejemplo: El entero -1837 en 16 bits ser igual que +1837 pero

    estableciendo en 1 el bit ms significativo es decir: 1000011100101101 y en forma abreviada 872Dh. Con 16 bits se podr denotar desde -32767 a +32767 (216-1-1) es decir desde 1111111111111111 = FFFFh a 0111111111111111 = 7FFFh.

    Una de las desventajas de este sistema es la doble representacin del 0, ya que se puede denotar como 000...0 (+0) y como 1000 (-0). Adems, no permite realizar las operaciones aritmticas directamente. Ejemplo: Restar 86 y 24 en 8 bits

    86 = 01010110 y 24=00011000 -24=10011000, luego 86+ = 01010110+ -24 = 10011000 -------------------------------- 62 11101110 = -110

    Como se aprecia el resultado es -110 cuando debi ser 62. En la actualidad este sistema se emplea nicamente para la codificacin de nmeros con punto flotante.

    b) Complemento a 2.- El complemento a r de un numero N de un sistema de base r es rn-N, donde n es la cantidad de dgitos de N y el complemento a (r-1) es (rn-1)-N. Ejemplo: Hallar el complemento a 10 de 392

    103-392=608

    Ejemplo: Hallar el complemento a 9 de 392 103-1-392=607

    Es decir, que el complemento a r de N es igual al complemento a (r-1) de N, ms 1. Ahora si a un nmero X le restamos Y entonces:

    X-Y = X-Y+rn-rn = X+(rnY)-rn = X+CY(r)-rn Donde CY(r) es el complemento a r de Y.

  • 6

    Ejemplo: Hallar 627-392 (en el sistema decimal) Como se observa, r=10 y n=3, entonces: 627-392= 627+608-103 = 1235-1000 = 235. El restarle 103 es equivalente a simplemente eliminar el digito ms significativo al resultado (por desbordamiento)

    En el sistema binario, X-Y = X+CY(2)-2n y como CN(r)= CN(r-1)+1, entonces: X-Y = X+(CY(1)+1)-2n. Donde CY(1) es el complemento a 1 de Y, pero el complemento a 1 de un numero en binario es simplemente el cambio de 0s por 1s y 1s por 0s. Por lo tanto, en binario, la diferencia de X y Y se puede resumir en: Sumar a X, Y complementado, es decir, convertir los 1s en 0s y los 0s en 1s, luego sumarle 1 y finalmente eliminar el digito ms significativo. Ejemplo: Restar 179-62 (r=2 , n=8 bits)

    179=10110011 62=00111110 -62=11000001+1=11000010 Luego: 179 = 10110011 +

    -62 = 11000010 ----------------------- 117 101110101 pero al eliminar el bits ms

    significativo queda 01110101 = 117 1.3. Representacin de reales

    Para poder representar nmeros con parte fraccionaria se deben tener en cuenta tres cosas: como representar la parte entera, la parte decimal y el punto decimal. Existen dos notaciones: 1.3.1. Con punto fijo

    En esta notacin se establece una determinada cantidad de bits para la parte entera y otra para la parte fraccionaria. El punto quedar arbitrariamente fijado entre estos bits. Por ejemplo el nmero 3.641 en binario es aproximadamente 11.101001000001, si el formato que se va a usar es de 8 bits y el punto se fija en la mitad, entonces la representacin sera: 00111010 (3Ah), donde los dgitos en negrita son la parte entera. Si para representar este mismo nmero se fijara el punto decimal despus de los 2 bits ms significativos la representacin sera: 11101001 (E9h). Como se comprender, al observar los nmeros 3Ah y E9h (o en binario) no hay forma de determinar la posicin del punto decimal a no ser que previamente se haya establecido o acordado esta. Por lo general la posicin del punto se establece durante el diseo del hardware y queda fijo a ella. El inconveniente de esta notacin es que la precisin queda fija, por ejemplo en el primer caso solo se tienen 4 bits para representar la parte fraccionaria, mientras que en el segundo caso se tienen 6 bits, con lo que se obtiene mayor precisin (3Ah=0011.1010=3.625 ; E9h=11.101001=3.640625). Por otro lado, si la parte entera en el nmero a representar fuera mayor o igual que 4 este no podra ser denotado usando la fijacin del punto decimal del segundo caso porque se necesitara ms de 2 bits para representar estos

  • 7

    valores. Por lo tanto, al permanecer el punto fijo, en algunos casos se necesitaran ms bits en la parte fraccionaria (correr el punto hacia la izquierda) y en otros en la parte entera (correr el punto hacia la derecha).

    1.3.2. Con punto flotante El inconveniente del punto fijo es resuelto con un punto flotante, es decir, un punto que pueda ser corrido hacia la izquierda o hacia la derecha segn sea necesario. El proceso se inicia convirtiendo el nmero al sistema de numeracin binario y luego se normaliza. La normalizacin consiste en correr el punto hacia la izquierda o hacia la derecha de tal forma que el 1 que se encuentre ms hacia la izquierda quede posicionado a la izquierda del punto. El valor resultante se multiplica por 2N donde N es la cantidad de posiciones que se ha corrido el punto. N es positivo si el punto se corre hacia la derecha y negativo en caso contrario. Ejemplo: Convertir 37.4592 al formato de punto flotante de 32 bits.

    Primero hay que convertirlo a binario. Utilizar el mtodo de multiplicaciones sucesivas por 2, para convertir la parte decimal, es muy largo y tedioso, as que usaremos multiplicaciones por 16 y lo que obtendremos son los dgitos en hexadecimal, los cuales son sencillos de pasar a binario. 37 en binario es 100101, ahora vamos a la parte decimal 0.4592*16 = 7.3472 7 0111 0.3472*16 = 5.5552 5 0101 0.5552*16 = 8.8832 8 1000 0.8832*16 = 14.1312 E 1110 0.1312*16 = 2.0992 2 0010 0.0992*16 = 1.5872 1 0001 0.5872*16 = 9.3952 9 1001 0.3952*16 = 6.3232 6 0110 0.3232*16 = 5,1712 5 0101 0.1712*16 = 2.7392 2 0010 0.7392*16 = 11.8272 B 1011 0.8272*16 = 13.2352 D 1101 0.2352*16 = 3,7632 3 0011 El nmero en binario ser: 100101.0111010110001110001000011001011001010010101111010011 y normalizado: 1.00101011101011000111000100001100101100101001010111101 x 25

    El formato para representar nmeros con parte fraccionaria esta conformado por 1 bit S para el signo y el resto de bits se distribuye entre la caracterstica C y la mantisa M. La caracterstica es la representacin del exponente E en exceso a 2N-1-1, donde N es la cantidad de bits que tiene la caracterstica.

    NUM = (-1)S * 1.M * 2E donde E = C-2N-1+1

  • 8

    Existen dos formatos bsicos: a) Formato de precisin simple (32 bits), que consta de:

    1 bit para el signo (S) 8 bits para la caracterstica (C) y 23 bits para la mantisa (M) La secuencia de bits del nmero ser la siguiente: S = 0, debido a que el nmero es positivo. C = E+2N-1-1 = 5+28-1-1 = 5+128-1 = 132 = 10000100(2 M = 00101011101011000111000 que son los 23 dgitos que se

    encuentran a la derecha del punto del numero normalizado. Por lo tanto, la representacin del valor ms prximo a 37.4592 en 32 bits es: 0100 0010 0001 0101 1101 0110 0011 1000 = 4215D638h. Para hallar su valor en decimal, se toma el nmero normalizado pero slo con los 23 dgitos a la derecha del punto (mantisa) y se corre el punto hacia la derecha para convertirlo en entero, esto significa que el punto tendr que desplazarse 23 posiciones a la derecha y por ende tendr que restarse esta cantidad al exponente. Luego el entero se pasa a decimal y se divide entre 2 elevado al nuevo exponente: 1.00101011101011000111000 x 25 , convertido a entero queda: 1001 0101 1101 0110 0011 1000 x 25-23 95D638h x 2-18= 9819704 x 2-18 = 9819704 / 218 9819704 / 262144 = 37,459197998046875

    b) Formato de precisin doble (64 bits) 1 bit para signo (S) 11 bits para la caracterstica (C) 52 bits para la mantisa (M) La secuencia de bits del nmero ser el siguiente: S = 0, debido a que el nmero es positivo. C = E+2N-1-1 = 5+211-1-1 = 5+1024-1 = 1028 = 10000000100(b M = 1010101110101100011100010000110010110001010111101001

    que son los 52 dgitos a la derecha del punto La representacin del valor ms prximo a 37.4592 en 64 bits es: 404ABAC710CB295Eh (muy extenso para representarlo en binario) Su valor en decimal es: 1.0010101110101100011100010000110010110010100101011110 x 25 10010101110101100011100010000110010110010100101011110 x 2-47 12BAC710CB295Eh x 2-47 = 5271913723799902 x 2-47 5271913723799902 / 247 = 5271913723799902 / 140737488355328 37.459199999999995611688063945621 (mayor precisin)

  • 9

    Una vez obtenida las respectivas representaciones de los valores con parte fraccionaria, hay que evaluar el ERROR de precisin. Hay 2 tipos de error: por DEFECTO y por EXCESO. El primero se da cuando la representacin obtenida es menor que el valor real y la segunda cuando es mayor, obviamente se deber elegir aquella que tenga menor error. En el caso del formato de 32 bits, podemos apreciar que el digito 24 del numero normalizado (despus del punto) es 1 por lo que procedemos a redondear (aumentar en 1 la mantisa) lo cual nos dar 95D639h x 2-18 = 37,459201812744140625. Esta representacin, aunque genera un error por exceso, es la ms cercana al valor real. Con el formato de 64 bits ocurre algo semejante. El bit 53 del numero normalizado tambin es 1, por lo que se procede a redondear con lo que se obtiene 12BAC710CB295Fh x 2-47 = 37,45920000000000271711 que como se aprecia es bastante prximo a 34.4592.

    1.4. Otros cdigos En ocasiones, se utilizan otros cdigos binarios para nmeros decimales y caracteres alfanumricos. Las computadoras digitales tambin emplean otros cdigos binarios para aplicaciones especiales. Veamos algunos de ellos: 1.5.1. Cdigo Gray

    Es la representacin de un conjunto de valores de tal manera que los dgitos que lo conforman (binario) cambia slo uno de ellos conforme avanza de un valor al siguiente. Por ejemplo, 3 en binario de cuatro bits es 0011 y 4 es 0100 como se aprecia, para pasar de 3 a 4, tres bits cambian su estado, lo cual podra producir uno o ms estados intermedios, si los tres bits no cambiasen simultneamente, esto no ocurre en cdigo Gray. Para formar una tabla de nmeros en cdigo Gray de N bits se debe seguir las siguientes reglas: a) Un cdigo Gray de 1 bit tiene dos palabras cdigo: 0 y 1. b) Las primeros 2N palabras de N+1 bits son iguales a las palabras de N

    bits precedidas por un 0. c) Las ultimas 2N palabras de N+1 bits son iguales a las palabras de N bits

    escritas en orden inverso y precedidas por un 1. Ejemplo:

    N=1 0 1

    N=2 00 01 --- 11 10

    N=3 000 001 011 010 ----- 110 111 101 100

  • 10

    Para convertir binario a Gray se deben seguir los siguientes pasos: a) Los bits de un cdigo Gray de N bits se numeran de derecha a

    izquierda de 0 a N-1. b) El bit i es 0 si el bit i e i+1 de la palabra en binario son iguales y 1 en

    caso contrario. Ejemplo: Convertir 1011 a cdigo Gray

    Como el bit 0 y 1 son iguales, el bit 0 ser: 0 Como el bit 1 y 2 son diferentes, el bit 1 ser: 1 Como el bit 2 y 3 son diferentes, el bit 2 ser: 1 Como el bit 3 y 4 (se asume 0) son diferentes, el bit 3 ser: 1 Por lo tanto 1011 en cdigo Gray es 1110

    1.5.2. BCD

    Decimal codificado en binario, pertenece a los sistemas de numeracin no posicionales y utiliza una asignacin directa del equivalente binario del digito decimal. Cada digito decimal se codifica por 4 dgitos binarios, pero como con 4 bits se pueden representar hasta 16 valores, las 6 ltimas combinaciones (despus del 9) que no se usan no tienen ningn valor cuando se utiliza BCD. Ejemplo: Codificar 5 en BCD = 0101 (igual que en binario) Ejemplo: Codificar 173 en BCD

    1 = 0001, 7=0111 y 3=0011 Por lo tanto 175 en BCD ser: 000101110101

    1.5.3. ASCII Muchas aplicaciones requieren el manejo de datos que no solo estn formados por nmeros sino tambin por letras del alfabeto y por ciertos caracteres especiales. Un conjunto de caracteres alfanumricos incluye los 10 dgitos decimales, las 26 letras del alfabeto y otros caracteres como $, +, -, etc. Por lo que se necesitan 6 bits para codificarlos. Pero si adems se incluyen letras maysculas o minsculas entonces se necesitaran 7 bits, con lo que se puede codificar hasta 128 caracteres. Este conjunto de cdigos ha sido estandarizado y tiene el nombre de ASCII (Cdigo estndar americano para intercambio de informacin) y en la actualidad ha sido extendido a 8 bits, es decir, 256 caracteres.

  • 11

    1.5. Ejercicios 1.5.1. Resueltos

    a) Cual es el menor entero negativo y el mayor entero positivo que se puede almacenar en un formato de 10 bits donde tambin se representarn nmeros negativos usando complemento a 2 El menor entero positivo ser: -210-1 = -29 = -512 El mayor entero positivo ser: 210-1-1 = 29-1 = 511

    b) Convertir 8503 a base 13 8503/13 cociente 654, residuo 1 (digito menos significativo) 654/13 cociente 50, residuo 4 50/13 cociente 3, residuo 11 3/13 cociente 0, residuo 3 (digito ms significativo) Por lo tanto 8503 en base 13 ser: 3B41

    c) Convertir 46.483 a base 16

    Primero la parte entera 46/16 cociente 2, residuo 14 = E 2/16 cociente 0, residuo 2 = 2 46 en base 16 es 2E Ahora la parte fraccionaria 0.483*16 = 7.728 7 7 0.728*16 = 11.648 11 B 0.648*16 = 10.368 10 A 0.368*16 = 5.888 5 5 0.888*16 = 14.208 14 E Una aproximacin a 46.483 es 2E.7BA5E(16

    d) Si el resultado anterior se almacena en una variable del tipo real de precisin simple (32 bits) Cul es la secuencia de bits en este formato? 46.483=2E.7BA5(16=101110.01111011101001011110 Normalizado: 1.0111001111011101001011110 x 25 Por lo tanto: S = 0 (por ser positivo) C = E+2N-1-1 = 5+27-1 = 132 = 10000100(2 (N= bits de la caracter.=8) M = 01110011110111010010111 (slo 23 bits), pero como el bit 24 es

    1, hay que redondear a 01110011110111010011000 (+1) Uniendo todos los bits: 01000010001110011110111010011000 Abreviado: 4239E98h

    e) Cual es el valor real almacenado en la variable del ejercicio anterior? El nmero anterior normalizado a 23 bits y redondeado es:

    1.01110011110111010011000 x 25 Convertido a entero:

    101110011110111010011000 x 25-23 Convertido a hexadecimal

    B9EE98 x 2-18 Convertido a decimal

    12185240 x 2-18 = 46,483001708984375

  • 12

    f) Si A, B y C son variables enteras sin signo de 8 bits que contienen los valores 203, 151 y 0 respectivamente. Determine el valor de C luego de hacer la siguiente operacin C=A+B

    A = 203 = 11001011 + B = 151 = 10010111

    ---------------------- 354 = 101100010

    Como se observa el resultado es 354, pero se necesitan 9 bits para poder representarlo y la variable C solo tiene 8 bits, por lo que slo se tomarn los 8 bits menos significativos (el bits ms significativo se desborda). Por lo tanto C = 01100010 = 98

    g) Si A, B y C son variables enteras con signo de 16 bits que contienen los valores 28391, 15016 y 0 respectivamente. Determine el valor de C luego de hacer la siguiente operacin C=A+B

    A = 28391 = 0110111011100111 + B = 15016 = 0011101010101000

    -------------------------------------- 43407 = 1010100110001111

    Aparentemente el resultado es 43407 (incluso no hay desbordamiento), pero al ser C una variable entera con signo y como el bit ms significativo del resultado es 1 inmediatamente nos lleva a pensar que el resultado es negativo, por lo que procedemos a hallar su complemento a 2 para determinar su verdadero valor.

    C = 1010100110001111 0101011001110000 (0s a 1s y 1s a 0s)

    1 (sumamos 1) -------------------------- 0101011001110001 = 22129

    Pero como se ha complementado, entonces: C = -22129. Aunque parezca increble, el sumar dos nmeros positivos puede dar como resultado un nmero negativo.

    h) Convertir a cdigo Gray 158 (8 bits) Primero convertimos 158 a binario de 8 bits esto es: 10011110 Analizando los bits de derecha a izquierda tenemos:

    0 1 0 0 1 1 1 1 0 1 1 0 1 0 0 0 1

    158 en codigo Gray es 11010001 = 209

    i) Codifique en binario 2837 (BCD) 2=0010, 8=1000, 3=0011 y 7=0111 2837 en BCD es 0010100000110111

  • 13

    1.5.2. Propuestos a) Cual es el menor entero negativo y el mayor entero positivo que se

    puede almacenar en un formato de enteros con signo de 8 bits. b) Se desea representar slo enteros positivos con 12 bits, Cul es el

    mayor entero que se puede representar? c) Convertir 97058 a base 7. d) Convertir 23.81 a base 12 e) Determine la secuencia de bits para la representacin de -7903.37 en

    un formato de 32 bits. f) Determine el verdadero valor (en decimal) almacenado en el ejercicio

    anterior. g) Determine la secuencia de bits para la representacin de 0.00517 en un

    formato de 32 bits. h) Determine el verdadero valor (en decimal) almacenado en el ejercicio

    anterior. i) Si A, B y C son variables enteras con signo de 16 bits que contienen

    los valores -10732, 6932 y 0 respectivamente. Determine el valor de C luego de hacer la siguiente operacin C=A-B.

    j) Si A, B y C son variables enteras sin signo de 10 bits que contienen los

    valores 372, 998 y 0 respectivamente. Determine el valor de C luego de hacer la siguiente operacin C=A+B.

    k) Convertir a cdigo Gray 826 (10 bits). l) Codifique en binario 8037 (BCD)

  • 14

    II CIRCUITOS DE LOGICA DIGITAL 2.1. Compuertas lgicas.

    Las compuertas lgicas son bloques de hardware que producen seales de 0 o 1 cuando los requerimientos lgicos de entrada son satisfechos. Esta caracterstica permite utilizar el lgebra booleana como herramienta para el anlisis y diseo de circuitos lgicos digitales. Cada compuerta tiene un smbolo grfico distinto y su funcionamiento puede describirse por medio de una expresin algebraica. La relacin de entrada/salida de las variables binarias para cada compuerta puede representarse en forma tabular por una tabla de verdad. Los nombres, smbolos, tablas de verdad y funciones algebraicas de las siete compuertas lgicas se listan en la figura 2.1

    Figura 2.1 Compuertas lgicas digitales

    Las compuertas lgicas pueden combinarse para producir circuitos lgicos.

    2.2. lgebra booleana El lgebra booleana difiere de forma significativa del lgebra en que las constantes y variables booleanas slo pueden tener, en diferentes ocasiones, dos valores posibles: 0 o 1. Las tres operaciones lgicas bsicas son AND, OR y complemento. Una funcin booleana puede expresarse algebraicamente con variables binarias, smbolos de operadores lgicos, parntesis y signos de igualdad. Para un valor dado de las variables, la funcin slo puede ser 0 o 1. La relacin entre una funcin y sus variables binarias se pueden representar en una tabla de verdad, donde se lista las 2N combinaciones de las N variables binarias y, tambin, mediante un diagrama lgico.

    C=AB A B C 0 0 0 0 1 0 1 0 0 1 1 1

    C=(A+B) A B C 0 0 1 0 1 0 1 0 0 1 1 0

    C=A A C 0 1 1 0

    C=A+B A B C 0 0 0 0 1 1 1 0 1 1 1 1

    C=(AB) A B C 0 0 1 0 1 1 1 0 1 1 1 0

    C=AB A B C 0 0 0 0 1 1 1 0 1 1 1 0

    C=(AB) A B C 0 0 1 0 1 0 1 0 0 1 1 1

  • 15

    Ejemplo: F = A(B+C) A, B, C y F, por ser variables booleanas slo

    puede ser 0 o 1.

    En la figura 2.2 se muestra la tabla de verdad con todas las posibles combinaciones de A, B y C, as como el diagrama lgico para la funcin F

    Figura 2.2 Tabla de verdad y diagrama lgico para F = A(B+C)

    La tabla de verdad la podemos interpretar de la siguiente manera: Cuando las entradas A, B y C son 0, la salida F es 0 que es lo que se obtiene al reemplazar A, B y C en la funcin.

    F= A(B+C) = 0(0+0) = 00 = 01 = 0

    Ahora si A=1, B=0 y C=0, F tomar el valor de:

    F= A(B+C) = 1(0+0) = 10 = 11 = 1

    As, se va probando con todas las posibles combinaciones de las entradas A, B y C (23=8 combinaciones) y se van obteniendo los valores de la salida F.

    Existen un conjunto de reglas que se pueden usar para simplificar expresiones lgicas, es decir, para reducir el nmero de trminos de una expresin. Al hacer esto, la expresin reducida generar un circuito lgico menos complejo que el de la expresin original. Las identidades se listan a continuacin:

    1) A+0=A 2) A+1=1 3) A+A=A 4) A+A=1 5) A+B=B+A 6) A+(B+C)=(A+B)+C 7) A(B+C)=AB+AC 8) (A+B)=AB

    9) A0=0 10) A1=A 11) AA=A 12) AA=0 13) AB=BA 14) A(BC)=(AB)C 15) A+BC=(A+B)(A+C) 16) (AB)=A+ B 17) (A)=A

    A B C F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0

  • 16

    Las identidades 8) y 16) se conocen como los teoremas de DeMorgan y se pueden generalizar de la siguiente manera:

    (A+B+C+D+E+) = ABCDE (ABCDE) = A+B+C+D+E

    2.3. Mintrminos y Maxtrminos La representacin ms bsica de una funcin lgica es la tabla de verdad, pero la informacin contenida en ella puede tambin expresarse en forma algebraica mediante una suma cannica o un producto cannico. La suma cannica de una funcin lgica es la suma de los productos lgicos de las variables correspondientes a las lneas de la tabla de verdad para las que la funcin produce una salida de 1. Cuando en la columna de la variable hay un 1 se toma la variable y cuando hay un 0 se toma su complemento. El producto cannico de una funcin lgica es un producto de las sumas lgicas de las variables correspondientes a las combinaciones de entradas para las que la funcin produce una salida de 0. En este caso, cuando en la columna de la variable hay un 0 se toma la variable y cuando hay un 1 se toma su complemento. Por ejemplo, dada la funcin lgica de la tabla siguiente:

    Lnea X Y Z F 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 1 7 1 1 1 1

    Las lneas donde F es 1 son: 0, 3, 4 6 y 7 y el producto lgico de la fila:

    0 es XYZ en la columna X es 0, en Y es 0 y en Z es 0 3 es XYZ en la columna X es 0, en Y es 1 y en Z es 1 4 es XYZ en la columna X es 1, en Y es 0 y en Z es 0 6 es XYZ en la columna X es 1, en Y es 1 y en Z es 0 7 es XYZ en la columna X es 1, en Y es 1 y en Z es 1

    Por consiguiente la suma cannica de la funcin es: F = xyz(0,3,4,6,7) = XYZ + XYZ + XYZ + XYZ + XYZ

    Para el producto cannico se tiene que: Las lneas donde F es 0 son: 1, 2 y 5 y la suma lgica de la fila:

    1 es X+Y+Z en la columna X es 0, en Y es 0 y en Z es 1 2 es X+Y+Z en la columna X es 0, en Y es 1 y en Z es 0 5 es X+Y+Z en la columna X es 1, en Y es 0 y en Z es 1

    F = xyz(1,2,5) = (X+Y+Z)(X+Y+Z)(X+Y+Z)

  • 17

    2.4. Simplificacin por lgebra Booleana Manipulando una expresin booleana, de acuerdo con las reglas del lgebra booleana, se puede obtener una expresin ms simple, una expresin que requiera menos compuertas lgicas.

    Ejemplo: Simplificar F = XYZ + XYZ

    Figura 2.3 Diagrama lgico de F = XYZ + XYZ

    Si hacemos que: A = XY entonces tenemos: F = AZ + AZ si aplicamos la identidad 7) queda: F = A(Z + Z) aplicando la identidad 4) Z + Z = 1 F = A 1 por la identidad 10) F = A regresando el valor original F = XY

    La tabla de verdad (del diagrama original y el simplificado) y el diagrama lgico simplificado se muestran en la figura 2.4

    Figura 2.4 Tabla de verdad y Diagrama lgico y para F = XY

    Por lo tanto las expresiones booleanas: XYZ + XYZ y XY son equivalentes, esto implica que ambas expresiones tienen la misma tabla de verdad a pesar que sus diagramas lgicos son diferentes. Ntese que mientras en el diagrama lgico original se requieren 7 compuertas lgicas (2 NOT, 4 AND y 1 OR) en el diagrama simplificado solo se necesitan 2 compuertas (1 NOT y 1 AND). Pero lo que debe quedar bien claro es que ambos diagramas tienen la misma tabla de verdad, es decir, que si a ambos diagramas se les aplica las mismas entradas, stos generarn las mismas salidas.

    X Y Z F 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0

  • 18

    Ejemplo: Simplificar F = (A + B)(A + B)

    Figura 2.5 Diagrama lgico F = (A+B)(A +B)

    F = (A + B)(A + B) por la identidad 7) o como, F = (A + B)A + (A + B)B simplemente, el producto F = AA + BA + AB + BB de 2 binomios Aplicando la 12) AA=0 y por la 11) BB=B queda F = 0 + BA + AB + B por la 13) BA=AB F = 0 + AB + AB + B por la 7) F = 0 + (A + A)B + B por la 4) F = 0 + 1B + B por la 10) F = 0 + B + B por la 3) F = 0 + B por la 1) F = B Con esto queda demostrado que (A + B)(A + B) puede ser reemplazado por simplemente B, es decir, que la salida F slo y nicamente depende de la variable de entrada B y no se toma en cuenta, para nada, el valor que pueda tomar la variable A, esto tambin se puede apreciar en la tabla de verdad y el diagrama simplificado de la expresin original de la figura 2.6

    Figura 2.6 Tabla de verdad y Diagrama lgico y para F = B

    En este caso se puede ver como queda simplificada una expresin booleana al mximo. Cabe recalcar, una vez ms, que la tabla de verdad que se muestra en la figura 2.6 satisface las condiciones de salida para ambos diagramas lgicos (el original y el simplificado)

    A B F 0 0 0 0 1 1 1 0 0 1 1 1

  • 19

    Ejemplo: Simplificar F = ((A + C)(B + D))

    Figura 2.7 Diagrama lgico de F = ((A+C)(B+D))

    Hacemos que X=A+C y Y=B+D y sustituimos en F F = (XY) por la 16) F = X + Y restableciendo valores F = (A + C) + (B + D) por la 8) F = AC + BD

    Figura 2.8 Diagrama lgico de F = AC + BD

    La tabla de verdad que satisface las condiciones de salida de los dos diagramas lgicos es la siguiente:

    A B C D F A B C D F 0 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 0 0 1 1 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 0 0 1 1 1 0 1 1 1 1 0 Figura 2.9 Tabla de verdad de F = AC + BD

    En este caso, como se observar en los diagramas, no se ha simplificado mucho la expresin, pero se ha obtenido un equivalente con mayor presencia de compuertas AND.

  • 20

    2.5. Simplificacin por mapa de Karnaugh. Si bien es cierto que una expresin booleana se puede simplificar mediante las relaciones bsicas del lgebra booleana, en algunas ocasiones esto se puede complicar debido a que no esta definido una serie de pasos sucesivos a realizar en el proceso de simplificacin. Existe un mtodo grafico que proporciona un procedimiento sencillo y directo para simplificar las expresiones booleanas y se denomina Mapa de Karnaugh. El Mapa de Karnaugh se puede utilizar para resolver problemas con cualquier nmero de variables de entrada, su utilidad prctica se limita a seis variables, con una cantidad mayor ser necesario el empleo de una computadora. El mtodo consiste en agrupar 2 o ms trminos de una suma cannica en los cuales exista un cambio mnimo de bits (cdigo Gray) entre las variables que los conforman. Por ejemplo la suma cannica ABC + ABC (111 y 110, respectivamente), puede simplificarse a AB(C+C) = AB La idea es hacer un mapa colocando juntas las lneas cuyos valores en binario tengan un cambio mnimo de sus bits. Por ejemplo la lnea 0 (0000) con las lneas 1, 2, 4 y 8 (0001, 0010, 0100 y 1000, respectivamente). La lnea 2 (0010) con las lneas 0, 3, 6 y 10 (0000, 0011, 0110 y 1010) La lnea 5 (0101) con las lneas 1, 4, 7 y 13 (0001, 0100, 0111 y 1101) La lnea 15 (1111) con las lneas 7, 11, 13 y 14 (0001, 0100, 0111 y 1101) Siguiendo esta regla un mapa de 16 lneas (4 variables) seria el siguiente:

    Figura 2.10 Mapa de Karnaugh para 4 variables Como se observa la lnea 0 tiene adyacentes a las lneas 1 y 4 pero no a las lneas 2 y 8. Igual ocurre con la lnea 2 que tiene adyacentes a las lneas 3 y 6 pero no a las lneas 0 y 10. Este inconveniente se resuelve copiando la tabla alrededor de la tabla original como se muestra en la figura 2.10 Una vez que se tiene el mapa se forman grupos de 2, 4, 8, 16, etc. lneas adyacentes cuya funcin de salida es 1. Esto significa que se pueden agrupar de: 2 trminos: Las lneas (0,1), (0,4), (0,2), (0,8); (5,1), (5,7), (5,4), (5,13); (11,9),

    (11,3), (11,10), (11,15), etc. 4 trminos: Las lneas (0,1,3,2), (0,4,12,8), (0,1,4,5), (0,2,8,10); (1,5,13,9),

    (1,3,9,11), (1,3,5,7); (6,4,14,12), (6,2,14,10), (6,7,15,14), etc. 8 trminos: Las lneas (0,1,3,2,4,5,7,6), (0,4,12,8,1,5,13,9), (0,4,12,8,2,6,14,10),

    (0,1,3,2,8,9,11,10), etc. No hay que olvidar que solo se agruparn las lneas cuya funcin de salida es 1

    0 (0000)

    1 (0001)

    3 (0011)

    2 (0010)

    4 (0100)

    5 (0101)

    7 (0111)

    6 (0110)

    12 (1100)

    13 (1101)

    15 (1111)

    14 (1110)

    8 (1000)

    9 (1001)

    11 (1011)

    10 (1010)

    10 8 9 11 10 8 2 0 1 3 2 0 6 4 5 7 6 4 14 12 13 15 14 12 10 8 9 11 10 8 2 0 1 3 2 0

  • 21

    Por ejemplo para la siguiente suma cannica ABC(0,1,2,3,4,5,9,10) que se corresponde con la siguiente tabla:

    A B C D F A B C D F 0 0 0 0 0 1 8 1 0 0 0 0 1 0 0 0 1 1 9 1 0 0 1 1 2 0 0 1 0 1 10 1 0 1 0 1 3 0 0 1 1 1 11 1 0 1 1 0 4 0 1 0 0 1 12 1 1 0 0 0 5 0 1 0 1 1 13 1 1 0 1 0 6 0 1 1 0 0 14 1 1 1 0 0 7 0 1 1 1 0 15 1 1 1 1 0 Figura 2.11 Tabla de verdad de ABC(0,1,2,3,4,5,9,10)

    La expresin sin simplificar ser: F = ABCD + ABCD + ABCD + ABCD + ABCD + ABCD + ABCD+ ABCD El mapa de karnaugh, quedar as:

    Figura 2.12 Mapa de Karnauhg de ABC(0,1,2,3,4,5,9,10) Los nmeros en la esquina superior derecha de las celdas se corresponden con los nmeros de lnea y los nmeros en el centro son los valores que toma la funcin de salida en esa lnea. En los bordes superior e izquierdo, aparecen los valores que pueden tomar las variables lgicas. Por ejemplo, la interseccin de la fila AB y la columna CD definen el trmino ABCD (0101, lnea 5). Otro detalle a tener en cuenta es el orden o secuencia que tienen los elementos de los bordes, as, AB, AB, AB y AB se corresponden con 00, 01, 11 y 10 (cdigo Gray para 0, 1, 2 y 3), de igual manera ocurre con el borde superior. A continuacin se proceder a agrupar. Cuanto mayor nmero de elementos tenga el grupo, mayor ser la simplificacin Las lneas 0, 1, 3 y 2 forman el grupo 1. Las lneas 0, 1, 4 y 5 forman el grupo 2. Las lneas 1 y 9 forman el grupo 3 y, finalmente, Las lneas 2 y 10 el grupo de 4.

    CD 00 CD 01

    CD 11

    CD 10

    AB 00

    0 1

    1 1

    3 1

    2 1

    AB 01

    4 1

    5 1

    7 0

    6 0

    AB 11

    12 0

    13 0

    15 0

    14 0

    AB 10

    8 0

    9 1

    11 0

    10 1

  • 22

    No importa que se tomen lneas que pertenecen a algn grupo para formar otro grupo. Ahora pasaremos a simplificar. La regla de simplificacin es sencilla:

    QUEDARN SOLO AQUELLAS VARIABLES LGICAS PARA LAS QUE NO APARECE SU COMPLEMENTO EN EL GRUPO

    En el grupo 1 (ABCD + ABCD + ABCD + ABCD) quedar: AB En el grupo 2 (ABCD + ABCD + ABCD + ABCD) quedar: AC En el grupo 3 (ABCD + ABCD) quedar: BCD En el grupo 4 (ABCD + ABCD) quedar: BCD Por ultimo, se unen las reducciones mediante un operador OR (+) quedando:

    F = AB + AC + BCD + BCD

    Condicin no importa En algunos casos se va a dar que, ciertas entradas nunca van a ocurrir, por lo que no estarn definidos los correspondientes valores para la funcin de salida. Esto se conoce como condicin NO IMPORTA, es decir, que no importa si la funcin de salida toma el valor de 0 o 1, por lo que se puede establecer un valor arbitrario para la funcin de salida de tal manera que permita simplificar an ms la expresin. Ejemplo: Disear un detector de dgitos BCD primos.

    Como sabemos, los dgitos BCD son del 0 al 9 (0000 a 1001) y estn conformados por 4 bits. Por consiguiente, los dgitos BCD primos son: 1, 2, 3, 5 y 7. La tabla de verdad para esta funcin ser:

    A B C D F A B C D F 0 0 0 0 0 0 8 1 0 0 0 0 1 0 0 0 1 1 9 1 0 0 1 0 2 0 0 1 0 1 10 1 0 1 0 ? 3 0 0 1 1 1 11 1 0 1 1 ? 4 0 1 0 0 0 12 1 1 0 0 ? 5 0 1 0 1 1 13 1 1 0 1 ? 6 0 1 1 0 0 14 1 1 1 0 ? 7 0 1 1 1 1 15 1 1 1 1 ?

    Figura 2.13 Tabla de verdad para detector de nmeros primos

    En la tabla, ABCD representan los 4 dgitos del cdigo BCD. Ntese que desde la lnea 10 hasta la 15, la funcin de salida tiene el valor ? debido a que esos valores no estn definidos para el cdigo BCD, en otras palabras, si las entradas es un cdigo BCD, estas entradas (10-15) nunca ocurrirn.

  • 23

    Ahora construiremos el mapa de Karnaugh tal como se muestra en la figura 2.14. Ntese las lneas del 10 al 15, los ? significa que pueden tomar el valor de 0 o 1 segn nos convenga.

    CD 00

    CD 01

    CD 11

    CD 10

    AB 00

    0 0

    1 1

    3 1

    2 1

    AB 01

    4 0

    5 1

    7 1

    6 0

    AB 11

    12 ?

    13 ?

    15 ?

    14 ?

    AB 10

    8 0

    9 0

    11 ?

    10 ?

    Figura 2.14 Mapa de Karnauhg de nmeros primos BCD

    Hay un grupo que est completamente definido, que es el grupo conformado por las lneas 1, 3, 5 y 7, el problema es, con qu lneas agrupar la lnea 2. Un primer intento sera agrupar la lnea 2 con la lnea 3, con lo que se forma un grupo de 2 lneas. Un segundo intento es hacer 1 la lnea 10 y agruparla con la lnea 2, tambin sera un grupo de 2 lneas. Un tercer intento, es hacer 1 las lneas 11 y 10 y agruparlas con las lneas 3 y 2 (grupo de 4) con lo que obtendramos una mayor simplificacin. Al parecer esto sera lo ptimo, por lo que la funcin quedar:

    F = AD + BC

    Esto tambin significa que la funcin de salida del resto de lneas (12, 13, 14 y 15) debemos asignarle el valor de 0.

    2.6. Circuitos lgicos combinacionales.

    Es un grupo de compuertas lgicas conectadas de una manera especfica, definiendo de esta forma un circuito con un conjunto de entradas y salidas binarias. La caracterstica principal de un circuito combinacional es que los valores binarios de las salidas dependen o estn en funcin, slo y nicamente, de una combinacin binaria de entradas.

    Figura 2.15 Diagrama de bloque de un circuito combinacional Un circuito combinacional puede describirse mediante una tabla de verdad que muestre la relacin binaria entre las N variables de entrada y las M variables de salida.

    Circuito Combinacional

    M variables de salida

    N variables de entrada

    F1 F2 FM

    A B

  • 24

    2.6.1. Semisumador. Es el circuito combinacional ms simple y realiza la suma aritmtica de dos dgitos binarios. Se denomina semisumador porque las entradas estn conformadas por slo los dos dgitos binarios a sumar y como salidas, tiene el resultado de la suma y el acarreo generado.

    Figura 2.16 Tabla de verdad y circuito combinacional de un semisumador De la tabla podemos obtener las siguientes funciones lgicas S = AB+AB y C = AB, pero AB+AB = AB por lo que el circuito quedara:

    Figura 2.17 Circuito combinacional simplificado de un semisumador

    2.6.2. Sumador completo. Este circuito combinatorio tiene como entradas los dos dgitos binarios a sumar (A, B) y adems un acarreo inicial (K), es decir, tres entradas. Como salidas, el resultado de la suma (S) y el acarreo generado o de salida (C).

    Figura 2.18 Tabla de verdad y circuito combinacional de un sumador completo De la tabla de la figura 2.18 se obtienen las funciones: S = ABK+ABK +ABK+ABK = (AB+AB)K+(AB+AB)K S = (AB)K+(AB)K = (AB)K C = ABK+ABK+ABK+ABK = (AB+AB)K+AB(K+K) C = (AB)K+AB

    A B S C 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1

    A B K S C 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1

  • 25

    2.6.3. Sumador restador. Los circuitos anteriores pueden tratarse como cajas negras, donde solo sepamos las salidas que se van a obtener al ingresar entradas determinadas, por ejemplo el diagrama de bloque para el sumador completo seria el siguiente:

    Figura 2.19 Diagrama de bloque de un sumador completo Donde A y B son las entradas de los dgitos binarios a sumar, Ci es el acarreo de entrada, es la salida de la suma de los bits de entrada y Co el acarreo de salida. Se pueden usar estos circuitos simples para disear circuitos cambinacionales ms complejos como por ejemplo un sumador de 4 bits tal como se muestra en la figura siguiente:

    Figura 2.20 Diagrama de un Sumador de 4 bits En el diagrama de la figura 2.20 hay 4 sumadores completos. K es el acarreo de entrada, A3, A2, A1 y A0 son los 4 bits del numero A, al igual que B3, B2, B1 y B0 del numero B. El acarreo de salida Co de cada sumador se conecta al acarreo de entrada Ci del siguiente bloque sumador. S3, S2, S1 y S0 es un nmero de 4 bits resultado de la suma de A y B. Finalmente C contiene el acarreo de salida resultado de la suma de los nmeros de 4 bits A y B. De igual forma su puede disear un sumador de 8, 16 o 32 bits o, en todo caso, usando 2 sumadores de 4 bits se puede construir un sumador de 8 bits, con 4 uno de 16 y as sucesivamente.

    Figura 2.21 Diagrama de un Sumador de 8 bits usando sumadores de 4 bits

  • 26

    La figura 2.21 muestra un sumador de 8 bits diseado con 2 sumadores de 4 bits y estos a su vez se han diseado usando sumadores completos de un bit. Usando la misma lgica se puede disear un restador, pero mejor aun, pasemos a hablar de un circuito que realice ambas operaciones: un sumador-restador. Primero recordemos que una resta binaria (A-B) es igual que una suma pero complementando a 2 el segundo operando (A+C2(B)), es decir que:

    10 2 = 10 + C2(2) En binario con 4 bits sera:

    1010 0010 = 1010 + C2(0010) = 1010 + (1101 + 1) Por consiguiente necesitamos disear un circuito tal, que cuando la operacin sea una suma el segundo operando B se mantenga igual pero, si la operacin es una resta se complemente (cambiar 1s por 0s y 0s por 1s y sumarle 1). Una vez tratado el segundo operando se realiza una simple suma. Una entrada adicional (M) nos puede indicar si la operacin a realizar es una suma (0) o una resta (1). Si M=0, entonces el digito Bi debe quedar igual (sumar), caso contrario el digito Bi debe ser complementado (restar). Si miramos la tabla de verdad generada, donde B es la entrada al sumador, (figura 2.22) lo que obtenemos es una operacin XOR.

    M Bi B 0 0 0 0 1 1 1 0 1 1 1 0

    Figura 2.22 Tabla de verdad de la operacin

    Por lo tanto, mediante una operacin XOR podemos, si fuera una resta, complementar los 0s y los 1s del segundo operando; pero al hacer esto slo estamos hallando el complemento a 1, falta sumarle 1 para que se convierta en el complemento a 2. Esto se logra conectando la entrada M al acarreo de entrada (sumar 1), tal como se aprecia en la figura 2.23.

  • 27

    Figura 2.23 Diagrama de un Sumador-Restador de 4 bits 2.7. Flip-flops

    Es una celda binaria capaz de almacenar un bit de informacin. Tiene 2 salidas, una para el valor normal y una para el valor complementado del bit almacenado en l. La diferencia entre los diversos tipos de flip-flops est en el nmero de entradas que posean y la manera en la cual las entradas afectan el estado binario. Comnmente los flip-flops reciben el nombre de registros. 2.7.1. Flip Flop Bsico con compuertas NAND y NOR

    El circuito Flip-Flop ms elemental que se puede construir es con 2 compuertas NAND como muestra la figura 2.24

    Figura 2.24 Flip-flop bsico NAND y su tabla d verdad Resumen del flip-flop bsico con compuertas NAND 1. R=S=1: Esta condicin no tiene efecto alguno sobre el estado de salida.

    Las salidas Q y Q permanecern en el estado en el que se encontraban antes de presentarse esta condicin de entrada.

    2. R=0, S=1: Este estado siempre ocasionar que la salida pase al estado Q=1, donde permanecer aun despus de que R=1.

    3. R=1, S=0: Esto siempre producir el estado Q=0, donde la salida permanecer aun despus de que S=1.

    4. R=S=0: Esta condicin intenta iniciar y borrar el registro bsico en forma simultanea y produce Q=Q=1. No debe utilizarse.

    La figura 2.25 muestra el diagrama de estados del flip-flop, donde los crculos son los estados del flip-flop (salida Q) y las flechas las transiciones que permiten pasar de un estado a otro. Los valores 00, 01, 10 y 11 son los valores que pueden tomar las entradas RS cuando el flip-flop se encuentre en alguno de sus 2 estados (0 o 1). Como se aprecia la salida Q o estado al que pasara, esta en funcin de las entradas R, S y del estado actual en el que se encuentre el flip-flop. Por ejemplo, si el flip-flop se encuentra en el estado 0 y RS=11 la salida Q es 0, pero si se encontrara en el estado 1, la salida Q sera 1.

    Figura 2.25 Diagrama de estados del flip-flop NAND

    R S Q 0 0 Q=Q=1 0 1 1 1 0 0 1 1 Sin Cambio

    0 1

    10

    11

    00

    01

    11

    00

    01

    10

  • 28

    Otra alternativa de flip-flop bsico es la mostrada en la figura 2.26, construido con 2 compuertas NOR

    Figura 2.26 Registro bsico NOR y su tabla d verdad Resumen del flip-flop bsico con compuertas NOR 1. R=S=0: Esta condicin no tiene efecto alguno sobre el estado de salida.

    Las salidas Q y Q permanecern en el estado en el que se encontraban antes de presentarse esta condicin de entrada.

    2. R=0, S=1: Este estado siempre ocasionar que la salida pase al estado Q=1, donde permanecer aun despus de que R=1.

    3. R=1, S=0: Esto siempre producir el estado Q=0, donde la salida permanecer aun despus de que S=1.

    4. R=S=1: Esta condicin intenta iniciar y borrar el registro bsico en forma simultanea y produce Q=Q=0. No debe utilizarse.

    Figura 2.25 Diagrama de estados del flip-flop NOR Al modificar el valor de una de las entradas del fli-flop, la salida Q cambia inmediatamente, por lo que podemos considerar estas entradas como asncronas. Pero por lo general es necesario que las salidas se sincronicen con una seal maestra conocida como seal del Reloj. Esto se logra agregando un par de compuertas AND, con lo que ahora obtenemos un flip-flop con entradas sncronas, lo que implica que las salidas no se actualizaran mientras la seal de reloj no sea 1.

    R S Q 0 0 Sin cambio 0 1 1 1 0 0 1 1 Q=Q=0

    0 1

    00

    11

    00

    01 10

    11

    01

    10

  • 29

    Figura 2.25 Diagrama de un flip-flop con entradas sncronas 2.7.2. Flip-flop SR sincronizado por reloj

    Figura 2.26 Smbolo grafico, Tabla caracterstica y excitacin de un FF RS Ecuacin caracterstica: Q = S + RQ

    2.7.3. Flip-flop D sincronizado por reloj

    Figura 2.27 Smbolo grafico, Tabla caracterstica y excitacin de un FF D

    Ecuacin caracterstica: Q = D

    2.7.4. Flip-flop JK sincronizado por reloj

    Figura 2.28 Smbolo grafico, Tabla caracterstica y excitacin de un FF JK Ecuacin caracterstica: Q = JQ + KQ

    2.7.5. Flip-flop T sincronizado por reloj

    Figura 2.29 Smbolo grafico, Tabla caracterstica y excitacin de un FF T

    Ecuacin caracterstica: Q = Q T

    S R CLK Q 0 0 Q anterior 0 1 0 1 0 1 1 1 1

    Q0 Q1 S R 0 0 0 0 1 1 0 1 0 0 1 1 1 0

    D CLK Q 0 0 1 1

    Q0 Q1 D 0 0 0 0 1 1 1 0 0 1 1 1

    J K CLK Q 0 0 Q anterior 0 1 0 1 0 1 1 1 Q

    Q0 Q1 J K 0 0 0 0 1 1 1 0 1 1 1 0

    T CLK Q 0 Q anterior 1 Q

    Q0 Q1 T 0 0 0 0 1 1 1 0 1 1 1 0

    T

  • 30

    2.8. Circuitos lgicos secuenciales.

    Es un conjunto de compuertas lgicas (circuito combinacional) y flip-flops interconectados entre si. La caracterstica principal de un circuito secuencial es que los valores binarios de las salidas no slo dependen de sus entradas actuales sino tambin de la secuencia de entradas previas. 2.8.1. Ecuaciones de entrada de los flip-flops

    La figura 2.30 muestra un circuito secuencial conformado por 2 flip-flops D y algunas compuertas lgicas.

    Figura 2.30 Diagrama de un circuito secuencial con FF D En un flip-flop tipo D la ecuacin caracterstica es Q=D (ntese que Q ser A en el primer flip-flop y B en el segundo), es decir A=DA y B=DB. Por lo tanto DA ser igual a la salida del circuito conformado por las compuertas 1, 2 y 3, es decir: A=DA=Ax+xB y DB a la salida de la compuerta 4, B=DB=Ax. La salida y ser igual al resultado de las compuertas 5, 6, 7 y 8; entonces: y=Ax+Bx. Esto significa que el nuevo valor de A depender del actual valor de A, B y x, mientras que el valor de B estar en funcin de B y A. Lo siguiente ser construir la tabla de estados del circuito usando las expresiones halladas.

    Estado actual Entrada Estado nuevo Salida A B x A B y 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0

  • 31

    Figura 2.31 Tabla de estados Por ejemplo si los valores actuales de las variables A, B y x son 0, 1 y 1 respectivamente y los reemplazamos en las expresiones halladas, obtendremos los nuevos valores de A y B:

    A = Ax+xB = 01 + 11 = 0 + 1 = 1 B = Ax = 11 = 1 y = Ax+Bx = 00 + 10 = 0 + 0 = 0

    Ahora, a partir de la tabla de estados, construiremos el diagrama de estados Como tenemos 2 (N) Flip-flops y cada uno de ellos puede tener 2 estados posibles, esto significa que el circuito secuencial tendr 4 (2N) estados (AB) en total 00, 01, 10 y 11. Cuando el estado actual (AB) es 00 y x es 0, el estado siguiente es 00 y la salida y=0, pero si x=1 el siguiente estado es 01 y la salida y=0. Si el estado actual es 11 y x=0 el siguiente estado es 00 y la salida y=1, pero si x=1 el estado siguiente es 10 y la salida y=0. Si continuamos con este razonamiento, obtendremos el siguiente diagrama:

    Figura 2.31 Diagrama de estados Los nmeros que aparecen en el numerador son las entradas, mientras los denominadores son las salidas. Ahora analicemos un circuito secuencial con flip-flops tipo JK.

    Figura 2.32 Diagrama de circuito secuencial con FF JK Las ecuaciones de entrada son: JA=x, KA=x, JB=z, KB=z, z=(x+A)B y la ecuacin caracterstica para estos flip-flops es Q=JQ+KQ que para este caso sera: A=JAA+KAA y B=JBB+KBB

    00

    0/0

    01 11

    10

    1/0

    0/1

    1/0 0/1 0/1

    1/0

    1/0

  • 32

    Estado actual Entrada = x = x Salida (x+A)B = z = z

    Estado nuevo = JQ+KQ

    A B x JA KA z JB KB A B 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 1 1 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 1

    Figura 2.33 Tabla de estados

    Por ejemplo si A, B y x valen 1, 0 y 0, respectivamente, entonces:

    JA= x = 0 KA = x = 0 z = (x+A)B = (0+1)1 = 1 JB = z = 1 KB = z = 1 A = JAA+KAA = 00+11 = 1 B = JBB+KBB = 11+00 = 1

    Todo esto queda resumido en el diagrama de estados siguiente

    Figura 2.34 Diagrama de estados Hasta ahora hemos partido del diagrama de un circuito secuencial para determinar el comportamiento de ste, pero tambin se puede dar el caso contrario, es decir, que a partir del comportamiento del circuito secuencial determinar o disear dicho circuito. Por ejemplo: Dado el diagrama de estados de la figura 2.35 disear un circuito secuencial haciendo uso de flip-flops tipo JK

    00

    0/0

    11 10

    01

    0/0

    1/0

    1/1 1/1

    0/0 0/1

    1/0

    0/0

    00

    0/0

    01 10

    11

    0/1 1/0

    1/1 1/1

    0/1 1/0

  • 33

    Figura 2.35 Diagrama de estados En este tipo de problemas conocemos el estado actual (Q0) y el estado nuevo (Q1) al que pasara el circuito secuencial al generarse una entrada x. En este caso haremos uso de la tabla de excitacin del FF JK, la cual nos permite saber que valores deben tener las entradas J y K para poder pasar de Q0 a Q1

    Estado actual Q0

    Entrada Estado nuevo Q1 FF-A FF-B Salida A B x A B JA KA JB KB z 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 1 0 0 1 1 0

    Figura 2.35 Tabla de estados

    Por ejemplo, si el estado actual del FF A es 0, para que pueda pasar al estado 0 (se queda en el mismo estado), la entrada J (JA) debe ser 0 y K (KA) debe ser (entrada no importa), segn la tabla de excitacin. Para el caso del FF B, si su estado actual es 1, para que pueda pasar al estado 1 (se queda en el mismo estado), la entrada J (JB) debe ser (entrada no importa) y K (KB) debe ser 0. Continuando con este razonamiento se completa la tabla y luego se procede a determinar JA, KA, JB y KB en funcin de A, B y x, es decir, que se toma a A, B (estado actual), x como entradas y a JA, KA, JB y KB como funciones de salida. Obviamente el mtodo ms prctico para todos estos casos es: El mapa de Karnaugh.

    Figura 2.36 Mapas de Karnaugh para JA, KA, JB y KB De los mapas de Karnaugh podemos determinar que: JA = Bx KA = Bx JB = x KB = x

    JA X X

    AB 0 0 1 0

    AB 2 0 3 1

    AB 6 7

    AB 4 5

    JB X X

    AB 0 0 1 1

    AB 2 3

    AB 6 7

    AB 4 0 5 1

    KB X X

    AB 0 1

    AB 2 0 3 1

    AB 6 0 7 1

    AB 4 5

    KA X X

    AB 0 1

    AB 2 3

    AB 6 0 7 1

    AB 4 0 5 0

  • 34

    Del mismo modo se puede determinar z = Bx + Bx = Bx Con todas estas expresiones procedemos a disear el circuito secuencial tal como se muestra en la figura 2.37

    Figura 2.37 Diagrama del circuito secuencial

    2.9. Solucin de ejercicios con Boole Boole es un programa que permite disear y analizar circuitos combinacionales y secuenciales. Este software es de libre uso y puede ser descargado de la siguiente pgina: http://paginaspersonales.deusto.es/zubia/BOOLE_SP.zip Una vez descargado y descomprimido se ejecuta Boole.exe y aparece una ventana con 2 botones: Sistema combinacional y Sistema secuencial. Autmatas 2.9.1. Circuitos combinacionales.

    Seleccionado el botn Sistema combinacional aparecer la ventana mostrada en la figura 2.38

  • 35

    Figura 2.38 Ventana de Sistema combinacional de Boole

    Primero debemos darle un nombre al sistema (Ejercicio1) y luego establecer la cantidad de variables de entrada (3) y salida (1). Se puede establecer un nombre para las variables de entrada (X, Y, Z) y de salida o dejarlos con sus valores por defecto A, B, C y F respectivamente. Ahora elegimos el botn Tabla de verdad manual para ingresar los valores de la tabla de verdad del circuito. La ventana que aparecer es la mostrada en la figura 2.39.

    Figura 2.39 Ventana para el llenado de la tabla de verdad

    El botn Condiciones libres llenara de X la funcin de salida F, mientras que el botn Ceros de ceros y Unos de unos. Obvio! Bastara con hacer clic, una o varias veces, en cualquiera de las celdas de la funcin F para que cambie a 0, 1 o X Una vez llenada la tabla hacemos clic en Evaluar y luego en Salir, para regresar a la ventana anterior en donde haremos clic en el botn Expr. SOP simplificada donde aparecer la siguiente ventana:

  • 36

    Figura 2.40 Ventana de Expresin SOP simplificada En ella se observa las expresiones lgicas simplificadas de las funciones (F:1, F:2, ) y 4 botones: Veitch-Karnough, que permite ver el mapa de Karnaugh de la funcin con las agrupaciones de lneas que se han empleado para la simplificacin

    Figura 2.41 Ventana de mapa de Karnaugh

    Nand/Nor que muestra una ventana con expresiones lgicas de F, pero empleando solo operadores Nand o Nor Visualizar circuito que muestra una ventana con el diagrama del circuito simplificado, como se muestra en la figura 2.42

    Figura 2.42 Ventana de diagrama del circuito

  • 37

    2.9.2. Circuitos secuenciales.

    Al seleccionar el botn Sistema secuencial. Autmatas aparecer la ventana de la figura 2.43

    Figura 2.43 Ventana de Sistema Secuencial Al seleccionar la opcin Nuevo del men Archivo aparecer la ventana de la figura 2.44 que nos permitir elegir el tipo de autmata con el que se desea trabajar: Moore y Mealy (en el tipo Mealy tenemos que ingresar el valor de la transicin y el valor de la salida por cada flecha, mientras que en el Moore ingresamos la transicin en cada flecha y la salida en cada crculo). As tambin, se establece la cantidad de entradas y salidas y sus nombres respectivos.

    Figura 2.44 Ventana de Sistema Secuencial El ejemplo a desarrollar es el autmata de la figura 2.31 y el tipo de autmata, Mealy. Una vez establecido la cantidad de variables y sus nombres se hace clic en Aceptar para que aparezca la ventana de la figura 2.44 donde se proceder a dibujar el autmata. Hay que reconocer que la interfaz grafica para dibujar el autmata es un poco dura, pero con un poco de prctica se lograr dominarla. Primero dibujaremos los estados, 4 en este caso. Para ello se hace clic en el botn crculo de la ventana Barra (barra de herramientas) y luego hacemos clic en el fondo blanco tantas veces como estados deseemos. Para dibujar las transiciones, seleccionamos el botn flecha derecha de la ventana Barra y luego hacemos clic en el estado inicial y luego en el

  • 38

    estado final los cuales quedarn unidos mediante una flecha. Esta operacin deber repetirse tantas veces como transiciones tenga el autmata.

    Figura 2.45 Ventana donde se dibuja el Autmata

    Para hacer cualquier modificacin respecto a la posicin de los estados, se debe seleccionar primero la flecha tipo puntero de mouse y luego arrastrar el elemento a mover (crculo o flecha). As mismo se puede tambin establecer los valores de las entradas y salidas; haciendo doble clic sobre cualquier flecha, aparecer una ventana donde se ingresar la entrada y salida respectivamente Para visualizar el circuito abrimos el men Ver circuito y podemos elegir la opcin Con flip-flops D

    Figura 2.46 Circuito secuencial con Flip-Flop tipo D

  • 39

    O la opcin Con flip-flops JK

    Figura 2.47 Circuito secuencial con Flip-Flop tipo JK

    Otra opcin interesante es Simulacin interactiva del men Resultados donde se podr simular las transiciones de los estados al tomar un valor determinado la entrada x cada vez que se haga clic en el botn CLK

    Figura 2.48 Ventana de simulacin interactiva

  • 40

    2.10. Simulacin de circuitos con Electronics WorkBench Electronics Workbench (EWB) o Banco de Trabajo de Electrnica, es un programa para disear y simular circuitos electrnicos y lgicos, desarrollado por INTERACTIVE IMAGE TECHNOLOGIES LTD. El programa tiene una interfaz grfica con el usuario que lo hace muy intuitivo, cmodo de usar y rpido de trabajar, razn por la cual no vamos a describir, con detalle, como hacer los circuitos sino, mas bien, las herramientas a usar para simular nuestros circuitos.

    Figura 2.50 Ventana principalde WorkBench

    La figura 2.50 muestra la ventana principal del WorkBench v5.12, junto con algunas cajas de herramientas que se van a emplear en el diseo y simulacin de circuitos digitales. Para iniciar el diseo de un circuito, se hace clic en el botn respectivo de la barra de herramientas, para que aparezca la caja de herramientas con la que deseamos trabajar (Logic Gates - Compuertas Lgicas, por ejemplo). A continuacin seleccionamos el elemento de la caja de herramientas que queremos agregar y lo arrastramos hacia el rea de trabajo (ventana de fondo blanco), esta operacin la repetimos tantas veces como elementos deseemos. Todos los elementos tienen una o ms salidas, las cuales al sealarlas con el puntero del mouse aparece un crculo negro sobre ellas, lo cual indica que podemos iniciar la operacin de conexin con otros componentes. Al arrastrar y llegar a la salida (entrada) de otro componente, tambin aparecer un crculo negro, con lo cual podemos finalizar la conexin. Al finalizar este proceso veremos una lnea que conecta ambos componentes y as sucesivamente se puede repetir esta operacin con el resto de elementos. La figura 2.51 muestra un circuito terminado. Como se aprecia es el diagrama de un sumador completo de un bit (figura 2.18) al cual se le han agregado una batera

    Activar simulacin

  • 41

    de 5v, 3 switch (A, B y C), 2 probadores (rojo y azul) para poder hacer la simulacin.

    Figura 2.51 Circuito de un sumador completo de un bit La batera se usa para simular los 0s y 1s digitales (0V. y 5V.) y los switch para conmutar las entradas a 0V. o 5V. (0 o 1). Para establecer las propiedades de los componentes basta con hacer doble clic sobre ellos y elegir la ficha respectiva donde se establecern los valores deseados. Por ejemplo, hacer doble clic sobre batera, elegir la ficha Value y establecemos el valor de 5V, para los switch, tambin, elegimos la ficha Value y establecemos la tecla (A, B y C respectivamente) con la cual conmutar el switch. Para iniciar la simulacin hacer clic en el botn 0/1 que se encuentra en la esquina superior derecha de la ventana. Bastar con presionar A, B o C para conmutar las entradas para las compuertas. Cada vez que la salida sea 1, los probadores se encendern con el color respectivo. El ejemplo anterior es slo para iniciarnos en el proceso de simulacin pero lo mas apropiado es utilizar el Generador de Palabras (Word Generador) tal como se muestra en la figura siguiente:

    Figura 2.52 Circuito del sumador completo con el generador de palabras Un Generador de Palabras es un instrumento que permite generar palabras de 16 bits y hacer que sus salidas contengan estos valores. Al conectar las salidas del Generador de Palabras a las entradas de los diferentes componentes podemos estudiar el comportamiento del circuito, o mejor dicho las salidas de ste, frente a un conjunto de valores de entrada. El Generador de Palabras es el 5to botn (Word Generador) de la caja de herramientas Instruments (Instrumentos) y al hacer doble clic sobre l aparecer la ventana de la figura 2.53, con la cual podemos configurarlo.

  • 42

    Figura 2.53 Ventana de configuracin del Generador de Palabras En la parte izquierda hay una lista donde se puede ingresar las palabras en hexadecimal (4 dgitos) que deseamos generar. Esto tambin lo podemos hacer ubicndonos primero en la posicin dentro de la lista donde deseamos insertar la palabra y luego en la parte inferior derecha (Binary) escribir el valor en binario (16 dgitos). En el rea Address se puede ver:

    Edit.- Muestra el valor de la palabra a generar, ingresada o editada. Current.- Cuando se esta simulando, muestra el valor actual que se est

    generando o que esta presente en las salidas del generador. Initial.- Muestra o establece la direccin de la primera palabra a generar. Final.- Muestra o establece la direccin de la ltima palabra a generar.

    En Frecuency se establece la frecuencia con la que se generaran las palabras. Para la simulacin es recomendable 1 Hz, pero se puede cambiar a kHz o MHz Finalmente en la parte superior derecha se encuentran 4 botones que permiten establecer el ciclo de generacin de las palabras

    Cycle.- Permite generar las palabras en forma cclica, es decir que una vez que se genero la ltima, contina con la primera y as sucesivamente.

    Burst.- Una vez generada la ltima palabra se detiene. Step.- En esta modalidad, cada vez que se desee generar una palabra se tiene

    que hacer clic en este botn. Breakpoint.- Sirve para crear puntos de parada, es decir que, cuando se vaya

    a generar cierta palabra establecida como Breakpoint el simulador se detiene. Para ello slo basta seleccionar la palabra y hacer clic en este botn

    Pattern.- Muestra una ventana que permite establecer la forma como se llenar la lista de palabras: v Clear buffer: Limpia la lista de palabras (la llena de ceros). v Open: Carga la lista de palabras desde un archivo texto. v Save: Graba en un archivo texto la lista de palabras. v Up counter: Carga la lista de palabras desde el 0000 hasta el 03FF. v Down counter: Carga la lista de palabras desde el 03FF hasta el 0000. v Shift right: Carga la lista de palabras con potencias de 2 (decrecientes). v Shift left: Carga la lista de palabras con potencias de 2 (crecientes).

  • 43

    Otro instrumento interesante es el Convertidor Lgico (Logic Converter). Es el 7mo botn de la caja de herramientas Instruments. Este instrumento permite generar la tabla de verdad, la expresin booleana original y simplificada a partir de un circuito. Tambin permite crear una tabla de verdad y a partir de ella las expresiones booleanas correspondientes as como el circuito respectivo. La figura 2.54 muestra las conexiones que se deben realizar para evaluar la salida F del circuito de la figura 2.3.

    Figura 2.54 Conexin del Convertidor Lgico Igual que el caso anterior, hacer doble clic sobre el Convertidor Lgico para que aparezca la ventana de la figura 2.55 que es donde se visualizan los resultados

    Figura 2.54 Ventana del Convertidor Lgico Con el primer botn, se generar la tabla de verdad con los respectivos valores

    de la funcin de salida Con el segundo botn se obtiene la expresin booleana tomada directamente

    de la tabla, sin simplificar (maxtrminos). Con el tercer botn se obtiene la expresin booleana simplificada Tambin se puede trabajar sin tener un circuito, generando una tabla de verdad o ingresando una expresin booleana. En el primer caso, se hace clic sobre las variables que se van a usar (A, B, C,H) y en forma automtica se va generando la tabla de verdad. Luego hay que ubicarse sobre los valores que aparecen a la derecha (funcin de salida) y establecer los nuevos. Ahora ya podemos hacer uso del segundo, tercero, quinto y sexto botn.

  • 44

    En el segundo caso se ingresa una expresin booleana en el rectngulo blanco de la parte inferior de la ventana, con lo que luego se podr hacer uso de los botones cuarto, quinto y sexto Con el cuarto botn, dada una expresin booleana, se obtiene la tabla de

    verdad a partir de dicha expresin. Con el quinto botn, a partir de una expresin booleana, se obtiene el circuito

    o diagrama. Con el sexto botn se obtiene el diagrama pero compuesto por slo

    compuertas NAND Ahora veamos un circuito secuencial. Al diagrama de la figura 2.37 se le ha agregado una batera y witch, para simular los valores de la entrada X. Algo semejante se pudo haber usado para generar la seal de reloj (CLK) que se encarga de sincronizar los flip-flops, pero en su lugar es mejor usar un Generador de Seales (Function Generator) tal como se puede ver en la figura 2.55

    Figura 2.55 Circuito con Generador de Seales El Generador de Seales, es un instrumento que se usa para generar 3 tipos de seales u ondas: Sinusoidal, triangular y cuadrada Haciendo doble clic en el Generador de Seales aparecer una ventana que permitir establecer la configuracin de ste. Aqu se puede seleccionar el tipo de seal, frecuencia, amplitud, ciclo til y desplazamiento. Ver figura 2.56

    Figura 2.56 Generador de Seales

  • 45

    2.11. Ejercicios resueltos y propuestos 2.11.1. Resueltos

    a) Simplificar AB+A(CD+CD) AB+A(C(D+D) AB+A(C(1)) AB+AC A(B+C)

    b) Simplificar (BC+AD)(AB+CD) BCAB+BCCD+ADAB+ADCD ABBC+BCCD+AABD+ACDD AC + BD + BD + AC AC+AC+ BD+ BD AC+BD

    c) Dada la funcin boaleana: F=XYZ+XYZ+XYZ i. Listar la tabla de verdad

    Los trminos que conforman la expresin booleana son los valores de las variables para las cuales F es 1, por consiguiente: Para XYZ=101, XYZ=001, XYZ=111 F=1 entonces:

    X Y Z F 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1