Como es el diseño de un ALU de 5 bits

Hola como van necesito ayuda con el diseño de un ALU de 5 bit que sume y reste y haga las operaciones logicas, sin utilizar sumadores, les agradeceria cualquier ayuda, yo ya hice el diagrama de bloques pero no se como manejar desbordamientos y tipo de operacion y compuertas de suma y resta... Muchas gracias
 
Última edición por un moderador:
Hola andressu

Dices:
yo ya hice el diagrama de bloques

Puedes adjuntar ese diagrama de bloques ?.
O algo que hayas hecho, de otro modo te mandarán a la seccion de Moderación.

saludos
a sus ordenes
 
Gracias Mrcarlos por interesarte en mi problema este es el diagrama de bloques con una explicacion que yo realice...

http://www.mediafire.com/?62qym1bg3boq0pa

Este es un diseño que encontre en wikipedia que suma 2 numeros, no se si podrian ayudarme a cambiarlo para que realice lo que necesito.


http://es.wikipedia.org/wiki/Archivo:2-bit_ALU.png

Lo que no entiendo la manera de como reparir las compuertas logicas entre operaciones de suma y resta, pues no puedo utilizar sumadores, tambien no entiendo como hacer para que el ALU realice las operaciones deseadas, digamos como hago para que diferencie cuando se va ha hacer una operacion aritmetica o una operacion logica, he leido es utilizando el multiplexor pero no tengo claro como...
Les agradeceria que me pudieran ayudar soy estudiante de ingenieria y estoy viendo una materia de electronica digital y no tengo muchos conocimientos sobre el tema.
Gracias....
 
Hola andressu

Dame tiempo para asimilar la información que has adjuntado.
Si tengo alguna idea o sugerencia te la haré saber.

saludos
a sus ordenes
 
Hola andressu

Digamos que es sencillo el hacer tu ALU de 5 BIT’s a partir del diagrama que aparece en este enlace: [/COLOR]http://es.wikipedia.org/wiki/Archivo:2-bit_ALU.png

En la parte izquierda de ese diagrama está una circuiteria la cual contiene compuertas: Xor, AND, OR y un semi-sumador Por BIT.

Con el 74LS151 seleccionan, por medio de sus entradas de control: S2, S1, S0, lo que quieran que aparezca en su salida Y.
Inclusive trae una tabla de las funciones que ese ALU de 4 BIT’s hace.

OP = 000 0 XOR
OP = 001 1 AND
OP = 010 2 OR
OP = 011 3 Adición

Quiere decir que si tenemos: S2=0, S1=1, S0=1 el circuito efectúa una suma con los valores de los operándoos A y B. y el resultado aparece en las salidas Y de los 74LS151.
Inclusive por esas salidas Y aparecen los resultados de todas las demás funciones.

Si dividimos ese diagrama horizontalmente al centro, el circuito que queda arriba hay que hacerlo 5 veces, hacia abajo, para obtener un ALU de 5 BIT’s. Ciertamente son 5 BIT’s para el operando A. y 5 BIT’s para el operando B. Dándonos un total de 10 BIT’s.

Solo faltaría agregar otra función para la resta.
OP = 100 4 Resta.

En la imagen que te adjunto se nota un recuadro llamado SS. La compuerta Xor y la AND forman un semi-sumador
La teoría y la forma de hacer un sumador completo viene descrita en el PDF que te adjunto.
Nota que hay 2 recuadros llamados SS puesto que ese ALU es de 2 BIT’s.
En este PDF viene tambien el semi-restador para que lo agregues a tu circuito como FUNCION 100 (4)
Espero que sepas numeración binaria y hacer sumas y restas en binario.

Así que solo tienes que desarrollar el restador de 5 BIT’s (5 para el minuendo, 5 para el sustraendo) y agregarlo al circuito que adjuntaste de wikipedia. Este sería OP = 100 4 Resta.

Que simulador Utilizas ?.

Desempaca el .ZIP adjunto. Varios de los circuitos contenidos en él se desarrollaron con el CircuitMaker.

saludos
a sus ordenes

PD: busca por acá un archivo PDF. sería tu guia,
como hago un SUMADOR/RESTADOR?
En el mensage #5.
 

Adjuntos

  • ALU de 2 BIT's Hacer a 5 BIT's.zip
    1.2 MB · Visitas: 110
Última edición:
Hola MrCarlos de verdad muchas gracias, excelente tu información, son todo esto que me dijiste ya he entendido mucho acerca del tema, ya mismo me pongo a trabajar en esto.

