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.
No estoy seguro de lo que significa "... cuando la unidad está en modo de resta". No existe tal modo en este chip.
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 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 . 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.
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.
usuario105652
blixel