Ayuda con comparador num. de 3 bits

Iniciado por dakaiz, 18 Enero 2006, 22:44 PM

0 Miembros y 1 Visitante están viendo este tema.

dakaiz

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:


dakaiz

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í:


jackson.link

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

....este............viva el gb????..xD!!!

jackson.link

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.
....este............viva el gb????..xD!!!

Bastian

Hola!

y no es mas facil montar esto:

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!

Un gobierno no debe movilizar un ejército por ira, y los jefes militares no deben provocar la guerra por cólera.
Sun Tzu:"El arte de la guerra"

Escrito hace 3000 años y algunos aun no lo saben!

Por cierto ...... escribir bien no cuesta una P*** M*****

dog12

Cita de: Bastian en 27 Enero 2006, 18:21 PM
Hola!

y no es mas facil montar esto:

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