PD: El simulador que utilizo es el proteus, aunque también tengo instalado el circuitmarker...

Saludos y muchas gracias...
 
Listo muchas gracias MrCarlos ya realice el ALU quedo regrande porque es de solo compuertas pero funciona bien jejeje. Pero segun el requerimiento que me pide el profesor el habla de una bandera de overflow. Tu sabes que es eso? o simplemente son los desbordamientos?
 
Hola andressu

Si, efectivamente así es.

El OverFlow es cuando al realizar una operación matemática hay un “Se lleva 1” como decimos por acá.
O un “Le pide prestado un 1”.

Por ejemplo cuando sumas 8+9=17, el 1 de las decenas pasa a la siguiente cifra más significativa.
Si tu “Calculadora” no tiene donde mostrar ese 1 entonces si debe tener un BIT para estos casos llamados OverFlow.

No se como es tu circuito actualmente. Pero si hiciste separado el sumados y el restador se podrían juntar para hacer un circuito mas pequeño.
Si mal no recuerdo te adjunte un PDF donde se describe como son los semi-sumadores y semi-restadores.
En ese PDF tambien explican como hacer un Sumador-Restador con lo cual se ahorrarían varias compuertas.

saludos
a sus ordenes
 
Hola MrCarlos

El circuito que realice lo hice con la suma y la resta de cirtuitos separados...

Entonces bandera de overflow solo es manejar los desbordamientos ?

Una duda mas y perdone que te moleste tanto....

Como puedo volver el circuito que suma y el circuito que resta para que tambien sirvan con numeros negativos, yo se que debe de transformar cada numero a complemento a 2 y luego sumarlos pero quisiera hacerlo del mismo circuito que suma y del mismo circuito que resta para no llenarlo de mas compuertas jejeje.

Este es la imagen de mi circuito el segmento 1 de 5 segmentos que tiene el circuito los demas son todo lo mismo con la entrada que viene del desbordamiento de la suma y la resta
i


Este es el link de la imagen

http://www.mediafire.com/i/?p4uog78wco3d4i1

i
 
Última edición:
Hola andressu

Sí, efectivamente así es: bandera de OverFlow solo es manejar los desbordamientos.

En tu mensaje solo aparecen unos cuadritos con una X inscrita. No se ven las imágenes.
En el enlace que anotaste si se ve una parte de tu circuito.

Si se podría hacer que con el circuito que tienes sume o reste números de diferente signo.
Pero actualmente voy a salir y no regresaré sino hasta muy tarde.
Posteriormente te ayudaré a desarrollar esa parte a la que te refieres.
Mientras tanto puede ser que en el PDF que te mencioné venga algo que pudiera ayudarte.

saludos
a sus ordenes
 
Hola andressu
Te estoy adjuntando unos circuitos desarrollados con el simulador CircuitMaker.
El ALU de 5 BIT’s contiene una sujerecia para quitar tanto el Sumador como el Restador y en su lugar dejar el Sumador-Restador para disminuir la cantidad de componentes en el propio ALU.

El otro circuito es solo un sumador de números con signo. Es extremadamente grande y mas se haría si reemplazas los sumadores 74LS83 por sumadores a nivel compuertas lógicas.

Espero te sirvan de algo estos circuitos.

saludos
a sus ordenes
 

Adjuntos

  • ALU Sumador-Restador 5 BIT's.jpg
    ALU Sumador-Restador 5 BIT's.jpg
    323.7 KB · Visitas: 108
  • Positive & Negative Adder.jpg
    Positive & Negative Adder.jpg
    375.5 KB · Visitas: 89
  • ALU de 5 BIT's.zip
    12.4 KB · Visitas: 53
  • Positive & Negative Numbers Adder.zip
    10.3 KB · Visitas: 37
Estoy vuelto loco, ayudame, es q me mandaron estoy y con la guia que le hiciste a anderessu me ayudaste algo pero mira esto:



Diseñe e implemente circuitalmente, un circuito ALU simplificado combinacional, utilizando la técnica de MUX y otros MSI para apoyo. La entrada la conforman el dato A de 3 bits y la palabra de control de 2 bits C, la cual producirá las siguientes operaciones:
• Complemento de A
• Incremento de A en una unidad
• Decremento de A en una unidad
• Rotación a la izquierda de A (a través del acarreo)

Todas las entradas y salidas se muestran por medio de LED´s.. Ud decodificara las señales de control según su criterio.

