Wenas, a ver si podeis echarme una mano con este circuito.
Hay que comparar dos numeros de 3 bits. Para ello resto un numero al otro . Y en funcion del resultado o son iguales, o uno es mayor que el otro.
La cosa es que no me sale, a ver si podeis echarme una mano.
Este es el circuito:
(http://img395.imageshack.us/img395/3374/comp9qq.jpg) (http://imageshack.us)
Weno, ya he conseguido que funcione para mostrar cuando los dos numeros son iguales, a ver si me podeis ayudar para cuando un numero es mayor que otro. El circuito queda así:
(http://img10.imageshack.us/img10/2707/p66kw.jpg) (http://imageshack.us)
Hola. Bueno me parece excelente el metodo elegido para resolve el problema de la comparacion, sin embargo, creo q has tenido problemas en la implementacion porq no esta claro el concepto de las tecnicas o metodos q existen para la resta binaria. Aqui te envio unas reglas practicas para q puedas desarrolar un mejor concepto y lograr un circuito mas eficiente:
Regla pr´actica: Para obtener el complemento a dos de un n´umero se procede de la siguiente manera:
empezando desde el extremo derecho y hacia la izquierda del n´umero, se procede a escribir todos los bits
hasta el primer bit 1 que se encuentre, a partir de all´ý todos los otros bits se cambian por su complemento.
Como ejemplo encontremos el complemento a dos de X = 011101110010. De acuerdo a la regla
pr´actica tenemos que escribir el 0 del extremo derecho y el primer 1 y luego complementar todos los
dem´as, por tanto tenemos:
C2 = 100010001110
Como segundo ejemplo obtengamos el complemento a dos de Y = 1000101. De acuerdo a la regla
pr´actica tendremos que solamente el 1 del extremo derecho se mantiene y todos los dem´as se cambian
por su complemento, entonces el resultado es:
C2 = 0111011
A partir del conocimiento de este formato podemos realizar sumas y restas binarias de n´umeros positivos
y negativos. Se muestran los mismos cuatro casos utilizados en el ejemplo anterior para ilustrar las
posibilidades que se pueden encontrar al sumar o restar dos n´umeros binarios. El primer ejemplo muestra
la adici´on de dos n´umeros positivos, 4 y 3.
0100 + 0011 = 0111
En otras palabras +7. El segundo ejemplo muestra la suma de 4 y −3 (este ´ultimo en formato de
complemento a dos).
0100 + 1101 = 10001
En este caso el resultado sobrepasa el n´umero de bits permitidos, el bit en exceso es ignorado y solo los
bits rest´antes forman el resultado.
0001
En el tercer ejemplo sumamos −4 a 3.
1100 + 0011 = 1111
Que nos da la representaci´on en complemento a dos de −1. El ´ultimo ejemplo muestra la suma de −4 y
−3.
1100 + 1101 = 11001
Nuevamente se produce un bit en exceso, el cual es ignorado teniendo como resultado el complemento a
dos de −7.
1001
Con estas reglas practicas podrias hacer un circuito mas eficiente. Sin embargo, me tome la molestia de evaluar las posibildades de los resultados generados por tu circuito tal y como estaba. Puesto que me parecio interesante y aqui presento mis resultados. Espero te sirvan.
Segun se observa en el circuito, tenemos 2 numero de 3 bits a comparar, osea de 0 a 7. Uno de niega, es decir el complementa a 8, luego se suman ambos junto con un 1 inicial (A mi parecer aquí esta la confusion). Entonces para las diferentes posibilidades llamemos N1 al numero q se ingresa sin negar y N2 al numero q se ingfresa y se niega.
Se considera un numero de salida de 4 bits (suma mas acarreo), con lo q se llega a obtener del 0 al 15.
N1 N2 N2(negado) Z
0 0 7 8 igual
0 1--7 6--0 7--1 mayores
1 0 7 9 menores
1 1 6 8 igual
1 2--7 5--0 7,2 mayores
2 0--1 7--6 10--9 menores
2 2 5 8 igual
2 3--7 4--0 7--3 mayores
3 0--2 7--5 11--9 menores
3 3 4 8 igual
3 4--7 3--0 7--4 mayores
4 0--3 7--4 12--9 menores
4 4 3 8 igual
4 5--7 2--0 7--5 mayores
5 0--4 7--3 13--9 menores
5 5 2 8 igual
5 6--7 1--0 7--6 mayores
6 0--5 7--2 14--9 menores
6 6 1 8 igual
6 7 0 7 mayores
7 0--6 7--1 15--9 menores
7 7 0 8 igual
De la tabla, podemos decir que cada vez q es igual se obtiene 8 en la salida y para cuando es mayor N2 se obtienen numeros del 7 al 1. Asimismo, cuando N2 es menor se obtienen numeros del 9 al 15.
Se debe notar q nunk se obtendra 0 ya que siempre se suma un 1 inicial, por lo que el resultado variara de 1 a 15.
Luego de este analisis, podemos establecer la siguiente tabla:
MAYOR MENOR IGUAL
0 x x x
1 1 0 0
2 1 0 0
3 1 0 0
4 1 0 0
5 1 0 0
6 1 0 0
7 1 0 0
8 0 0 1
9 0 1 0
10 0 1 0
11 0 1 0
12 0 1 0
13 0 1 0
14 0 1 0
15 0 1 0
Con esto podemos obtener que:
MAYOR=A* N2>N1
MENOR=A(B+C+D) N2<N1
IGUAL=B*.C*.D* N2=N1
A*=variable A negada
Donde A es MSB y D es LSB
Bueno, espero haberte ayudado y disculpa la falta de acentos en la redaccion, es que soy un poco flojo, jejeje. Tambien disculpa lo largo de la respuesta , hubiera posteado con imagenes pero no se manejar los codigos y esas cosas. Bueno cuidate byes.
Hola!
y no es mas facil montar esto:
(http://www.jotapeges.com/out.php/i51795_comparador.jpg)
El 7485 es un circuito comparador de numeros de 4 bits lo montas dejando a nivel bajo las entradas de mayor peso y a funcionar.
Si lo tienes que hacer con puertas... la historia es otra, pero te recomiendo que empieces a comparar por el bit de mayor peso.... si son distintos ya sabras cual es mayor, si no comparas el siguiente...... voy a buscar el esquema y si lo encuentro lo pongo
Salu2!
Cita de: Bastian en 27 Enero 2006, 18:21 PM
Hola!
y no es mas facil montar esto:
(http://www.jotapeges.com/out.php/i51795_comparador.jpg)
El 7485 es un circuito comparador de numeros de 4 bits lo montas dejando a nivel bajo las entradas de mayor peso y a funcionar.
Si lo tienes que hacer con puertas... la historia es otra, pero te recomiendo que empieces a comparar por el bit de mayor peso.... si son distintos ya sabras cual es mayor, si no comparas el siguiente...... voy a buscar el esquema y si lo encuentro lo pongo
Salu2!
Oye una pregunta de que programa sacaste la imagen es q he bajado varios programas y no me sale ese CI para simular un proyecto q me mandaron a realizar
Gracias