Anda di halaman 1dari 8

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

FACULTAD DE INGENIERA

DISEO DIGITAL

PROYECTO FINAL

CALCULADORA BINARIA PRESENTAN GARCA JIMNEZ REN AHEDO VELA MIGUEL NGEL

GRUPO: 04

PROFESOR: M. I. JOS MIGUEL MARTNEZ ALCARZ FECHA DE ENTREGA: 03-DICIEMBRE-2012

CALCULADORA BINARIA Diseo de un sumador / restador completo de 4 bits 1- Circuito Sumador Para el diseo de este dispositivo, debemos recordar el algoritmo de la suma:

A3 B3 S4 S3

A2 B2 S2

A1 B1 S1

A0 B0 S0

La tabla de verdad de esta funcin tiene 28 = 256 combinaciones posibles, por lo que antes de hacerla es conveniente analizar la funcin en busca de algn patrn. Observemos la situacin del primer bit del resultado S0. Tenemos que:

0 S0 1

Si A=B=0 o si A=B=1 Si A B

A B

Asimismo, recordemos que una vez que al excederse la magnitud de la base se debe llevar un acarreo a la siguiente suma. Este acarreo est definido como:

1 Ci 0

Si A=B=1 C.O.C.

AB

Para el siguiente paso del algoritmo tenemos la suma de dos dgitos binarios y un carry:

Ci 0 0 0 0 1 1 1 1

A 0 0 1 1 0 0 1 1

B 0 1 0 1 0 1 0 1

F 0 1 1 0 1 0 0 1

C(i+1) 0 0 0 1 0 1 1 1

F A B C0 C1 C0 (A B) AB

Podemos observar que las siguientes sumas sucesivas tienen la misma funcin que esta. A su vez, Si hacemos Ci = 0 la funcin se vuelve idntica a la primera tanto para S como para Ci. La implementacin de la funcin arriba planteada se conoce como Full Adder o sumador completo y es como sigue:

Como hemos visto, el sucesivo desarrollo del algoritmo de la suma implica una sucesin de sumadores completos, esquematizada de la siguiente forma:

2- Circuito Restador El diseo del circuito restador es bastante sencillo tomando como base el llamado Complemento a la Base disminuida. Para una resta binaria, simplemente tomamos el sustraendo y cambiamos los ceros por unos y viceversa y lo sumamos al minuendo. De este modo podemos usar el mismo circuito del sumador, sin embargo ser necesario introducir algunos elementos extra. Debemos de poder elegir entre las operaciones de suma y resta, y a partir de esto, nuestro circuito debe decidir si sumar los nmeros tal como entran o bien Complementar el segundo antes de operarlos. Creamos una variable M, que ser la que decida la operacin: 0 para la suma y 1 para la resta. Para implementar el circuito de decisin, observemos la tabla de verdad de la funcin OR exclusivo:

A 0 0 1 1

B 0 1 0 1

F 0 1 1 0

Observemos un par de propiedades de esta funcin:

0X X

1 X X
Apreciamos que podemos usar la funcin XOR como un circuito negador, manejando M con un switch que defina su valor. De modo que la implementacin del circuito negador ser el siguiente:

3- Diseo de un multiplicador de 4 bits El diseo de este circuito mediante tablas de verdad es poco prctico ya que se tienen 8 entradas y por consiguiente 28 combinaciones posibles para 8 funciones de salida correspondientes a los dgitos del resultado. En lugar de esto, es preferible usar dispositivos de mayor integracin que las compuertas, como puede ser el sumador previamente diseado. Analizando el algoritmo de la multiplicacin para 2 nmeros de 4 bits:
A3 B3 B0A3 B1A3 B2A3 B3A3 S7 S6 B3A2 S5 B2A2 B3A1 S4 B1A2 B2A1 B3A0 S3 S2 S1 S0 A2 B2 B0A2 B1A1 B2A0 A1 B1 B0A1 B1A0 A0 B0 B0A0

Se requiere realizar sumas sucesivas de los distintos productos BiAj. Para los primeros 2 bits de la salida la funcin es bastante simple y anloga a la de la suma normal:

S0 A0B0 S1 (B0A1) (B1A0)


Considerando ahora las sumas siguientes. Ya que en algunos casos la operacin requiere de la suma individual de 4 bits mas un Carry, la implementacin usando Full Adders

sucesivos se complica. Podemos simplificar esto usando 3 sumadores paralelos de 4 bits, para sumar las siguientes cantidades:

0 0 C1 C2 B2A3 B3A2

0 + B1A3 + B2A2 + B3A1

B0A3 B1A2 B2A1 B3A0

B0A2 B1A1 B2A0 0

Podemos ver que el resultado de la primera suma no arroja un Carry, puesto que el resultado nunca exceder la siguiente potencia de la base (24). Los Carries siguientes se arrojan para sumarse con el ltimo bit de la suma sucesiva, a travs de un Full Adder:

La implementacin completa requiere de 16 multiplicaciones entre todos los bits de los nmeros y un Full Adder para el resultado final. Los sumadores que escogimos son los 74LS83, que son sumadores completos con Carry de entrada. La implementacin completa es la siguiente:

