Internet - Páginas Web Educativas

Anuncio
UNIVERSIDAD AUTONOMA METROPOLITANA
CAMPUS: IZTAPALAPA
DIVISION: CBI
Practica #3 Construcción una ALU.
(Sumador restador de 3 bits con acarreo y banderas indicadoras de
estado.)
Profesor: Joel Ricardo Jiménez Cruz
Alumnos: Ortiz Sagrero Cecilio Wenceslao.
Sánchez García Ángel Fabricio.
2
RESUMEN ................................................................................................. 3
INTRODUCCIÓN ....................................................................................... 4
DESARROLLO TEORICO ........................................................................ 5
EQUIPO y MATERIAL ............................................................................... 11
DESARROLLO EXPERIMENTAL ............................................................. 11
RESULTADOS .......................................................................................... 25
COMENTARIOS Y/O DISCUSIÓN ........................................................... 31
EL TRABAJO FUTURO ........................................................................... 31
CONCLUSIONES .................................................................................... 32
REFERENCIAS ...................................................................................... 32
2
3
RESUMEN:
El objetivo de la practica es construir una sencilla pero útil unidad aritmético
lógica que realice operaciones de suma y resta binaria con complemento a dos,
de dos números de 4 bits los cuales estarán dentro del intervalo decimal [-8,7]
esto por que se tomara como el bit mas significativo el colocado mas a la
izquierda, el cual además de representar el numero nos indicara el signo “-“ si
es 1 ó o representara “+” si es cero, para ello daremos un pequeño repaso por
los circuitos combinacionales, los circuitos secuenciales, las operaciones
aritméticas binarias, además de describir la forma en la cual se pueden
implementar mediante circuitos lógicos.
Definiremos los conceptos de ALU, medio sumador y restador, así como el de
sumador y restador completo.
Si es posible haremos notar como la construcción de una unidad aritmético
lógica que realice operaciones de suma y resta en un solo circuito suele ser
complicada, sin embargo teóricamente constituye un modelo mas sencillo que
construir dos circuitos los cuales, realicen dichas operaciones por separado.
Se describirán los componentes utilizados en la construcción de la ALU.
Un típico símbolo esquemático para una ALU: A y B son operandos; R es la
salida; F es la entrada de la unidad de control; D es un estado de la salida
3
4
INTRODUCCIÓN:
El ALU es concepto atribuido a John Von Neumann, quien aseveró al diseñar
su arquitectura para una computadora, que está tendría que realizar
operaciones matemáticas básicas razón por la cual la computadora debía
contener órganos especializados en dichas operaciones.
La Unidad Aritmético Lógica, es un circuito digital que calcula operaciones
aritméticas (como adición, substracción, etc.) y operaciones lógicas (como OR,
NOT, XOR, etc.), entre dos números. La operación a realizar por la ALU se
decide mediante señales de control enviadas por la unidad de control.
Los elementos que componen la ALU son los siguientes:
Circuito Operacional: Formado por los circuitos necesarios para la realización
de las operaciones con los datos procedentes del registro de entrada. También
acepta como entrada órdenes para seleccionar el tipo de operación que debe
realizar.
Registros de Entradas: Contiene los datos u operandos que intervienen en una
instrucción antes de que se realice la operación por parte del circuito
operacional. También se emplea como almacenamiento de resultados
intermedios o finales de las operaciones.
Registro de Estados: Engloba un conjunto de biestables en los que se deja
constancia de condiciones que se dieron en la última operación realizada y que
habrán de ser tenidas en cuenta en operaciones posteriores (indicadores de
signo, de cero, de desbordamiento, etc.).
Registro Acumulador: Contiene los datos que se están tratando en cada
momento. Almacena los resultados de las operaciones realizadas por el circuito
operacional. Esta conectado con los registros de entrada para
retroalimentación en el caso de operaciones encadenadas. También tiene
conexión directa con los dispositivos de salida para el envió de resultados.
La mayoría de las acciones de la computadora son realizadas por la ALU. La
ALU toma datos de los registros del procesador. Estos datos son procesados y
los resultados de esta operación se almacenan en los registros de salida de la
ALU. Otros mecanismos mueven datos entre estos registros y la memoria 3 .
Una unidad de control controla a la ALU, al ajustar los circuitos que le dicen a la
ALU qué operaciones realizar.
Muchos tipos de circuitos electrónicos necesitan realizar algún tipo de
operación aritmética, así que incluso el circuito dentro de un reloj digital tendrá
4
5
una ALU minúscula que se mantiene sumando 1 al tiempo actual, y se
mantiene comprobando si debe activar el pitido del temporizador, etc.
Por mucho, los más complejos circuitos electrónicos son los que están
construidos dentro de los chips de microprocesadores modernos como la
familia de los Pentium. Por lo tanto, estos procesadores tienen dentro de ellos
un ALU muy complejo y poderoso. De hecho, un microprocesador moderno
pueden tener múltiples núcleos, cada núcleo con múltiples unidades de
ejecución, cada una de ellas con múltiples ALU.
Muchos otros circuitos pueden contener en el interior ALU: GPU como los que
están en las tarjetas gráficas NVidia y ATI, FPU como el viejo coprocesador
numérico 80387, y procesadores digitales de señales como los que se
encuentran en tarjetas de sonido Sound Blaster, lectoras de CD y las TV de
alta definición. Todos éstos tienen adentro varias ALU poderosas y complejas.
Los circuito lógicos para los sistemas digitales pueden ser combinacionales o
secuenciales.
Un circuito combinacional consiste en compuertas lógicas cuyas salidas se
determinan directamente en cualquier momento de la combinación presente de
entradas sin tener en consideración las entradas anteriores. Estos circuitos
realizan una operación de procesamiento de información específica
completamente lógica por medio de un conjunto de funciones de Boole.
Por otra parte los circuitos secuenciales usan elementos de memoria, además
de compuertas lógicas. Sus salidas son en función de sus entradas y del
estado de los elementos de la memoria, donde el estado de los elementos de la
memoria es a su vez una función de las entradas previas. Como consecuencia,
las salidas de un circuito secuencial dependen no solamente de las entradas
presentes, sino también de las pasadas, y el comportamiento del circuito debe
especificarse por una secuencia de tiempos en las entradas y estados internos.
Es por ello que se emplearan circuitos secuenciales en la construcción de la
unidad aritmético lógica.
DESARROLLO TEORICO.
SUMA BINARIA:
Recordemos que en un número binario como 11010101, el (1) situado más a la
izquierda es el bit más significativo y el digito de la extrema derecha (1) es el bit menos
significativo.
5
6
Recordemos también los valores posiciónales de los números binarios.
Equivale a:
2n 2n-1 2n-2
2n 2n-1 2n-2
…
…
25 24 23 22 21
32 16 8
4
2
20
1
Como ocurre con los números en base 10 no hay dificultad para realizar la operación en
ningún caso excepto en el cual se tiene 1+1, que en base diez sería 2 y que en base dos
se escribe 10 (uno cero). Por lo tanto, en binario 1+1=0 y llevamos 1 a la posición mas
significativa siguiente. Esto último lo llamamos acarreo.
0
+ 0
0
1
+ 0
1
0
+ 1
1
1
+ 1
1 0
ACARREO
Sumadores.
Las compuertas digitales hacen una variedad de tareas de procesamiento de
información. Entre las funciones básicas encontradas están las diferentes operaciones
aritméticas.
Un circuito combinacional que realiza la suma de dos bits se le llama sumador medio ó
medio sumador. Aquel circuito que puede realizar la suma de 3 bits considerando el
acarreo se le considera un sumador completo.
De la explicación anterior se observa que un sumador medio necesita dos entradas y
produce dos salidas, donde las entradas son proporcionadas por los bits de los
sumandos, mientras las salidas son producidas por la suma y el bit de acarreo.
A
0
0
1
1
B
0
1
0
1
C
0
0
0
1
S
0
1
1
0
Tabla de verdad sumador medio.
El bit de acarreo es cero a menos que ambas entradas sean 1. La salida S representa el
bit menos significativo de la suma.
Las funciones de Boole simplificadas se pueden obtener de la tabla anterior.
S=A’B + AB’
C= AB
6
7
Y cuyo diagrama lógico es:
U2A
1
U1A
3
74HC08D_2V
U3B
74HC32N_2V
2
74HC08D_2V
U4C
4
74HC08D_2V
Donde 4 representa el acarreo y 3 es la suma.
Sumador completo
Un sumador completo es un circuito combinacional que forma la suma aritmética de
tres bits de entrada. Este consiste en tres entradas y dos salidas. Dos de las variable de
entrada denotadas por x y y representan los dos bits significativos que se agregan, la
tercera entrada z representa el bit de acarreo de la posición menos significativa. Se
necesitan 2 salidas designadas S para la suma y C para el acarreo.
X
0
0
0
0
1
1
1
1
Y
0
0
1
1
0
0
1
1
Z
0
1
0
1
0
1
0
1
C
0
0
0
1
0
1
1
1
S
0
1
1
0
1
0
0
1
Tenemos que sus funciones están dadas por:
S=X’Y’Z + X’YZ’ + XY’Z’ + XYZ
C=XY + XZ + YZ
7
8
Y tienen el siguiente diagrama.
U1
U7
AND3
1
AND2
U2
6
2
U5
U8
U6
7
AND3
5
9
AND2
U3
OR4
3
AND3
4
U4
OR3
8
U9
AND2
AND3
Donde 5 representa la suma, y 9 es el acarreo.
RESTADORES:
La resta de dos números binarios puede lograrse tomando el complemento del
sustraendo para agregarlo al minuendo. Mediante este método, la operación de
sustracción se convierte en una operación de suma que necesita sumadores completos
para su ejecución en una maquina.
Restador medio
Un restador medio es un circuito combinacional que resta dos bits y produce su
diferencia.
Restador completo
Es un circuito combinacional que realiza una resta entre dos bits, tomando en
consideración que se ha prestado un 1 de un estado menos significativo.
Una vez repasada el aritmética binaria, y obviamente determinado el camino sencillo de
utilizar un solo circuito, al hacer énfasis en ver la resta como una suma complementada,
damos paso nuevamente al tema central de la practica la ALU.
8
9
Una unidad aritmética lógica es una función multioperación digital de lógica
combinacional. Esta puede realizar un conjunto de operaciones aritméticas básicas y un
conjunto de operaciones lógicas.
El ALU tiene un número de líneas de selección para elegir una operación particular de
la unidad. Las líneas de selección se decodifican dentro de la ALU de manera que las k
variables de selección pueden especificar hasta 2k operaciones diferentes.
A1
A2
A3
A4
B1
B2
B3
B4
s2
s1
Cout
Unidad aritmética Lógica
(ALU)
s0
ci
n
F4
F3
F2
F1
En la figura se muestra el diagrama de bloque de una ALU de 4 bits. Las 4
entradas de datos A se combinan con las cuatro entradas de B para generar
una operación en las salidas F. La linea de selección de modo s2 distingue
entre las operaciones aritméticas, y lógicas. Las dos entradas de selección s1 y
s0 especifican la operación aritmética o lógica que se va a generar. Con tres
variables de selección es posible especificar cuatro operaciones lógicas (con s2
en un estado) y cuatro operaciones lógicas (con s2 en el otro estado). Los
acarreos de entrada (ci) y salida (cout) tienen significado solamente durante la
operación aritmética.
El arrastre de entrada en la posición menos significativa de un ALU se usa muy
a menudo como una cuenta variable de selección que puede doblar el número
de operaciones aritméticas. De esta manera, es posible generar cuatro
operaciones mas, para un total de ocho operaciones aritméticas.
Un diseño de un ALU típico se llevara a cabo en tres etapas.
Primero será emprendido el diseño de la selección aritmética.
Segundo debe considerarse el diseño de la sección lógica.
Finalmente, deberá modificarse la sección aritmética de manera que puedan
realizarse ambas operaciones aritméticas y lógicas.
9
10
El componente básico de la sección aritmética de una ALU es un sumador en
paralelo. Un sumador en paralelo se construye con un número de circuitos
sumadores completos conectados en cascada. De tal forma que controlando la
entrada de datos al sumador en paralelo, es posible obtener diferentes tipos de
operaciones aritméticas.
La siguiente figura muestra las operaciones aritméticas obtenidas cuando un
grupo de entradas a un sumador en paralelo se controlan externamente.
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
0
N
0
F
A
Transferir A
0
1
0
A+1
Incrementar A
0
1
0
B
A+B
Suma ó agregar B a A
0
1
1
B
1
0
0
B’
1
0
1
B’
1
1
0
Todos
unos
A-1
Decrementar A
1
1
1
Todos
unos
A
Trasferir A
S1
S0
Cin
0
0
0
A+B+1 Suma con acarreo ó agregar B a A
más 1
A+B’
Agregar el complemento de 1 de
BaA
A+B’+1 Agregar el complemento de 2 de
BaA
Tabla de la Función F en un Circuito Aritmético
Pasemos a la construcción de la ALU.
10
11
Equipo y/o Material:
Componentes
1
2
2
1
1
1
2
4
16
Sumador (74LS283)
FLIP-FLOP (74LS175)
COMPUERTAS AND (74LS08)
COMPUERTAS NOR (74LS02)
COMPUERTAS OR (74LS32)
COMPUERTAS XOR (74LS86)
DIP SWITCH (4 Y 8 SALIDAS)
PUSH BUTTONS (opcionales)
LEDS (4 para cada número, 4 para la operación y4 banderas)
Varios :
Trozos de cable de red telefónica para realizar las conexiones en el
Protoboard, pinzas, leds.
Hojas de datos de los diversos componentes (descargados de Internet
para mayor detalle consultar en las referencias de este documento)
Desarrollo Experimental:
Del diagrama original elaborado en clase el cambio principal que se realizo fue
la forma de introducir los datos, ya que en un principio el flip flop por el cual se
introducirían los datos sería el de la parte superior del diagrama, sin embargo,
por cuestiones de lógica se prefirió fuera el flip flop inferior el encargado de la
función de introducción de los datos y la retroalimentación seria para el flip flop
superior.
Además cabe mencionar que por cuestiones de espacio en el primer diagrama,
solo se coloca un dispositivo nombrado como VC01, el cual es detallado en el
segundo diagrama.
También he de mencionar que los leds mostrados en el diagrama 1 , solo
representan las banderas (overflow, acarreo, signo y el cero). Los otros leds
solo hay que ubicarlos correctamente en las respectivas salidas de los flip flops
para los números y a la salida del sumador para el resultado de la operación.
11
14
A continuación se muestran algunas imágenes del proceso de elaboración del circuito. Para la colocación del circuito se utilizaron
inicialmente dos protoboards, aunque finalmente se utilizaron 3 de ellas, las cuales fueron debidamente puenteadas. En este caso
se muestra un gran avance del circuito pues por cuestiones del tamaño de este archivo se tuvieron que eliminar algunas fotografias
.
14
15
En la imagen se puede observar las primeras salidas idénticas cuando se realiza la transferencia de datos, al ver tres leds rojos
encendidos y de igual forma tres leds amarillos encendidos
15
16
Aquí se muestra la parte del circuito con los switches y el primer flip flop junto con los push buttoms para el clock y el reset del del
flip flop
16
17
Después de varios leds fundidos se decidió colocar unas resistencias para aumentar el ciclo de vida de los leds.
17
18
Aquí se muestra una etapa intermedia de la construcción del circuito donde se muestran ambos flip flop con sus respectivos
botones para resetearlos y para simular el pulso de reloj, además de la colocación de resistencias y los leds para la introducción de
los datos. Se observan dos dip switches, los cuales nos permitiran introducir los datos correspondientes y poder tener cuaquiera de
las combinaciones para las lineas de selección del circuito.
18
19
En esta imagen mostramos la compuerta nor y el inversor necesarios para las banderas del sumador. Ademas de se tuvo que
anexar una tercera protoboard, haciendo de este un circuito de gran tamaño.
19
20
Aquí mostramos los leds correspondientes a las banderas indicadoras de overflow, acarreo, signo y cero.
20
21
En esta imagen se puede observar la parte superior del circuito, el dp switch que controla las lineas de selección, asi como parte
del circuito denominado VC01.
21
22
Aquí observamos ya una prueba del circuito al introducirle el dato 1111 donde se nos muestra las banderas de acarreo y de signo
encendidas.
22
23
.
En esta imagen se observa un segundo experimento en el cual se encienden las banderas de signo y overflow
23
24
Aquí se muestra la imagen final del circuito.
24
Resultados
Se logró después de mucho tiempo concluir exitosamente esta practica, claro después de
corregir el diagrama inicial, comentar dudas con el ayudante de la materia, así mismo
investigando en Internet y en diferentes libros, los cuales en su mayoría tratan el tema
de diferentes formas, logramos encontrar la manera de hacer funcionar la ALU.
Hay que poner énfasis en la situación de acostumbrarse a leer el binario y tomar en
cuenta que el primer digito representa el signo y el número, ya que esto nos llevo
tiempo en corroborar resultados y aun más en explicarlos.
Considerar al 1111 binario como el -1 decimal, o por ejemplo entender que
0101+1011= 1100 cuyo significado es -4 decimal y no lo que normalmente estamos
acostumbrados a ver lo cual sería un 12.
El considerar las banderas y lo que significa cada una de ellas, (ver los diagramas
anteriores) cuando debe encenderse el acarreo final, el signo, el cero, y el overflow
(desbordamiento), también tuvieron su dificultad en cuanto a su comprensión practica y
teórica al momento de la conexión de la ALU.
Además de mencionar los casos en los cuales podemos hacer diferentes operaciones con
nuestra ALU.
Aquí mostraremos unos ejemplos sencillos.
1.- suma de 2 números positivos cuyo resultado esta dentro del rango aceptado.
2.- suma de 2 números positivos cuyo resultado esta fuera del rango aceptado.
3.- suma de 2 números uno positivo y otro negativo y cuyo resultado esta dentro del
rango.
4.- suma de 2 números uno positivo y otro negativo y cuyo resultado esta fuera del
rango.
5.- transferencia (utilizada para almacenar el segundo número en el segundo flip-flop
6.- incremento a 1 (incrementa en uno al número introducido)
7.- decremento en uno (decremento en uno al número introducido)
8.- suma el complemento con incremento en uno (esto es para restar sumando es decir
se envía el complemento del numero y se le incrementa en uno, lo que conocemos como
complemento a 2).
A continuación mostraremos unas imágenes del funcionamiento del circuito con ejemplos específicos.
El caso muestra realizado a petición del profesor para la aceptación de la práctica la suma de 4 – 4.
Como se observa en la imagen se introduce el numero 4 en el primer flip flop (los leds rojos, tienien la disposición 23222120), y los leds verdes
representan la salida del sumador, aquí estamos en la operación de transferencia.
27
La forma de manejar el circuito para realizar la operación indicada, es la siguiente, se introduce el primer 4, el cual es transferido
ala segundo flip flop y posteriormente se introduce el -4, para enseguida realizar la suma de los numeros mediante el complemento
a 2. Como se muestra en la imagen el resultado es 0, ningun led amarillo prendido, y la bandera indicadora del del cero encendida.
27
28
En las siguientes imagenes se muestra un ejemplo de overflow, en el cual la operación es la suma de 7+1, recordamos que
nuestro rango va de [-8, 7] , la primer imagen se muesta la introducción de el 7 en el prmier flip flop y como este es el resultado de
la suma, en la segunda imagen se realiza la transferencia al segundo flip flop , y por ultimo se realiza la suma, en la tercer imagen
se muetra como la bandera indicdora de overflow se enciende pues nuestro rano de valores es [-8.7].
28
29
29
30
30
Comentarios y/o discusión:
La mayoría de las ideas utilizadas fueron tomadas de las notas de clase, y aunque se
consultaron muchas paginas de Internet y varios libros, todos abordan el tema de
diferentes formas, la mayoría utilizando otros circuitos y/o solo compuertas además de
usar 2 sumadores, entre otras diferencias, la mayor aproximación encontrada fue en
libro del autor Morris M. Mano. El cual da una excelente introducción teórica,
quedando un poco lejos de la parte práctica, la cual recalcamos fue tomado de las notas
de clase, y corregida con ayuda del profesor, el ayudante, y en varias ocasiones
mediante el ensayo y error por nosotros mismos.
Como se explico en la parte de teoría el sumador y el restador completo se pueden
lograr mediante la utilización de compuertas lógicas, sin embargo esto no se adecuo a
nuestro objeto de interés, pues resultaba mas complicado establecer un circuito para
cada operación, así mismo el uso de las banderas (indicadores durante la operaciones,
resulto mas fácil usando el sumador (7083) y el circuito identificado como VC01.
(Véase los diagramas correspondientes), nos orillo a ejecutar lo visto en clase, con un
poco mas de ingenio de lo usual.
Lo importante en los resultados de las operaciones fueron las banderas, mediante ellas
se puede detectar cuando un resultado esta fuera de nuestro rango de valores aceptado,
además de considerar el acarreo final, y tomar en cuenta el signo (signo y valor del bit
mas significativo), además de considerar el caso del cero total.
Por si fuera poco el dotar de líneas de selección a nuestra ALU nos permite hacerla mas
completa y poder realizar varias operaciones (transferencia, incremento, decremento,
complemento, complemento + 1 entre otras) además de la clásica suma.
El trabajo futuro:
El trabajo futuro para nuestro punto de vista seria formar una ALU mas completa,
dotarla de operaciones lógicas además de las aritméticas ya realizadas, establecer una
unidad de control que nos permitiera mejorar el funcionamiento de nuestra ALU, así
como el establecimiento de los registros de entrada y de estados de forma mas eficiente.
32
Conclusiones:
Como parte de nuestra formación como licenciados en computación es interesante
conocer, aunque sea en forma básica la construcción y operación de la famosa unidad
aritmético lógica que es base de las computadoras.
Ya que nos permite aterrizar conceptos los cuales solo manejamos de forma teórica.
El implementar la alu con este tipo de circuitos es en verdad complicado, mas aun
cuando según la literatura consultada este podria manejarse mediante compurtas logicas
es decir de una manera mas sencilla en cuanto al conocimiento, sin embargo lo haria
mas complicado en cuanto al numero de conexiones. Eso sin mencionar el costo
economico que podria incrementarse un poco por el numero de circuitos integrados a
utilizar.
El “aterrizar” los conocimientos teoricos en esta practica resulta interesante y
emocionante y desde nuestro punto de vista puede ser una parte inicial de un circuito
mas grande (una ALU completa parte). El cual nos mpermita posteriormente una mejor
comprensión del mundo oculto de las computadoras.
REFERENCIAS CONSULTADAS.
Bibliografías:
Texto 1:
Mano, M. Morris
Lógica Digital y Diseño de computadoras.
México, ed. Prentice-Hall, 1982.
636 pp.
Internet
http://es.wikipedia.org/wiki/Portada
http://www.asifunciona.com/electrotecnia/
http://www.unicrom.com/
http://www.forosdeelectronica.com
Datasheets:
http://www.datasheetcatalog.net/es/
32
Descargar