Seniorrr carlosss ressspondaaaaaa
 
Última edición:
Hola Nitros8891

Tranquilo, Tranquilo. Ya estoy contestando.

Me gustaría me respondieras esto: Qué es para Tú MUX y MSI ?.. En pocas palabras por favor.

Por lo dicho en tu mensaje #15 entiendo que tu sistema será de 3 BIT’s para los datos de A1, A2, A4, además 2 BIT’s de control para seleccionar la función de tu circuito, C1 y C2.

Bien:
Vamos a suponer las siguiente funciones en el 74LS151 selector de datos.
Función, Entradas C en binario, Operación que efectúa.
0, 00, • Complemento de A.
1, 01, • Incremento de A en una unidad.
2, 10, • Decremento de A en una unidad.
3, 11, • Rotación a la izquierda de A (a través del acarreo).
(Nota las separaciones por comas).

El circuito quedaría +/- así:
Función 0,
3 inversores Conectados C/U a A4, A2, A1. Cada salida a las entradas I0(4) de los 3 74LS151.

Función 1,
Las entradas A4, A2, A1 conectadas a las entradas de un Sumador-Restador de 3x3 BIT’s en modo de Sumador; por las entradas B4, B2, B1 se programa un 1(Decimal), 001(Binario) para sumar 1 al valor de A.

Función 2,
Las entradas A4, A2, A1 conectadas a las entradas de un Sumador-Restador de 3x3 BIT’s en modo de Restador, por las entradas B4, B2, B1 se programa un 1(Decimal), 001(Binario) para restar 1 al valor de A.

Función 3,
Aquí es donde ya no podemos continuar pues no dices que tantas veces hay que rotar los BIT’s A4, A2, A1 a la izquierda; o si debe tener algo para indicar cuantas veces hay que rotar, a la izquierda, el valor de las A.
Además hay 3 tipos de rotamiento(Desplazamiento):
Lógico.
Aritmético.
Circulares.

Vamos viendo el Lógico:

Normalmente la rotación hacia la izquierda de una palabra de 3 BIT’s con carry Out e In es pasando
el valor de Cin pasa a A1,
el valor de A1 pasa a A2,
el valor de A2 pasa a A4,
el valor de A4 pasa a Cout.
Esto es exactamente igual a efectuad la operación aritmética A + A. Cierto ?.
Cin = 0, A4 = 1, A2 = 1, A1 = 0. esto es igual a 6, si lo recorremos hacia la izquierda una posición tendríamos como resultado 12.
A1 = 0.
A2 = 0.
A4 = 1.
Cout = 1. considerando que este BIT vale 8 el resultado es 12.
Y de hecho en este caso Cout tiene un valor de 8.
Es más entendible ver el proceso sin letras:
0110=6
1100=12.
Nota como los unos se desplazaron hacia Tú izquierda.

Normalmente la rotación hacia la Derecha de una palabra de 3 BIT’s con carry Out e In es pasando
el valor de Cout pasa a A4,
el valor de A4 pasa a A2,
el valor de A2 pasa a A1,
el valor de A1 pasa a Cin.
Esto es exactamente igual a efectuad la operación aritmética A - (A/2). Cierto ?.
Haz un ejercicio con el mismo 6, el resultado debe ser 3.

Las funciones 1, 2 y 3 las puedes efectuar con el circuito Sumador-Restador que está en la imagen adjunta y dentro del archivo .ZIP el cual es el circuito desarrollado con el simulador CirquitMaker.
Trae una tabla de verdad para que desarrolles un circuito para eliminar el conmutador llamado S0/R1 y ahí conectar la salida del circuito que te menciono.

Tabla De Verdad
F C1 C2
0 0 0=0 Invierte A.
1 0 1=0 Suma A+1.
2 1 0=1 Resta A-1.
3 1 1=0 Shift-Left=A+A.

Cuando está en la función 0 no hay nada que hacer.
Cuando está en la función 1 el Sumador-Restador debe quedar en el modo Sumador(0) y programar un 1 (001) en sus entradas B.
Cuando está en la función 2 el Sumador-Restador debe quedar en el modo Restador(1) y programar un 1 (001) en sus entradas B.
Cuando está en la función 1 el Sumador-Restador debe quedar en el modo Sumador(0) y programar, el mismo valor que tengan las A’s(A4, A2, A1), en sus entradas B’s(B4, B2, B1).

