02-alu

Upload: jairo-moreno

Post on 13-Oct-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    Unidad Lgica Aritmtica - ALU Ing. Elas Mendoza H.

    (Recopilacin)

    ResumenUna unidad lgica aritmtica (ALU) es una funcin

    multioperacin digital de lgica combinacional. Esta puede realizar un conjunto de operaciones aritmticas bsicas y un conjunto de operaciones lgicas. El ALU tiene un nmero de lneas de seleccin para seleccionar una operacin particular de la unidad.

    I. INTRODUCCIN OS diseos de la mayor parte de los sistemas de cmputo combinan las operaciones aritmticas y lgicas. El smbolo lgico estndar de una ALU aparece en la Figura

    1. La salida de la ALU es un nmero binario de n bits, , que es el resultado obtenido al realizar

    cierta operacin aritmtica o lgica sobre dos nmeros binarios de n bits, u operandos,

    ( 1 0 2nF f f= " )( )1 0 2nA a a= " y

    ( 1 0 2n )B b b= " . La operacin por realizar queda determinada mediante un cdigo de seleccin de k bits

    , donde el nmero de posibles operaciones de la ALU es 2

    ( 1 0kS S S= " )k.

    Diseemos un mdulo ALU que realice ocho funciones: las cuatro operaciones aritmticas estndar suma ( )A B+ , resta

    , incremento y decremento ( 1A ) )( 1A+ ( )1A , as como las cuatro operaciones lgicas AND ( )A B , OR ( )A B , XOR ( )A B y NOT ( )A . Puesto que tenemos un total de ocho operaciones, el cdigo de seleccin debe tener 3 bits; es decir, . Definiremos los cdigos de seleccin como en la tabla 1 para las ocho funciones de la ALU.

    2 1 0S S S S=

    Queremos desarrollar el diseo de manera jerrquica, descendente. Esto significa que debemos descomponer el diseo de nivel superior de la ALU inicialmente en varios mdulos. Estos mdulos se descomponen a su vez, hasta que todo el diseo se puede representar mediante una jerarqua interconectada de mdulos funcionales pequeos y bien definidos. A continuacin, diseamos, implantamos y verificamos en forma individual los circuitos lgicos para estos mdulos. Por ltimo, los mdulos se conectan entre s

    para formar el circuito ALU completo.

    Fig. 1 Smbolo lgico de una ALU

    Tabla 1 Tabla funcional de la ALU

    Cdigo de seleccin Funcin

    2S 1S 0S ALU Descripcin 0 0 0 F A B= + Suma 0 0 1 F A B= Resta 0 1 0 1F A= + Incremento 0 1 1 1F A= Decremento 1 0 0 F A B= AND 1 0 1 F A B= OR 1 1 0 F A= NOT 1 1 1 F A B= XOR

    El intervalo deseado de nmeros que debe manejar la ALU

    para una aplicacin dada determina el nmero de bits, n, de los nmeros binarios A, B y F. Para facilitar el desarrollo del diseo de un circuito ALU que se pueda utilizar para valores arbitrarios de n, comenzaremos nuestro diseo descendente descomponiendo nuestra ALU en secciones de 1 bit, donde la seccin i realiza las funciones deseadas sobre los bits y

    de los operandos y produce el bit de resultado ia ib

    if , como se muestra en la Figura 2. Para las funciones aritmticas, observe que cada seccin tiene una entrada de acarreo 1iC y una

    L

  • 2

    salida de acarreo . Una vez que hayamos diseado el circuito para la seccin bsica de un bit, podremos crear una ALU de n bits (es decir, una ALU para la que A, B y F sean nmeros de n bits) conectando en cascada n secciones de 1 bit, como en la figura 3, con un circuito especial para generar el acarreo inicial en la entrada .

    iC

    1C

    Fig. 2 Seccin de ALU de un bit

    Fig. 3 ALU de n bits como cascada de n secciones de 1 bit

    Ahora, consideremos el diseo de una seccin bsica de 1

    bit. Como las cuatro operaciones aritmticas estn relacionadas, al igual que las cuatro operaciones lgicas, podemos dividir la seccin de ALU en tres mdulos: una unidad aritmtica (AU), una unidad lgica (LU) y un multiplexor de salida. La Figura 4 ilustra esto con un diagrama de bloques. Los cdigos de seleccin de la tabla 1 se definen de modo que el bit determina si la salida debe ser un resultado aritmtico o lgico. Por tanto, el multiplexor de salida selecciona la salida AU

    2S if

    ( )iAUi

    ff = para 02 =S , y la salida LU ( )

    iLUiff = para . 12 =S

    Ahora desarrollaremos el diseo de cada uno de los tres mdulos de la Figura 4.

    Fig. 4 ALU de 1 bit dividida en unidades aritmtica y lgica separadas

    II. MULTIPLEXOR El multiplexor de salida es un mdulo multiplexor 2 a 1

    estndar. Como es un diseo sencillo y directo, no hay que descomponerlo ms. La Figura 5 muestra un circuito con compuerta NAND de dos niveles para el multiplexor 2 a 1.

    Fig. 5 Multiplexor 2 a 1

    III. UNIDAD LGICA Ahora analizaremos el diseo de la unidad lgica. Las

    funciones lgicas de un sistema de cmputo digital son operaciones paralelas que se realizan un bit a la vez. Esto significa que el bit i del resultado, , es una funcin

    lgica de los bits de entrada y , como lo resume la tabla 2. Un mtodo para implantar el mdulo LU consiste en utilizar una nica compuerta lgica primitiva para realizar cada una de las cuatro funciones lgicas, de modo que la salida de la compuerta deseada sea elegida mediante un multiplexor 4 a 1, segn el cdigo de seleccin .

    iLUf

    ia ib

    01SS

  • 3

    Tabla 2 Funciones de la unidad lgica Funcin

    1S 0S iLUf AND BAF = 0 0 iiba OR BAF = 0 1 ii ba +

    NOT AF = 1 0 ia XOR BAF = 1 1 ii ba Este circuito aparece en la Figura 6, donde las entradas x y

    y de la LU se conectan a las entradas y de la ALU,

    respectivamente, y la salida de la LU se conecta a .

    Podemos realizar el mdulo multiplexor 4 a 1 mediante el circuito de la Figura 7

    ia ibf

    iLUf

    Fig. 6 Realizacin sencilla con multiplexor

    Fig. 7 Cdigo de seleccin

    Si es importante la minimizacin del nmero de compuertas

    del mdulo LU, podemos graficar la informacin de la tabla 2 en un mapa K, como en las Figuras 8 y 9, obteniendo la siguiente ecuacin lgica reducida:

    xSSyxSyxSxySf 01001 +++=

    La Figura 10 muestra una implantacin de la ecuacin mediante compuertas NAND de dos niveles.

    0111110111

    __11011000110110100101

    _11001100011111010110

    __11010000101110000100

    __0100000000

    01

    yXORx

    xNOT

    yORx

    yANDx

    FyxSS LU

    Fig. 8 Tabla de la Verdad del LU

    xy\S1S0 00 01 11 10

    00 0 0 0 1 01 0 1 1 1 11 1 1 0 0 10 0 1 1 0

    Fig. 9 Mapa K de la LU

    Fig. 10 Circuito LU minimizado

    .

  • 4

    IV. UNIDAD ARITMTICA Podemos disear la unidad aritmtica de nuestra ALU con

    el mtodo ya descrito. La suma y la resta se realizan con un nico circuito sumador completo que usa aritmtica de complemento a dos. Para este diseo, utilizaremos el circuito sumador completo (FA) de las Figuras 11 y 12. Cuando las secciones de la ALU se conecten en cascada, las etapas FA se conectarn en la configuracin del sumador con acarreo en

    Fig. 11 Circuito FA con compuertas NAND

    Fig. 12 Realizacin de la salida Si de FA con compuertas

    XOR cascada de la Figura 13. Ahora, recordemos que un

    sumador completo de n bits realiza la expresin

    1_CYXF ++=

    Fig. 13 Sumador Seudo paralelo (acarreo en cascada) Donde F, X y Y son nmeros binarios de n bits y es la

    entrada de acarreo. Podemos implantar con facilidad las cuatro

    operaciones aritmticas deseadas controlando los valores de Y y en la ecuacin. Por tanto, disearemos un circuito que

    producir la salida para cada mdulo FA, segn los bits

    y del cdigo de seleccin, y otro circuito para obtener

    . La Figura 14 muestra la configuracin completa de la

    seccin AU de 1 bit. Observe que la entrada del FA

    simplemente se conecta a la entrada de la ALU.

    1C

    1C

    iy

    1S 0S

    1C

    ix

    ia

    Fig. 14 Diagrama de bloque de la seccin AU

    Consideremos cada una de las cuatro operaciones aritmticas por separado. Suma: BAF += . En este caso, para el mdulo FA, slo hacemos AX = , BY = y . Por tanto, el mdulo Y-GEN debe conectar la entrada a la entrada del FA.

    01 =Cib iy

    Resta: BAF = . Si recordamos la definicin del complemento a dos,

    [ ]( )21 1 0 1n

    F A BA B

    A b b b

    = = += + +"

    Por tanto, implantamos la resta haciendo i iy b= y 11 =C . En consecuencia, el mdulo Y-GEN debe conectar el complemento de a la entrada del FA. ib iy Incremento: 1+= AF . En este caso, hacemos 0iy = y

    11 =C en la ecuacin. Por tanto, el mdulo Y-GEN debe proporcionar 0 a la entrada de la FA. iy

  • 5

    Decremento: 1= AF . De nuevo, utilizamos la definicin de complemento a dos como sigue:

    ( )[ ]( )( )

    2

    11

    (00 01)

    11 11

    11 11 0

    F AA

    A

    A

    A

    = = + = + = += + +

    Por tanto, realizamos la funcin de decremento haciendo las entradas del FA y . 1=iy 01 =C

    La tabla 3 resume el anlisis anterior, enumerando los valores necesarios para las entradas y del FA para cada una de las cuatro operaciones aritmticas. Con esta tabla, podemos deducir circuitos lgicos para el mdulo Y-GEN de la Figura 1-14 y el mdulo C-GEN de la Figura 1-3.

    iy 1C

    Tabla 3 Valores de y para las funciones aritmticas

    iy 1C

    Funcin 1S 0S iy 1C

    Suma 0 0 ib 0

    Resta 0 1 ib 1 Incremento 1 0 0 1 Decremento 1 1 1 0

    Para el circuito Y-GEN, indicamos sobre un mapa K,

    como en las Figuras 15 y 16. Obtenemos la ecuacin lgica para la salida como sigue:

    iy

    iy

    ( ) ( )( )

    1 0 0 1 0

    0 1 0 1

    0 1

    i i i

    i i

    i

    y S S b S b S S

    S S b S S b

    S S b

    = + += + +=

    1S 0S ib iy 0 0 0 0 0 0 1 1

    Suma

    0 1 0 1 0 1 1 0

    Resta

    1 0 0 0 1 0 1 0

    Incremento

    1 1 0 1 1 1 1 1

    Decremento

    Fig. 15 Tabla de Verdad del diseo del mdulo Y-GEN

    ib \ 1 0S S 00 01 11 10 0 0 1 1 0 1 1 0 1 0

    Fig. 16 Mapa K del diseo del mdulo Y-GEN La Figura 17 muestra un circuito lgico que realiza la

    ecuacin anterior.

    Fig. 17 Circuito lgico del diseo del mdulo Y-GEN

    Para el circuito C-GEN, indicamos sobre un mapa K,

    como en las Figuras 18 y 19 y obtenemos la siguiente ecuacin lgica:

    1C

    1 1 0 1

    1 0

    C S S S SS S

    = +=

    0

    1S 0S 1C 0 0 0 Suma 0 1 1 Resta 1 0 1 Incremento 1 1 0 Decremento

    Fig. 18 Tabla de Verdad del diseo de mdulo C-GEN

    0S \ 1S 0 1 0 0 1 1 1 0

    Fig. 19 Mapa K del diseo del mdulo C-GEN Realizamos la ecuacin anterior mediante una nica

    compuerta XOR, como en la Figura 20.

    Fig. 20 Circuito lgico del diseo del mdulo C-GEN

    Ahora, formamos la seccin ALU de 1 bit interconectando

    los mdulos individuales antes desarrollados (LU, FA, Y-GEN y MUX). El circuito completo para la seccin ALU de 1 bit aparece en la Figura 21.

  • 6

    Fig. 21 Seccin de ALU completa de 1 bit

    El paso final en el proceso de diseo consiste en crear

    nuestra ALU de n bits conectando en cascada n secciones ALU de 1 bit y conectando el mdulo C-GEN como se muestra en la Figura 3. Aunque los dos circuitos pueden combinarse de esta manera, sta no es la mejor forma de disear un ALU.

    Un ALU ms eficiente puede obtenerse si se investiga la posibilidad de generar operaciones lgicas de un circuito aritmtico ya disponible. Esto puede hacerse inhibiendo todos los arrastres de entrada de los circuitos del sumador completo en paralelo. Considrese la funcin de Boole que genera la suma de salida de un circuito sumador completo:

    i i iF X Y C= i

    i

    El arrastre de entrada en cada etapa puede hacerse igual

    a 0 cuando la variable de seleccin sea igual a 1. El resultado ser:

    iC

    2S

    i iF X Y=

    Esta expresin es vlida debido a la propiedad de la operacin OR-exclusiva . As, con el arrastre de salida de cada etapa igual a 0, los circuitos del sumador completo generan la operacin de OR-exclusiva.

    0x =

    Considrese el circuito aritmtico de la Figura 14. El valor de puede seleccionarse por medio de dos variables de

    seleccin que sean iguales a 0 , , iy

    ib ib o 1. El valor de ix es siempre igual a la entrada a . La tabla 4 muestra las cuatro operaciones lgicas obtenidas cuando la tercera variable de seleccin

    i

    2 1S = . Esta variable de seleccin obliga a que C sea igual a 0 mientras que y escogen un valor

    particular de .

    i

    1S 0S

    iy

    x

    Tabla 4 Operaciones lgicas en una etapa de un circuito aritmtico

    Las cuatro operaciones lgicas obtenidas por esta

    configuracin son la transferencia, la OR-exclusiva, la equivalencia y el complemento. La segunda entrada es la operacin de equivalencia porque:

    i i i i i i i ia b a b a b a b = + = : La ltima entrada en la tabla es el NOT u operacin de

    complemento ya que:

    1i ia a = La tabla tiene una columna ms la cual contiene la lista de

    las cuatro operaciones lgicas que se van a incluir en el ALU. Dos de estas operaciones, la OR-exclusiva y el NOT estn disponibles. La pregunta que debe ser contestada es de si es posible modificar el circuito aritmtico de manera que genere las funciones lgicas OR y AND en vez de las funciones de transferencia y equivalencia. Este problema se investiga a continuacin.

    V. DISEO DE UNA UNIDAD LGICA ARITMTICA En esta seccin se disea un ALU con ocho operaciones

    aritmticas y cuatro operaciones lgicas. Las tres variables de seleccin y seleccionan ocho operaciones diferentes

    y el arrastre de entrada se usa para seleccionar cuatro

    operaciones aritmticas adicionales. Con

    2 1S S 0S

    inC

    2 0S = , las variables y conjuntamente con C , seleccionan las ocho operaciones aritmticas listadas en la Tabla 5. Con

    1S 0S in

  • 7

    2 1S = , las variables y seleccionan las cuatro operaciones lgicas OR, OR-exclusiva, AND y NOT.

    1S 0S

    Tabla 5 Tabla de funcin para el circuito aritmtico de la figura 14

    El diseo de un ALU es un problema de lgica

    combinacional. Debido a que la unidad tiene un patrn regular, sta puede fraccionarse en etapas idnticas conectadas en cascada por medio de los arrastres. Se puede disear una etapa del ALU y luego duplicarla para conseguir el nmero de etapas requeridas. Hay seis entradas a cada etapa: , iA iB ,

    , , y . Hay dos salidas de cada etapa: la salida

    y el arrastre de salida . Se puede formular una tabla de verdad con 64 entradas y simplificar las dos funciones de salida. Aqu se escoge el uso de un procedimiento alterno que usa la disponibilidad de un sumador paralelo.

    1C 2S 1S 0S

    iF 1iC +

    Los pasos de que se compone el diseo de un ALU son los siguientes:

    1. Disear la seccin aritmtica independientemente de la seccin lgica.

    2. Determinar las operaciones lgicas obtenidas del circuito aritmtico en el paso 1, asumiendo que los arrastres de salida de todas las etapas son 0.

    3. Modificar el circuito aritmtico para obtener las operaciones lgicas requeridas.

    El tercer paso en el diseo no es un procedimiento directo y

    requiere cierta cantidad de genialidad por parte del diseador. No hay garanta de que se pueda encontrar una solucin o que la solucin use el mismo nmero de compuertas. El ejemplo presentado aqu demuestra el tipo de pensamiento lgico que se requiere algunas veces en el diseo de sistemas digitales.

    Se debe tener en cuenta que se dispone de varios ALU en CI encapsulados. En un caso prctico, lo que se debe hacer es buscar un ALU adecuado o unidad procesadora entre los circuitos integrados que se obtienen comercialmente. Pero, la lgica interna del CI seleccionado debe haber sido diseado por una persona familiarizada con las tcnicas de diseo lgico.

    La solucin para el primer paso del diseo se muestra en las Figura 11, 14 y 17. La solucin al segundo paso de diseo es presentado en la Tabla 4. La solucin para el tercer paso se deduce a continuacin.

    De la tabla 4 se observa que si , el arrastre de

    entrada en cada etapa debe ser 0. Con 2 1S =

    iC 1 0 10S S = cada etapa as genera la funcin . Para cambiar la salida a una operacin OR, se debe cambiar la entrada a cada circuito sumador completo de a . Esto puede lograrse

    aplicando la funcin OR a

    iF A= iiiA iA B+

    iB y cuando iA 2 1 0 110S S S = . Las otras variables de seleccin que dan una salida

    indeseable ocurren cuando . La unidad de esta

    manera genera una salida pero se requiere

    generar la operacin AND . Se puede investigar la

    posibilidad de aplicar la funcin OR a cada entrada con

    alguna funcin de Boole . La funcin que se obtiene se usa

    para

    2 1 0 101S S S =i iF A B= : i

    ii iF AB=iA

    iK

    iX cuando 2 1 0 101S S S = :

    ( )i i i i i i i i i i i i iF X Y A K B AB K B A K B= = + = + +

    Una cuidadosa inspeccin del resultado revela que si la

    variable iK Bi= se obtiene una salida:

    i i i i i i i i i iF AB B B A B B AB= + + =

    Dos trminos son iguales a 0 porque 0i iB B = . El resultado obtenido es la operacin AND que se requiere. La

    conclusin es que, si se aplica con iA iB a una funcin OR cuando 2 1 0 101S S S = , la salida genera la operacin AND.

    El ALU final se muestra en la Figura 22. El diagrama puede extenderse fcilmente a ms etapas. Las entradas a cada circuito sumador completo se especifican por medio de las funciones de Boole:

    2 1 0 2 1 0

    1 0 0 1 0

    2

    i i i

    i i i

    i i

    iX A S S S B S S S B

    Y S S B S B S S

    Z S C

    = + += + +=

    Cuando 2 0S = , las tres funciones se reducen a:

    1 0 0 1 0

    i i

    i i i

    i i

    X A

    Y S S B S B S SZ C

    == + +=

    Las cuales son las funciones para el circuito aritmtico de la Figura 14. Las operaciones lgicas se generan cuando

  • 8

    2 1S = . Para 111, las funciones se reducen a:

    2 1 0 100S S S =

    1 0 0 1 0

    0

    i i

    i i i

    i

    X A

    Y S S B S B S SZ

    == + +=

    La salida es igual a iF i iX B y produce las operaciones

    OR-exclusiva y de complemento como se especifica en la tabla 1-4. Cada con iA iB se aplican a una funcin OR cuando , para producir la operacin OR como

    se ha discutido antes. Cada con

    2 1 0 110S S S =iA iB se aplican a una

    funcin OR cuando para producir una operacin AND como se ha expuesto previamente.

    2 1 0 101S S S =Las 12 operaciones generadas en el ALU se sumarizan en la

    tabla 6. La funcin particular se selecciona por medio de ,

    , y . Las operaciones aritmticas son idnticas a

    aquellas listadas para el circuito aritmtico. El valor de para las cuatro funciones lgicas no tienen efecto en la operacin de la unidad y aquellas entradas se marcan con

    2S

    1S 0S inC

    inC

    X de no importa.

    Tabla 6 Tabla de funcin para el ALU de la figura 22

    Fig. 22 Diagrama lgico de una unidad lgica aritmtica (ALU)

    REFERENCIAS [1] M. M. Mano, Lgica Digital y Diseo de Computadores, 1ra ed., J. A.

    Valbuena, Ed. Prentice Hall Hispanoamericana, 1982, pp. 382-396.

    INTRODUCCINMultiplexorUnidad lgicaUnidad aritmticaDiseo de una Unidad Lgica Aritmtica