informe final - ii practica digitales

23
UNIVERSIDAD DEL CAUCA FACULTAD DE INGENIERÍA ELECTRÓNICA Y TELECOMUNICACIONES Programa de Ingeniería Electrónica y Telecomunicaciones Laboratorio II - Circuitos MSI, Registros y Contadores Circuitos Digitales I Ing. Fernando Aparicio Urbano Primer Periodo de 2015 Sebastián David Ossa Hernández Esteban Alberto Arteaga Benavidez Popayán, Jueves 14 de Mayo de 2015

Upload: sebastian-ossa

Post on 08-Nov-2015

16 views

Category:

Documents


2 download

DESCRIPTION

Informe II Practica

TRANSCRIPT

  • UNIVERSIDAD DEL CAUCA

    FACULTAD DE INGENIERA ELECTRNICA Y TELECOMUNICACIONES

    Programa de Ingeniera Electrnica y Telecomunicaciones

    Laboratorio II - Circuitos MSI, Registros y Contadores

    Circuitos Digitales I

    Ing. Fernando Aparicio Urbano

    Primer Periodo de 2015

    Sebastin David Ossa Hernndez

    Esteban Alberto Arteaga Benavidez

    Popayn, Jueves 14 de Mayo de 2015

  • 1. TABLA DE CONTENIDO

    1 TABLA DE CONTENIDO ......................................................................................................... 1 2. PROCEDIMIENTO DE DISEO .............................................. Error! Marcador no definido.

    2.1 Diseo de una ALU de 8 bits .......................................... Error! Marcador no definido. 2.2 Multiplicador Combinacional de 8 bits....................................................................... 14

    3. CONCLUSIONES ................................................................................................................. 23 4. REFERENCIAS .................................................................................................................... 23

    2. Procedimiento de diseo

    Se disearon dos circuitos diferentes (ALU de 8 bits y Multiplicador Combinacional de 8

    bits), aplicando la teora vista en como los circuitos aritmticos (Half-Adder, Full-Adder,

    etc.), circuitos MSI (Multiplexores, Decodificadores, etc.), registros (Biestables sncronos) y

    utilizando como herramienta principal el software Quartus II de Altera. Los procedimientos

    se describen posteriormente.

    2.1. ALU (Unidad Aritmtica-Lgica) de 8 bits

    Una ALU es un circuito digital que puede realizar operaciones lgicas (NOT, AND, OR, etc.) y

    operaciones aritmticas (SUMA, RESTA, MULTIPLICACIN, etc.), por lo tanto requiere de lneas de

    seleccin para escoger entre cada una de ellas. La lnea de seleccin ms significativa escoge entre

    la unidad lgica o la unidad aritmtica, y en este orden de ideas las otras lneas escogen la respectiva

    operacin.

    Para disear una ALU es preciso disear cada unidad por aparte, despus se completa el circuito

    utilizando un multiplexor para obtener la respuesta deseada. Se tienen los siguientes

    requerimientos:

  • 2.1.1 Unidad Lgica

    Se tienen dos entradas y cuatro operaciones lgicas: Complemento de A, A and B,

    Transferencia de A y A or B. Para implementar estas funciones simplemente se hace

    uso de las compuertas bsicas, con entradas y salidas vectoriales de 8 bits

    Para hacer la seleccin de la operacin se implementa un MUX de 4 a 1, que

    representa un switch digital, cada entrada y salida de 8 bits. Para obtener este

    MUX se dise un MUX de 2 a 1 con lnea habilitadora. Para el diseo del MUX se

    tiene la siguiente tabla de verdad:

  • En S A B Y

    0 x x x 0

    1 0 0 0 0

    1 0 0 1 0

    1 0 1 0 1

    1 0 1 1 1

    1 1 0 0 0

    1 1 0 1 1

    1 1 1 0 0

    1 1 1 1 1

    Tabla de verdad del Multiplexor de 2 a 1

    El mapa de Karnaugh queda de la siguiente manera:

    = ( + )

  • Entonces el circuito queda de la siguiente forma:

    Este procedimiento se aplica para disear MUX de 2 a 1 para entradas y salida de n-bits.

    Para obtener el MUX de 4 a 1 utilizamos dos MUX de 2 a 1, cortocircuitamos las entradas de

    seleccin para obtener una nueva y la otra entrada se conecta a las entradas de lnea

    habilitadora, una de ellas va negada. Las salidas se conectan a una compuerta OR y de ah

    obtenemos la salida total. El circuito queda as:

    Ahora podemos conectar nuestro circuito lgico al MUX para controlar la salida. As finaliza

    el proceso de diseo de la unidad lgica, a continuacin se presenta el circuito completo y

    la simulacin en Quartus II.

  • 2.1.2. Unidad Aritmtica

    Para el diseo de la unidad aritmtica se deben disear dos circuitos esenciales, un restador

    completo con el que se har el decremento de A y la resta, y un sumador completo con que

    se har la suma y el incremento de A.

    Un restador completo es un circuito que hace la resta de dos entradas de un bit, que tiene

    un prstamo de entrada y un prstamo de salida. La tabla para el restador completo es:

    X Y Bin D Bout

    0 0 0 0 0

    0 0 1 1 1

    0 1 0 1 1

    0 1 1 0 1

    1 0 0 1 0

    1 0 1 0 0

    1 1 0 0 0

    1 1 1 1 1

  • Entonces los mapas de Karnaugh quedan de la siguiente forma:

    = ( + ) + ( + )

    =

    = ( + ) +

    De esta forma el circuito para el restador completo queda:

    Con este circuito podemos hacer dos operaciones de la unidad aritmtica, el decremento

    de A y la resta entre A y B.

    Para el decremento de A de 8 bits, cargamos cada componente de A en cada restador

    completo, en el bloque menos significativo B ser un 1 (Vcc) y en el resto de bloques las

    entradas B sern 0 (GND), de esta forma estamos armando un 1, que se le restara al vector

  • A. Algo muy importante es que el circuito debe hacer la propagacin de prstamo, esto

    significa que cada Bout se conecta al Bin del siguiente bloque. En el bloque menos

    significativo le agregamos la entrada con posibilidad de prstamo inicial de 0 o 1, asi que en

    total nos queda una entrada de prstamo inicial, una entrada de 8 bits y una salida de

    prstamo de salida y el decremento de A de 8 bits. El circuito queda de la siguiente manera:

    Para la resta entre A y B es prcticamente el mismo circuito, la nica diferencia es que se

    carga la entrada B de 8 bits componente a componente en cada bloque. El circuito es el

    siguiente:

    En estos dos ltimos circuitos, un 1 en el prstamo de salida implica que la resta es negativa

    y el software mostrara el complemento a 2 de la salida, por lo tanto hay que hallar una

    forma de solventar este problema cuando se d un nmero negativo. Se sabe que el

    complemento a 2 de un nmero es su complemento incrementado en 1, en este orden de

    ideas, si se decrementa el numero en 1 y lo complementamos se obtiene el valor del nmero

    negativo, as que utilizamos un MUX de 2 a 1 donde la lnea de seleccin es el Bout, si es 0

    mostrara el numero original y si es 1 lo convierte haciendo los pasos que se acaban de

    describir. El circuito es el siguiente:

  • Un sumador completo nos permite hacer la suma de dos entradas de un bit, con un acarreo

    de entrada y un acarreo de salida. La tabla de verdad para este circuito es:

    A B Cin S Cout

    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

    Los mapas de Karnaugh quedan de la siguiente forma:

    = ( + ) + ( + )

    =

  • = ( + ) +

    El circuito para el sumador completo queda de la siguiente manera:

    Ahora con el sumador completo podemos hacer el incremento de A y la suma de A y B.

    Para el incremento de A se siguen exactamente los mismos pasos que se siguieron para el

    decremento de A, solo que esta vez con los bloques del sumador completo. El circuito queda

    de la siguiente manera:

    Para la suma de A y B se siguen exactamente los mismos pasos que se hicieron para la resta

    de A y B, pero una vez ms con los bloques del sumador completo. El circuito queda as:

  • Para condensar todo esto en la unidad aritmtica necesitamos de dos multiplexores de 4 a

    1, uno de 8 bits para las salidas de cada operacin y otro de 1 bit para la salida del Cout.

    Entonces el resto de la unidad lgica queda de la siguiente manera (obviando los anteriores

    circuitos):

    La simulacin en Quartus II se muestra a continuacin:

  • Se dise un MUX de 8 a 1 para mostrar a la salida del tercer display el signo en el caso del

    decremento y de la resta, y el nmero 1 en el caso de la suma y el incremento. La entrada

    de seleccin ms significativa es el Cout.

    MUX de 8 a 1:

    Circuito selector de SIGNO o 1 (Directo a 7-seg):

  • De esta forma terminamos el diseo de cada unidad de la ALU, ahora simplemente resta

    conectarlas a un MUX de 2 a 1 para seleccionar la unidad requerida. El circuito total de la

    ALU de 8 bits queda de la siguiente forma:

    Ahora se muestra la simulacin completa:

    Para la implementacin en la tarjeta Altera DE0 se conectaron registros de 8 bits a la

    entrada, ya que la tarjeta solo cuenta con 10 switchs y necesitamos manipular 16. Estos se

    disearon con flip-flop tipo D, el CLKA guarda en el primer registro y el CLKB guarda en el

    segundo. En la salida se le conectaron los decodificadores a 7-segmentos que se disearon

    en la anterior prctica de laboratorio. Para las entradas OPCODE0 y Cin se reutilizaron las

    entradas D[7] y D[0], ya que no podemos asignar el mismo pin a ms de una entrada y

    sabemos que despus de que el registro guarde los nmeros esto no afectara en nada.

  • El registro quedo de la siguiente manera:

    De esta forma el circuito a implementar es:

    2.2 Multiplicador Combinacional de 8 bits

    En este punto el requerimiento ms importante es la consulta en un libro o un artculo el diseo que

    se va a implementar. El diseo que se escogi es una optimizacin del mtodo de reduccin que

    postul Dadda para la multiplicacin combinacional, llamado rbol de Dadda. Este circuito est

    compuesto por Sumadores Completos, Semi-Sumadores, Sumadores con propagacin de acarreo y

    MBEC (Incremento del binario por medio de multiplexacin).

  • El semi-sumador es un circuito similar al sumador completo, con la excepcin de que este no tiene

    acarreo de entrada (se asume como un 0), pero contiene las dos salidas S y Cout. La tabla de verdad

    para el semi-sumador es la siguiente:

    A B S Cout

    0 0 0 0

    0 1 1 0

    1 0 1 0

    1 1 0 1

    De los minterminos se deduce:

    = +

    =

    =

    Entonces el circuito para el Semi-Sumador queda:

    El BEC es un circuito que le suma 1 al valor de la entrada tal como lo hace el incremento que se

    dise en la ALU, pero en este caso tiene un costo muchsimo menor y no tiene un acarreo de

    entrada o de salida, en este caso es de 5 bits. El circuito es el siguiente:

  • Para construir el MBEC simplemente se le agrega un MUX de 2 a 1, si la lnea de seleccin vale 1

    incrementa el valor de la entrada, si la lnea de seleccin vale 0 transfiere el valor de la entrada. El

    circuito es as:

  • Para empezar la reduccin se necesitan los productos parciales de ambas entradas, para esto

    utilizamos un generador de productos parciales, que simplemente es el vector de entrada A

    multiplicado por cada componente del vector de entrada B, en este orden de ideas para un

    multiplicador de 8x8 bits obtenemos 63 productos parciales, contando desde cero. El generador de

    productos parciales queda de la siguiente manera:

    Ahora empieza el algoritmo de reduccin reorganizando todos los productos parciales que

    inicialmente estn corridos en cascada de la siguiente forma:

  • Ahora se reduce la parte 0 y la parte 1 independientemente. El mtodo es tomar grupos de dos y

    tres bits y sumarlos (Semi-Sumador y Sumador Completo), hasta que se reduzca a dos filas

    nicamente, con las que se obtendrn los productos parciales finales.

    Para la parte 0 la reduccin es la siguiente (Derecha a Izquierda):

  • De la misma manera, para la parte 0 la reduccin es la siguiente (Izquierda a Derecha):

    De estas reducciones obtenemos 18 bits a la salida, de los cuales P[0] a P[7] son los productos finales

    y los bits menos significativos de la multiplicacin final.

  • A continuacin el diagrama de la implementacin de reduccin a nivel de bloques para la parte 0 y

    la parte 1:

    Parte 0:

    Parte 1:

    Para obtener los productos que faltan utilizamos el Sumador con propagacin de acarreo y el MBEC.

  • La combinacin de productos P0[8]P0[9]P0[10] debemos sumarla con la combinacin

    P1[8]P1[9]P1[10], utilizamos el sumador con propagacin de acarreo que simplemente el sumador

    con los bloques de sumador completo, en este caso de 3 bits, as obtendremos los productos finales

    p[8], P[9] y P[10], aparte del acarreo de salida que ser la lnea seleccionadora del MBEC.

    Los productos parciales finales que sobran P1[11], P1[12], P1[13], P1[14] y P1[15] sern la entrada

    del MBEC, esto significa segn la definicin de su funcionamiento que si el acarreo de salida del

    sumador de propagacin es 0, saldr esta combinacin de nmeros como los productos finales

    definitivos que faltaban. Pero si el acarreo de salida del sumador de propagacin es 1, saldr la

    combinacin incrementada en uno para completar los productos finales del multiplicador. De esta

    forma las salidas finales se dan as:

    A continuacin la simulacin que demuestra el correcto funcionamiento del multiplicador:

    Binario:

    Hexadecimal:

    Para la implementacin se conectaron los registros a la entrada y decodificadores diseados en la

    anterior prctica de laboratorio a la salida.

  • Esta implementacin es muy interesante ya que originalmente el rbol de Dadda tiene un menor

    costo en cuanto a compuertas y es ms veloz que el conocido rbol de Wallace, pero en este caso

    esta optimizada para que sea an ms veloz, pero conservando el algoritmo de reduccin original.

    3. Conclusiones:

    Se reforz la teora vista en clase como los circuitos MSI, circuitos aritmticos y

    biestables sncronos.

    No son necesarias conexiones externas a la tarjeta DE0 para cargar ms de 10

    entradas, esto gracias a los registros.

    Hay muchas formas diferentes de implementar un circuito o sistema digital.

    4. Referencias:

    A Design Technique for Faster Dadda Multiplier, artculo escrito por B. Ramkumar, V. Sreedeep y Harish M Kittur. Articulo disponible en el siguiente link: http://arxiv.org/ftp/arxiv/papers/1110/1110.3281.pdf