Electrónica, Electricidad y Sonido


Circuitos lógicos


Desarrollo de Problemas

  • Diseñe a nivel de Circuitos Lógicos una memoria de 2 X 2. Considere pastillas de memoria de 2 X 2 para elaborar una memoria de 16 X 8. Ejemplifique su utilización para la escritura del valor 4AC5 en la posición (125)8 y una lectura de la posición (100)8 considerando que contiene el valor (111020)3.

  • Procedimiento:

    Para poder ejemplificar el uso de la memoria, primero debemos transformar los números que usaremos a la base binaria, la cual es la que se usa a nivel de circuitos lógicos:

    (4AC5)h = (0100101011000101)2

    (125)8 = (001010101)2

    (100)8 = (001000000)2

    Circuitos lógicos
    (111020)3 = (101100101)2

    Figura 1.

    Para la elaboración de nuestra memoria lógica de 16 X 8 utilizamos 32 unidades de memoria 2 X 2, tal como se muestra en la figura 1. Esta memoria tiene cuatro entradas diferentes, las cuales son la del bus de datos (2 bits), el bus de dirección (1 bit), el bus de control (1 bit) y el chip select (1 bit), que se utiliza para desconectar los flip-flop de memoria que no se utilizan en una operación.

    Figura 2.

    Para poder almacenar datos en esta memoria como si fuera en realidad una sola memoria de 16 X 8 es necesario partir los 8 bits de entrada en 4 entradas de dos bits c/u, ya que las pastillas de memoria física sólo admiten dos bits. Así, los dos bits menos significativos pasan a la primera columna de pastillas físicas, los dos bits siguientes pasan a la segunda columna, los siguientes dos pasan a la tercera columna y los dos bits más significativos pasan a la cuarta columna de pastillas físicas.

    Asimismo, el bus de dirección es de cuatro bits en la memoria lógica 16 X 8, mientras que las pastillas físicas 2 X 2 solo admiten 1 bit de dirección. Para solucionar este problema partimos los cuatro bits en dos bloques, uno de tres bits (los más significativos) y uno de un bit. El bloque de tres bits lleva un decodificador, el cual dependiendo de la salida que tenga prende el banco de memoria lógica que dice la entrada. (recordemos que los tres bits representan los ocho bancos de memoria física que hay). Esta salida se utilizará posteriormente por los bancos físicos de 2 X 2 como chip select. El bit restante es el que indica a los bancos físicos en cuál de las posiciones de memoria será almacenado el dato (si es en la posición 0 o 1 del banco).

    Con el bit de control no hay problema; recordemos que éste sólo tiene que indicar si la operación es de lectura (0) o escritura (1).

    Ahora explicaremos los ejemplos con más detalle:

  • Guardar el dato 0100101011000101 en la posición 001010101: como ésta es una memoria de 8 bits, el dato quedará recortado en 1100 0101; y como la misma es de 16 posiciones, la dirección quedará recortada en 0101:

    • Primero partimos el dato en cuatro bloques: 11 00 01 01;

    • La dirección, la partimos en dos bloques de esta manera: 010 y 1;

    • Al decodificar el 010 tenemos como respuesta que el dato va almacenado en la CK 2 de la memoria lógica 16 X 8, y que a su vez va almacemada el los bits 1.0 y 1.1 de éstos cuatro bancos de memoria física 2 X 2.

    • El dato previamente partido en cuatro bloques va a entrar en su respectiva pastilla de memoria física 2 X 2.

    Figura 3.

  • Lectura de la posición 001000000, considerando que contiene el valor 101100101: al igual que el problema anterior, la dirección se recorta a 0000; el dato se recorta a 01100101:

    • Primero partimos la dirección en dos bloques: así tenemos que el banco de memoria a leer es el banco 0, y la posición física de memoria sera la posición 0;

    • Considerando que el dato almacenado es el 01 00 00 00, el chip select habilitará la compuerta de salida del flip-flop (junto con el resultado negado de las entradas de dirección y control) y deshabilitará la compuerta de entrada del mismo.

    • Así finalmente el dato podrá ser extraído mediante el bus de datos (el cual es bidireccional) y leído;

    Figura 4.

  • Diseñe a nivel de circuitos lógicos un display de 7 segmentos conforme mostrado en la figura 5:

  • Circuitos lógicos

    Figura 5.

    El diseño y confección de este display es muy fácil; como podemos ver en la gráfica detallada (figura 6), del teclado numérico se genera un impulso que el búfer de entrada reconoce como código ASCII; dado que en este código los dígitos del 0 al 9 están representados por los números del 48 al 57, o sea del 00110000 al 00111001, podemos descartar los cuatro bits más significativos, dejando como resultado los números en binario del 0 al 9 (0000 al 1001). Este número se pasa a una especie de decodificador que lo interpreta, y, conectándose las salidas con los respectivos segmentos del display (por medio de una compuerta OR), se obtiene como resultado la salida deseada.

    Circuitos lógicos

    Figura 6.

  • Diseñe a nivel de circuitos lógicos un sumador completo de 3 bits.

  • Para este problema teníamos que tomar en cuenta las reglas para la suma binaria, las cuales son:

    Suma Salida de Arrastre

    Regla 1 0 + 0 = 0

    Regla 2 0 + 1 = 1

    Regla 3 1 + 0 = 1

    Regla 4 1 + 1 = 0 y arrastre 1 = 10

    En el circuito sumador que diseñamos tenemos tres entradas y dos salidas, las entradas corresponden a las dos variables que utilizamos y la entrada de arrastre (la llamamos carry in), y las salidas corresponden a la suma de columnas y la salida de arrastre (la cual denominamos carry out).

    Para realizar la suma de las variables A y B utilizamos una función XOR (or exclusivo) la cual dará un resultado de 1 cuando las variables tengan distintos valores. Para la suma de arrastre consideramos una función AND.

    La tabla de la verdad para nuestro sumador:

    Entradas

    Salidas

    A

    B

    Carry In

    

    Carry Out

    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

    A + B + Carry In

    Suma

    Carry Out

    La figura 7 muestra el circuito lógico sumador de tres bits que diseñamos.

    Circuitos lógicos

    Figura 7.

    Para comprobar si nuestro sumador funciona, sumaremos estas dos cantidades binarias (001)2 y (111)2 así:

    1 1 1

    ( 0 0 1 )2 que equivale a ( 1 )10

    ( 1 1 1 )2 que equivale a ( 7 )10

    1 0 0 0 que equivale a ( 8 )10 o sea el resultado de

    sumar (1 )10 y ( 7 ) 10 que es lo mismo que

    sumar ( 001 )2 y ( 111 )2.

    Ahora lo plantearemos en forma gráfica en el sumador de la figura 8.

    F

    Figura 8.




    Descargar
    Enviado por:Jorge S Karica
    Idioma: castellano
    País: España

    Te va a interesar