4.- Diseo de un divisor de 4 bits. Para el diseo del divisor, puesto que no hay un algoritmo combinacional sencillo para esta operacin optamos por usar una memoria EPROM regrabable. Recordamos que tenemos 8 bits de entrada, por lo que la memoria deber tener al menos 256 (28) localidades de memoria. Escogimos una memoria EPROM 27C512, que es una memoria CMOS de 64K x 8, esto es, con 64Kb (216) de capacidad y ocho bits de salida. La razn por la cual usamos esta memoria es que implementaremos una salida de 8 bits en BCD, para representar la parte entera de la divisin y un decimal. La capacidad de la memoria usada excede nuestras necesidades sin embargo es perfectamente utilizable, pues solo requeriremos de sus primeras 256 localidades de memoria. Para saber que datos grabar en la memoria, analicemos algunas partes de la tabla de verdad de esta operacin: A3 0 0 A2 0 0 A1 0 0 A0 1 1 B3 0 0 B2 0 0 B1 0 1 B0 1 0 E3 0 0 E2 0 0 E1 0 0 E0 1 0 D3 0 0 D2 0 1 D1 0 0 D0 0 1

1 1

1 1

1 1

1 1

0 0

0 0

0 0

0 1

1 0

1 0

1 0

1 1

1 0

1 1

1 0

1 1

En este ejemplo, para el 1er caso tenemos la divisin de los nmeros A=1 y B=1. El resultado es una parte entera E=1 y una parte decimal D=0. Para el segundo caso tenemos que A=1 y B=2, por lo que el resultado es una parte entera E=0 y una parte decimal D=5. El tercer caso involucra una restriccin para la operacin de la divisin que es una divisin entre cero. El resultado que enviaremos es E=15 y D=15. Puesto que E y D solo pueden representar 1 digito en base 10, se entender que hay un error cuando todas las salidas se habiliten en alto. El ltimo caso mostrado es la divisin de un numero A=15 y B=1. El resultado requiere de mas de un dgito en su parte entera as que se usara la parte decimal para representar el 2 digito: E=1 y D=5. Para grabar nuestros datos en la memoria veamos primero la organizacin de esta. Sus direcciones de memoria estn numeradas como la primera parte de la tabla de verdad. De modo que primero grabamos el dato para la combinacin 00000000, luego para 00000001 y as sucesivamente. Como nuestra memoria tiene 16 bits de entrada enviaremos los 8 bits restantes a cero, as nos aseguramos de usar las primeras 256 localidades de la memoria. Para introducir los datos se debe llenar una matriz de 4096X16 en la cual el primer rengln representa las primeras 16 localidades de memoria, el siguiente de la 17 a la 32 y as sucesivamente. El llenado de esta tabla debe hacerse con el resultado BCD expresado en hexadecimal, lo cual simplifica el proceso. Para los ejemplos anteriores, por ejemplo, tendramos:

A3 0 0 1 1

A2 0 0 1 1

A1 0 0 1 1

A0 1 1 1 1

B3 0 0 0 0

B2 0 0 0 0

B1 0 1 0 0

B0 1 0 0 1

S 10 05 FF 15

Se aprecia que nuestro llenado incluso se vuelve ms ilustrativo de los que hacemos con la memoria. Puesto que solo usaremos las primeras 256 localidades de memoria, dejaremos el resto con la salida default que es FF. La tabla completa es la siguiente: 0000 0001 0010 0011 0100 0101 FF FF FF FF FF FF 00 10 20 30 40 50 00 05 10 15 20 25 00 03 06 10 13 16 00 02 05 07 10 12 00 02 03 06 08 10 00 02 03 05 07 08 00 01 02 04 06 07 00 01 02 04 05 06 00 01 02 03 04 05 00 01 02 03 04 05 00 00 02 03 03 04 00 00 01 02 03 04 00 00 01 02 03 04 00 00 01 02 03 03 00 00 01 02 03 03

0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

FF FF FF FF FF FF FF FF FF FF

60 70 80 90 10 11 12 13 14 15

30 35 40 45 50 55 60 65 70 75

20 23 26 30 33 36 40 43 46 50

15 17 20 22 25 27 30 32 35 37

12 14 16 18 20 22 24 26 28 30

10 12 13 15 16 18 20 21 23 25

08 10 11 13 14 16 17 18 20 21

07 09 10 11 12 14 15 16 17 19

07 08 09 10 11 12 13 14 15 18

06 07 08 09 10 11 12 13 14 15

05 06 07 08 09 10 11 12 13 14

05 06 07 07 08 09 10 11 12 12

04 05 06 07 08 08 09 10 11 11

04 05 06 06 07 08 08 09 10 11

04 05 05 06 07 07 08 09 09 10

La implementacin es bastante sencilla y es la siguiente:

CA

U3
A B C D E F G

VCC
5V

U2
7 1 2 6 3 5 4 A B C D ~LT ~RBI ~BI/RBO OA OB OC OD OE OF OG 13 12 11 10 9 15 14

B U1
10 9 8 7 6 5 4 3 25 24 21 23 2 26 27 1 20 22 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 ~CE/PGM ~OE/VPP O0 O1 O2 O3 O4 O5 O6 O7 11 12 13 15 16 17 18 19

74LS48N

CA

U5
A B C D E F G

U4
7 1 2 6 3 5 4 A B C D ~LT ~RBI ~BI/RBO OA OB OC OD OE OF OG 13 12 11 10 9 15 14

27C512Q90

74LS48N

Anda mungkin juga menyukai