¿Cómo usar las funciones de comparación de 74LS181?

Estoy experimentando con el 74LS181 ALU ( ver aquí si lo desea), y va bien, pero no puedo entender cómo usar las funciones de comparación A=B, A>B y A<B.

La hoja de datos establece: "La salida del comparador (A = B) del dispositivo pasa a ALTO cuando las cuatro salidas de función (no F0 a F3) son ALTAS y se pueden usar para indicar la equivalencia lógica de más de 4 bits cuando la unidad está en la resta modo."

Esto es bastante confuso. Si estoy comparando A y B, creo que la salida A=B sería ALTA cada vez que A fuera igual a B. (Después de todo, ese es el punto). Además, no estoy seguro de lo que significa ". ..cuando la unidad está en el modo de resta". No existe tal modo en este chip.

Más adelante en el mismo párrafo, dice: "La señal A=B también se puede usar con la señal Cn+4 para indicar A>B y A<B". Eso suena bien, pero no explica CÓMO hacer esto. ¿Tengo que enviar la señal de salida A=B a otra puerta lógica junto con la señal de salida Cn+4 para obtener un resultado?

Lo que espero lograr es tener un conjunto simple de LED de salida que etiquetaré como A=B, A>B y A<B de modo que cuando tenga un 0 en las entradas A y un 0 en las entradas B, luego se encenderá el LED A=B. Y cuando tengo un 1 en las entradas A y un 0 en las entradas B, entonces se encenderá el LED A>B. Del mismo modo para A<B.

Este chip es bastante bueno... aunque a veces un poco peculiar en mi opinión. Por ejemplo, ¿por qué es A menos B menos 1 en lugar de solo A menos B? ¿De qué sirve A menos B menos 1? Pero por lo demás, proporciona bastantes funciones lógicas útiles en un solo chip, por lo que me gustaría resolver este asunto del comparador.

Bienvenido a EE.SE. El LS181 es una ALU, no un comparador. Que genere un indicador A=B es solo parte del diseño. Si solo desea un comparador de 4 bits, pruebe con un 74LS85. Tiene las salidas que deseas.
Gracias por la respuesta. Conozco el 74LS85, pero no quiero solo un comparador. Soy consciente de que el 74LS181 es un ALU, pero la hoja de datos enumera estas capacidades como sus funciones disponibles: sumar, restar, COMPARAR, duplicar y otras. Además, la hoja de datos dice que puede indicar A>B y A<B.

Respuestas (2)

No estoy seguro de lo que significa "... cuando la unidad está en modo de resta". No existe tal modo en este chip.

Ciertamente hay:ingrese la descripción de la imagen aquí

Cuando las entradas de "Selección de modo" se establecen en LHHL (o 0110), la ALU calcula AB-1. Esto se llama el "modo de resta".

"La salida del comparador (A=B) del dispositivo pasa a ALTO cuando las cuatro salidas de funciones (no F0 ni F3) son ALTAS y se pueden usar para indicar la equivalencia lógica de más de 4 bits cuando la unidad está en el modo de resta".

Esto es bastante confuso. Si estoy comparando A y B, creo que la salida A = B sería ALTA cada vez que A fuera igual a B.

Entonces, si calculas A - B - 1, ¿qué resultado obtienes cuando A = B?

Obtienes -1, que está representado por todos F ¯ los bits son altos.

Entonces, el chip proporciona exactamente el comportamiento que dices que esperas.

Más adelante en el mismo párrafo, dice: "La señal A=B también se puede usar con la señal Cn+4 para indicar A>B y A

Se explica en el siguiente párrafo:

The Function Table lists the arithmetic operations that are
performed without a carry in. An incoming carry adds a one to
each operation. Thus, select code LHHL generates A minus B
minus 1 (2s complement notation) without a carry in and
generates A minus B when a carry is applied. Because
subtraction is actually performed by complementary addition
(1s complement), a carry out means borrow; thus a carry is
generated when there is no underflow and no carry is
generated when there is underflow.

Si A < B, entonces A - B - 1 producirá subdesbordamiento, lo que hará que el bit de acarreo no se afirme. Si A > B, no habrá subdesbordamiento y se afirmará el bit de acarreo.

