Capitulo 3: Circuitos Lógicos Combinatorios

 

Unidad Aritmética y LÓgica (ALU)

Una unidad aritmética lógica puede realizar un conjunto de operaciones aritméticas básicas y un conjunto de operaciones lógicas, a través de líneas de selección. En inglés ALU significa Arithmetic Logic Unit (Unidad Aritmética Lógica). La figura 3.12.1. muestra el diagrama de bloques de una ALU.

Figura 3.12.1. Diagrama de bloques de una ALU

Las cuatro entradas de A se combinan con las de B generando una operación de salida de cuatro bits en F. La entrada de selección de modo S2 distingue entre las operaciones aritméticas y lógicas. Las entradas de selección S0 y S1 determinan la operación aritmética o lógica. Con las entradas S0 y S1 se pueden elegir cuatro operaciones aritméticas (con S2 en un estado) y cuatro logicas (con S2 en otro estado). Los acarreos de entrada y salida tienen sentido únicamente en las operaciones aritméticas. El diseño de una ALU implica el diseño de la sección aritmética, la sección lógica y la modificación de la sección aritmética para realizar las operaciones aritméticas y lógicas.

Sección Lógica

Los datos de entrada en una operación lógica son manipulados en forma separada y los bits son tratados como variables binarias. En la tabla 3.12.1. se listan cuatro operaciones lógicas OR, OR - Exclusiva, AND y NOT. En el circuito, las dos líneas de selección (S1, S0) permiten seleccionar una de las compuertas de entrada, correspondientes a la función Fi .

S1 S0 Salida Función Fi
0 0 F=Ai+Bi OR
0 1 F=AiÅBi XOR
1 0 F=Ai·Bi AND
1 1 F=A'i NOT

Tabla 3.12.1. Tabla de Función Lógica.

El circuito lógico de la figura 3.12.2 es una etapa de un circuito lógico de n bits.

Figura 3.12.2. Diagrama lógico de un circuito lógico de una ALU

Sección Aritmética

El componente básico de la sección aritmética es un sumador en paralelo (ver lección 3.10.1). Las operaciones aritméticas configuradas en el circuito aritmético se presentan en la tabla 3.12.2. En una ALU, la suma aritmética se puede implementar con un número binario en A, otro número en la entrada B y el acarreo de entrada Cin en un valor lógico 0. El resto de las funciones se enuncian en la columna descripción.

Selección de Función Salida N Función Descripción
S1 S0 Cin  N F  
0 0 0 0 A Transferir A
0 0 1 0 A+1 Incrementar A
0 1 0 B A+B Suma ó agregar B a A
0 1 1 B A+B+1 Suma con accarreo ó agregar B a A más 1
1 0 0 B’ A+B’ Agregar el complemento de 1 de B a A
1 0 1 B’ A+B’+1 Agregar el complemento de 2 de B a A
1 1 0 Todos unos A-1 Decrementar A
1 1 1 Todos unos A Trasferir A

Tabla 3.12.2. Tabla de la Función F en un Circuito Aritmético

La implementación de las funciones anteriores por medio de un circuito lógico sencillo se describe a continuación. El circuito se diseña bajo el precepto de intervenir cada entrada Bi para obtener las siguientes funciones:

S1 S0 Ni
0 0 0
0 1 Bi
1 0 Bi'
1 1 1

Tabla 3.12.3. Tabla del circuito para la entrada Bi

La figura 3.12.3. muestra el circuito.

Figura 3.12.3. Circuito para la tabla 3.12.2.

Por medio de estas funciones se pueden lograr las funciones de la tabla 3.12.2 al agregar el número Ni (tabla 3.12.3) a la entrada A a través de un sumador en paralelo para cada etapa, teniendo en cuenta el valor de la entrada Cin. El circuito combinacional aritmético se muestra en la figura 3.12.4. En la figura, la entrada A se denomina Mi en el sumador completo.

Figura 3.12.4. Circuito aritmético

Diseño de una Unidad Aritmética Lógica

En el diseño de una ALU se deben seguir los siguientes pasos:

  1. Diseñar la sección aritmética independientemente de la sección lógica.

  2. Determinar las operaciones lógicas del circuito aritmético, asumiendo que los acarreos de salida de todas las etapas son 0.

  3. Modificar el circuito aritmético para obtener las operaciones lógica requeridas.

El diseño simple de una ALU se hace utilizando el sumador completo para generar las operaciones lógicas de la unidad. Por lo tanto es necesario introducir una variable de control adicional (S2), con el fin de seleccionar entre las operaciones lógicas y aritméticas. En este diseño, un valor S2 = 1 hace que el circuito efectúe operaciones lógicas. Recordando la salida de un sumador completo:

F = (Ai Å Bi) Å Cin

A partir de esta ecuación, es posible obtener la función lógica requerida, utilizando la debida manipulación lógica. La función requerida se expone en la tabla 3.12.4.

S2 S1

S0 Ai Bi Cin Operación Sumador Completo Función requerida Fi Manipulación

Salida
1 0 0 Ai 0 0 Ai OR Aplicar una función OR Ai + Bi Ai+Bi
1 0 1 Ai Bi 0 Ai Å Bi XOR Ninguna AiÅBi
1 1 0 Ai Bi' 0 Ai·Bi AND Aplicar una función OR Ai + Bi' Ai·Bi
1 1 1 Ai 1 0 A'i NOT Ninguna A'i

Tabla 3.12.4. Tabla de obtención de las funciones lógicas con un sumador completo

Partiendo de la tabla 3.12.4., las entradas Mi, Ni y Cini en un sumador completo, son equivalentes a las siguientes expresiones:

Mi = Ai + S2·S1'·S0'·Bi + SSS0'·Bi'

Ni = S0·Bi + S1·Bi'

Cini = S2Ci

La figura 3.12.5. muestra el diagrama de la unidad aritmética lógica de dos etapas.

Figura 3.12.5. Diagrama lógico de una ALU

Las doce operaciones generadas en el ALU se resumen en la tabla 3.12.5., la función en particular se selecciona a través de S2, S1, S0 y Cin. Las operaciones aritméticas son las mismas del circuito aritmético.

Selección Salida F hDescripción
hS2 hS1 hS0 Cin F  
0 0 0 0 A Trasferir A
0 0 0 1 A+1 Incrementar A
0 0 1 0 A+B Suma
0 0 1 1 A+B+1 Suma con accarreo
0 1 0 0 A-B-1 Resta con préstamo
0 1 0 1 A-B Sustracción
0 1 1 0 A-1 Decrementar A
0 1 1 1 A Transferir A
1 0 0 X A+B OR
1 0 1 X A Å B OR-Exclusiva
1 1 0 X A·B AND
1 1 1 X A’ Complementar A

Tabla 3.12.5. Tabla de verdad de una ALU



Universidad Nacional de Colombia
Carrera 30 No 45-03 - Edificio 477
Bogotá D.C. - Colombia

Aviso Legal - Copyright
Gobierno en LíneaAgencia de Noticias UN