Te adjunto los siguientes archivos
El archivo: Nitro.ZIP el cual contiene teoría de esto que estamos tratando.
El archivo: ALU De 3 BIT’s contiene el circuito desarrollado con el simulador CircuitMaker.

saludos
a sus ordenes
 

Adjuntos

  • Nitro.zip
    1.9 MB · Visitas: 21
  • ALU de 3 BIT's.zip
    5.1 KB · Visitas: 32
  • Borrame 9.jpg
    Borrame 9.jpg
    238.8 KB · Visitas: 64
JEjejejee q bueno eres, bueno con los consejos que le diste a MrAnderessu me ayudaron bastante, yo mismo hice la simulacion de sumador de 3 bits con led, eso si, el mio no restaba, pero ahora con tu ayuda no solo resta sino que tambien invierte, Ahora te digo, no se como hacer en el circuito que me mandaste para que haga la famosa rotacion hacia la izquierda, no se pero segun tu si lo hace, pero a mi no me cuadra, el conmutador o como sea que se llame, es un switch cierto??, tu sabes el S1/R1... La practica es para hoy y no la monte, a ver si me dan chance de entregarla otro dia, otra cosa que menciono el profesor, era que había que usar un registro para guardar y despues ir aumentandole o disminuyendole unidades, realmente jamas lo escuche diciendo eso, pero un companiero me dijo que si, francamente lo encuentro inutil, con el circuito que me has dado no veo la necesidad de usar nada mas..

De todas maneras este no es el fin, aun me quedan 5 practicas mas, y estare por aqui los proximos dias, Saludos hermano
 
Última edición por un moderador:
Hola Nitros8891

Dices en tu mensaje: la famosa rotacion hacia la izquierda, no se pero segun tu si lo hace, pero a mi no me cuadra,

Creo que te lo explique, para mi, muy claro:
Normalmente la rotación hacia la izquierda de una palabra de 3 BIT’s con carry Out e In es pasando
el valor de Cin pasa a A1,
el valor de A1 pasa a A2,
el valor de A2 pasa a A4,
el valor de A4 pasa a Cout.
Esto es exactamente igual a efectuad la operación aritmética A + A. Cierto ?.

Fijate este último renglón.... Fácil no ?.

Tambien te mencioné que había que hacer un circuito con la tabla de verdad.
Para qué...
Para cuando tu “ALU” esté en la funcion número 1 el circuito Sumador-Restador Sumara 1 al valor de A.
Para cuando tu “ALU” esté en la funcion número 2 el circuito Sumador-Restador Restara 1 al valor de A.
Para cuando tu “ALU” esté en la funcion número 3 el circuito Sumador-Restador Sumara Por el operando B el valor de A. Porque Rotar es igual a sumar el valor de A a la A (A+A).

En la Funcion 3 dices que no te cuadra, me pordías mostrar el circuito que hciste para lograr esa función 3?.

saludos
a sus ordenes
 
Disculpe sr Carlos, es algo dificil, hoy me estoy sentando a seguir con esto, mi compañero busco lo de registros, pero me da fastidio eso, lo que si entiendo de lo que me esta diciendo, cuando me dices que el cin pasa a A1, pero el detaller es como???? a mi parecer hay que hacer otro circuito con su tabla de verdad como me lo indicas, intentare hacerlo, si no puedo, entonces me voy con registros, a pesar que no he leido nada de eso....Saludos
 
Hola Nitros8891

Te vuevlo a repetir “recorrer hacia la izquierda es igual a sumar al mismo valor de A a la A, Así: A + A.
Esto lo puedes lograr con el Sumador-Restador Que te adjunté mensajes arriba. O con el que te adjunto Ahora.
Pero el valor de la segunda A se mete por las entradas B.

Tambien, Claro, Lo puedes hacer con Registros de corrimiento pero esto aumentaría la cantidad de IC’s utilizados.

ESTUDIA y analiza el circuito que está en la imagen adjunta espero te sirva.
En el ZIP está el circuito desarrollado en CircuitMaker.

Te toca investigar Qué hacen los IC’s 74LS125 los cuales están en la parte baja del diagrama.

saludos
a sus ordenes
PD: he olvidado preguntarte si puedes utilizar el 74LS83 el cual es un sumador completo. Con este se reduciría drásticamente el tamaño de tu ALU.
 

Adjuntos

  • Borrame E.jpg
    Borrame E.jpg
    279.2 KB · Visitas: 61
  • ALU de 3 BIT's.zip
    6.1 KB · Visitas: 19
Última edición:
Atrás
Arriba