Por ejemplo, ¿por qué es A menos B menos 1 en lugar de solo A menos B? ¿De qué sirve A menos B menos 1?

Porque esto es más fácil de calcular con el número mínimo absoluto de transistores.

En complemento a dos, A - B es lo mismo que A + B ¯ + 1 . Entonces AB-1 simplemente está invirtiendo B y sumando a A.

Y, como dice la cita anterior, puede obtener solo AB afirmando el bit Carry-in mientras realiza la operación AB-1.

Re por qué AB-1... Otra razón es que si conecta en cascada los chips para que funcionen en más de 4 bits, necesita saber si está trabajando en los bits menos significativos (en cuyo caso necesita agregar 1 al negar B) o no (en cuyo caso no lo hace) para implementar AB.
... Cuando las entradas de "Selección de modo" se establecen en LHHL (o 0110), la ALU calcula AB-1. Esto se llama el "modo de sustracción"... OK, no puedo encontrar esto en la hoja de datos, así que no estoy seguro de cómo lo supiste, pero gracias. ¿Es cierto solo para esa resta o es cierto para A menos 1, AB menos 1, etc.? ¿Dónde encontraste esto?
@blixel Cité el párrafo relevante de la hoja de datos en mi respuesta.
Simplemente me gusta que las cosas sean claras y sin ambigüedades. Y no hay nada en la hoja de datos que diga "El modo de resta es lo mismo que A menos B menos 1". De todos modos, gracias por las respuestas y volveré al hardware real para probar esto tan pronto como pueda.
@blixel, por lo que vale, estoy de acuerdo en que esta no es la hoja de datos más transparente del mundo. Antes, cuando se escribió esto, creo que esperaban que simplemente lo descifraras a partir del diagrama lógico si tenías alguna pregunta.
Entonces, ¿debe ser el caso de que el "modo Restar" solo esté disponible para entradas y salidas activas bajas (cuando el pin Cn está configurado bajo)? Tuve la oportunidad de probar algunas cosas en mi tablero nuevamente, y sí ... me rindo con las cosas de comparación. La salida A=B no pasa a ALTO sin importar lo que haga. Si funcionó, según lo que dice la hoja de datos, supongo que la salida A = B se puede usar en combinación con la salida Cn + 4 para determinar si A es igual a B, o si A es mayor que B , o si A es menor que B. Pero con la salida A=B siempre desactivada, no puedo ver ninguna lógica en la salida que obtengo.

Aunque la pregunta ya es un poco más antigua, acabo de tener la misma, lea las respuestas aquí y luego lo descubrí en:

Usted citó las siguientes oraciones de la hoja de datos:

La salida del comparador (A=B) del dispositivo pasa a ALTO cuando las cuatro salidas de función (no F0 ni F3) están ALTO y se puede usar para indicar la equivalencia lógica sobre 4 bits cuando la unidad está en el modo de resta.

Pero la clave de tu (nuestra) pregunta está en la siguiente:

La salida A = B es de colector abierto y se puede conectar Y con otras salidas A = B para ofrecer una comparación de más de cuatro bits.

Aquí puede encontrar la explicación de lo que es un colector abierto: https://en.wikipedia.org/wiki/Open_collector

Esto significa que cuando todas las salidas F1-4 están altas, la base de este transistor de salida está alta y el pin A=B entra en un estado HIGH-Z, es decir, se comporta como un interruptor abierto. Siempre que no todos los pines F estén altos, la base del transistor está baja y, por lo tanto, el transistor conduce y está jalando el pin A = B a tierra.

Puede demostrar fácilmente este comportamiento conectando un ánodo de LED a través de una resistencia a 5 V y el cátodo al contenedor A=B. El LED estará encendido excepto cuando todos los pines F estén altos, luego se apagará. Solo pude demostrar esto yo mismo.

Esto "funciona" por cierto en todos los modos, aunque realmente no tiene sentido allí. Por ejemplo, todas las líneas de control bajas (para entradas altas activas) o todas las líneas de control altas (para entradas bajas activas) hacen que el resultado de la ALU sea la entrada A. Cuando configura todos los pines A altos, la salida también será alta. Entonces el pin A=B también irá HIGH-Z. Por lo tanto, solo tiene sentido mirar este pin al restar A de B.