Implementacion alu

Solo disponible en BuenasTareas
  • Páginas : 9 (2137 palabras )
  • Descarga(s) : 15
  • Publicado : 23 de mayo de 2010
Leer documento completo
Vista previa del texto
3.8 Construcción de una ALU básica
En este punto veremos como por medio de compuertas lógicas y multiplexores, se pueden implementar las operaciones aritméticas básicas de una ALU. Esencialmente en este punto implementaremos la aritmética de suma entera sin signo, eslabón funcional que como vimos en los puntos anteriores, permite implementar las operaciones de suma, resta y multiplicación envarios esquemas de codificación. En primera instancia se verá una implementación básica, para luego introducir algunas optimizaciones de diseño que mejoran su prestación, medida como el tiempo requerido para generar una salida estable a partir de las entradas y la señalización de control. Entendiéndose que este último punto es proporcional al número de compuertas lógicas por las cuales debenpropagarse las señales de entrada para generar la salida. Los eslabones a utilizar en este diseño son los que se muestran a continuación con sus respectivas tablas de verdad:

Figura c_a 1: Eslabones lógicos básicos

Con ellos construiremos una ALU que implemente suma entera sin signo, suma y resta utilizando codificación complemento dos y las operaciones lógicas AND y OR sobre palabras de largo n.Para esto comenzaremos construyendo una ALU de 1–bit, para por medio de su concatenación lograr una ALU de n-bits.

3.8.1 ALU de 1 bit En primera instancia se implementa una ALU que lleve a cabo las operaciones lógicas and y or., como se muestra en la siguiente figura.

Figura c.a.2: ALU de un bit con operaciones lógicas de (and, or) Este esquema elemental, con dos compuertas y un multiplexor,permite establecer algunas consideraciones extensibles a diseños más complejos. Se distinguen: • las líneas de datos de entrada y salida (a,b,Result), • la lógica combinacional que implementan las operaciones lógicas y aritméticas (en este caso las compuertas and, or), • la lógica de control interno (en este caso el mux) • las líneas de control que determinan cual es la operación que debeimplementar la ALU (Operation). Recordar que el encargado de dar la señalización de control en la CPU es la Unidad de Control, por tanto directa o indirectamente estas señales provendrán de esta unidad. Implementación de Suma en 1 – bit La implementación de las operaciones aritméticas a este nivel implica analizar el bloque que implementa la suma en 1 – bit. La idea es que la concatenación de estosbloques permita generalizar la suma entera sin signo en n-bit. Por lo tanto, se debe llevar en consideración la señal de carry de entrada (Carryin), acarreo generado en la etapa de suma previa, y también la señal carry de salida (Carryout), cuyo destino es el bloque que implementa la suma del siguiente bit más significativo. Del punto de vista de entrada-salida este bloque se ve como sigue:

Figurac.a.3: Entrada-salida bloque suma en 1-bit Siendo las entradas del bloque (a, b y CarryIn) las tablas de verdad que caracterizan las funciones lógicas de Sum y Carryout vienen dadas por: a 0 0 0 0 1 1 1 1 b 0 0 1 1 0 0 1 1 Carryin 0 1 0 1 0 1 0 1 Carryout 0 0 0 1 0 1 1 1 Sum 0 1 1 0 1 0 0 1

Tabla c.a.1: tabla de verdad ALU – 1 bit De los conocimientos adquiridos de lógica digital es sabido quelas funciones lógicas que caracterizan Carryout y Sum se pueden implementar con los bloques básicos (and, or y not). En particular para Carryout su caracterización en mini- términos es: Carryout= (b⋅ CarryIn) + (a⋅ CarryIn)+(a⋅ b)+(a⋅b⋅ CarryIn) El último mini- término es verdadero cuando los otros lo son, por tanto es redundante, luego la expresión en mini-términos más compacta puede escribirsecomo: Carryout= (b⋅ CarryIn) + (a⋅ CarryIn)+(a⋅ b) Y la implementación de esta expresión sería como se muestra en la siguiente figura.

Figura c.a..4: Diagrama de compuertas que implementan la función lógica Carryout. De la misma manera la forma más compacta en mini términos para la función lógica Sum viene dada por:
Sum = a ! b ! C arryIn + a ! b ! CarryIn + a ! b ! C arryIn + (a ! b !...
tracking img