¿Cómo construir un comparador de 3 bits usando un multiplexor?

Necesito (en diseño) crear un comparador de 3 bits usando un multiplexor de 8 bits y/o hasta cuatro multiplexores de 4 bits. Hay muchos ejemplos de cómo funcionan los comparadores y multiplexores en la web. Hay varios ejemplos de comparadores de 2 bits basados ​​en multiplexores. Pero nada más de 2 bits. Después de muchas horas de reflexionar y dibujar, empiezo a pensar que es imposible.

¿Alguien puede decirme si es posible? ¿Estoy golpeando mi cabeza contra una pared de concreto sin ningún motivo? Si es posible, ¿alguien puede darme una pista?

¿Puedes poner aquí algunos esquemas de lo que pensabas?
para aclarar, ¿desea comparar la magnitud de dos números de 3 bits, utilizando un conjunto de partes lógicas con restricciones poco realistas?
Bien ! Exactamente ! Ningún otro componente. Solo estos chips multiplexores. Compare dos valores de 3 bits que dan como resultado un valor de 2 bits que representa el mismo valor, a>b y a<b (asignando cualquier valor a estos resultados; el cuarto del resultado de 2 bits es "indefinido"). Mis bocetos están en papel, así que eso no ayudará. Creé una hoja de cálculo con la tabla de verdad ordenada de cuatro maneras diferentes para tratar de determinar un patrón, pero supongo que me estoy cansando porque seguro que no veo lo que necesito.
Estaba pensando que debería usar uno de los valores (3 bits) como selección en el multiplexor de 8 bits y luego usar el otro valor en los pines de datos (así como los valores "cableados" para llegar a una verdad coincidente pero no me llega y empiezo a pensar que en realidad no es posible.
Oh sí ! Muchas gracias por la rápida respuesta!!! EN REALIDAD !!!
Es un problema extraño tener que resolverlo pero perfectamente alcanzable. Está en el camino correcto con el mux de 8 bits para una salida, en cuanto a la otra... observe cómo se lleva a cabo la comparación de cadenas en el software.
¿Han especificado tipos particulares de multiplexor? No olvide hacer uso de los pines de activación si los tiene.
Oh espera. ¡Tengo un segundo multiplexor de 8 bits! ¿Eso lo hace infinitamente más fácil? Así que usaría cada chip para calcular cada uno de los bits de salida. Pero todavía me enfrento a organizar la tabla de verdad de manera que pueda encontrar los patrones para conectar las entradas con los bits del segundo valor o el valor "cableado". ¿Puedes decir que mi cerebro se está volviendo blando?
Sabes que ni siquiera había considerado los pines de habilitación. Los chips en cuestión son 74LS151N y 74LS153N.
¡Probablemente podrías mirar la tabla de la verdad todo el día y no llegar a ninguna parte! El segundo mux de 7 bits ciertamente lo hace más fácil, incluso puede que me haya apresurado al decir que podrías hacerlo sin :) Como dije, comparación de cadenas...

Respuestas (1)

Dados 3 x 74LS153, considere usar un 74LS153 (que en realidad es un multiplexor 2 x 4:1) para generar A > B y A < B dado que A es un valor de 1 bit y B es un valor de 1 bit y que estos bits forman el par de bits menos significativo. Se puede inferir que si tanto A > B como A < B son falsos, entonces A = B. Considere usar el siguiente 74LS153 para el siguiente par de bits más significativo. Sin embargo, para este y todos los demás pares de bits, cuando A = B, pase las salidas A > B y A < B del 74LS153 anterior. Podemos repetir este (patrón) para tantos pares de bits como sea necesario. El problema está restringido a 3 pares. Dejaré el ejercicio de cablear a usted para completar el problema.

Independientemente de si está diseñando lógica combinacional o escribiendo software. Encontrar patrones repetidos suele ser el primer paso para simplificar el problema.

He estado tratando de usar el multiplexor de 8 bits sin éxito. Después de publicar, comencé a intentar algo como lo que sugeriste, pero comenzando primero por las partes más significativas. Mi razonamiento es que si A2 es "1" y B2 es "0", entonces ya sé qué valor es mayor (o viceversa). Así es como escribiría el código de todos modos. El problema (para mí) era cómo generar la salida de 2 bits a partir de los resultados de 3 multiplexores. Supongo que eso requerirá otro. Todavía no he llegado tan lejos. ¿Debería realmente empezar por el bit menos significativo? ¿Puedes decir que soy un tipo de software, no de hardware?
Me he estado perdiendo un hecho importante. ¡El 74LS153 tiene DOS salidas! ¡Debería haber deducido eso de tu último mensaje!
Como sugerí con la comparación de cadenas, comience con los bits más significativos (consulte los primeros caracteres). Solo cuando son iguales es necesario pasar a los siguientes bits más significativos.
Ese es el plan. Tengo tres multiplexores duales de 4 bits que comparan cada uno de los tres pares de bits para generar A=B (00), A>B (01) y B>A (10). (11 no está definido para este proyecto). Puedo ver si los bits más significativos no son iguales. Sé el resultado. El problema (nuevamente, para mí) es traducir el resultado a un valor de 2 bits. Tengo un mux dual de 4 bits y un multiplexor de 8 bits (quizás dos) (74LS151). Combinar los resultados de los tres mux sin ningún otro componente que estos me deja perplejo. No estoy seguro de que se pueda hacer.
Lo estás pensando como una gran pirámide con todas tus entradas en la parte inferior y las salidas en la parte superior, pero la solución es un poco más lateral que eso. Y se puede hacer con solo los tres multiplexores duales de 4 bits.
Tienes razón, pero de lado. He dibujado los tres muxes en el borde izquierdo de la página. ¡Tal vez debería reorientarme! Gracias por ayudar hasta ahora..
Sí. Estás pensando en esto como un proyecto de software. "Verifique el par de bits más significativos (MSB) y si no coinciden, ya está". Bien. Luego vuelve a leer mi respuesta al revés. Use un 74LS153 en el par MSB. Conecta todas las entradas para darte la respuesta correcta. Cuando esté satisfecho, vuelva a conectar las 4 de las 8 entradas que se eligen cuando A = B a las 2 salidas del siguiente 74LS153 que está controlando usando el siguiente par de bits menos significativo. Cuando esté satisfecho, repita el mismo esfuerzo para el par LSB. Allí, has hecho lo mismo solo que al revés. Si lo consigues acepta la respuesta.