Lógica booleana: realización con el uso de solo 4 puertas NAND

Actualmente estoy preparando el próximo semestre de mi programa en la universidad y estoy atascado en una pregunta de la clase "Circuitos digitales".

Aquí está la tarea:

[...] bomba P1 funciona cuando el nivel de llenado del tanque cae por debajo del 90% (U=0), sin embargo, solo cuando el sensor de opacidad da salida (S1=1) al mismo tiempo. Si el sensor de nivel de llenado inferior indica con L=0 que el nivel de llenado está por debajo del 50 %, la bomba P1 funciona (P1=1) independientemente de las señales del sensor de opacidad (S1), siempre que U=0 al mismo tiempo . [...]

La tarea es primero derivar la ecuación booleana para la lógica combinacional del controlador de la bomba (señal de salida).

terminé con P1 = U'*(S1+L').

Entonces vamos a realizar el controlador usando solo puertas NAND2 con la sugerencia de que si 4 puertas NAND2 no son suficientes para realizar el circuito, deberíamos considerar simplificar aún más la ecuación booleana.

Aquí es donde radica mi problema:

Solo puedo llegar a realizar el circuito con 5 puertas NAND2:

P1 = U'*(S1+L') = U'*(S1+L')'' = U'*(S1'*L)'

esquemático

simular este circuito : esquema creado con CircuitLab

No veo ninguna manera de cómo podría simplificarlo más. Tal vez alguien podría darme una pista.

Gracias de antemano :)

Respuestas (5)

A menos que haya cometido un error (muy probable), creo que esto se puede hacer con 3 puertas NAND. La tabla de verdad debe verse así:

tu S 1 L PAG 1 comentarios 0 0 0 1 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 X no puede pasar 1 0 1 0 1 1 0 X no puede pasar 1 1 1 0
El uso de un mapa de Karnaugh para encontrar la expresión booleana produce una realización que utiliza 3 puertas NAND de 2 entradas.

No estoy seguro de que los casos de indiferencia estén justificados según la redacción de la pregunta... Aunque tienen sentido, ya que el tanque no puede llenarse más del 90% y menos del 50%. Este es probablemente el enfoque correcto.
@EugeneSh. Bueno, el caso en que el nivel de llenado está por encima del 90% pero por debajo del 50% es imposible (no puede suceder). Mi entendimiento básico era que entonces podrían ser tratados como si no les importara. Aunque podría estar equivocado.
Sí, también agregué esto para comentar, parece que es la única forma de obtener menos de 5 NAND. Votado a favor
Solo un pensamiento. ¿Por qué el autor del enunciado del problema se tomaría el tiempo de decir que si L=0 la bomba funciona independientemente de S1 solo si U=0 también ? Esta redacción adicional tiene que significar algo. O si no, ¿por qué se molestaron en decirlo? Es demasiado definitivo para ser un accidente.
Yo diría que todo el enunciado del problema es bastante incómodo.
@EugeneSh. Tal vez. Pero ese tipo de redacción no sale de la boca por accidente. Sospecho que la declaración del problema pretende esto. Quizás el sensor superior tiene "comportamientos" que la lógica debe acomodar por alguna razón de seguridad hipotética no declarada. ¿Quién sabe? Independientemente, esas palabras no se escriben accidentalmente. (O, no veo una buena manera de argumentar que fueron un accidente). ¿Quizás se pretende que el estudiante identifique este conflicto?
Parece que solo hay tres formas de resolver este problema: 1) si se le permite tener una salida complementada, 2) es imposible tener U=1 y L=0 al mismo tiempo, o 3) hay un error u omisión en la pregunta. No tenemos el texto completo de la pregunta, así que sospecho que es la número 3, pero Carl tiene la respuesta más educativa, así que la votaré.
Gracias por las elaboraciones, me ayudaron y confirmaron que, tal como entendí la pregunta, en realidad no es posible obtener menos de 5 puertas NAND2. Lamento haber omitido parte del texto del problema. Establece que una bomba en funcionamiento significa P1=1. También indica que es posible que U=1 y L=0, porque el sensor del 50 % puede estar defectuoso y, en este caso, la bomba no funcionará (P1=0). (Es por eso que usé paréntesis (U'*S1)+(U'*L') = U'*(S1+L'). Creo que la redacción no está clara, pero es una pregunta del año pasado (no puedo preguntarle al profesor ). Lo más importante es que mi comprensión básica es correcta. ¡Así que gracias a todos! :)
@EugeneSh. Ese tipo de declaración del problema suena bastante bien en comparación con las cosas con las que trabajo, por lo que tal vez pretende ser una introducción al "mundo real".
Estoy bastante seguro de que una doble verificación de U0 cuando L0 es bajo se transfiere de un requisito del mundo real para no desbordar el tanque en caso de que falle un sensor. Entonces, "no puede suceder" de esta respuesta ignora un requisito de seguridad, que es ... digamos, no ideal. Por favor, no siga el ejemplo de Boeing.

Eliminando palabras innecesarias obtenemos…

la bomba P1 funciona … si U=0 solo cuando S1=1…
la bomba P1 funciona =1 independientemente de S1 solo si U=0
la bomba P1 funciona si L=U=0 y S1=x

  P1 = U’*S1 + L’ = ((U*U)’*S1)’*L)’    
  shows 3 (a*b)‘s meaning 3 NAND’s
Esto hace funcionar la bomba en todos los casos de L0, no solo en los de L0 y U0.

¿Por qué esos paréntesis? Cuando L=0, la salida es independiente de cualquier otra entrada, ¿verdad?

Entonces es P1 = U'*S1+L' y se puede realizar con 4 nands.

Cuando L = 0, la salida es independiente de cualquier otra entrada, correcto : siempre que U = 0 ... No del todo independiente
Sí, pero quiero decir que lo dictan factores externos.
U es una entrada, no un factor externo.
Cuando está por debajo del 50%, siempre está por debajo del 90%. Entonces, cuando L = 0, U siempre es 0. El factor externo es que están vinculados a la realidad física.
Esta realidad física se refleja en el "no me importa" en la respuesta de Carl. No verifiqué la equivalencia de tu expresión final con la de él, tal vez sean equivalentes. Pero estos pasos deben ser elaborados.

Intente comenzar con una salida complementada para reducir la cantidad de inversiones que necesita:

P1' = U + S1'*L

Si observa el mapa de Karnaugh para P1, puede ver que es más fácil simplificar P1' que P1.

No creo que ayude a reducir la cantidad de NAND
@EugeneSh. Cambiar las cosas para que la bomba esté ENCENDIDA cuando la salida sea 0 mejora las cosas con respecto a decir que la bomba está ENCENDIDA cuando la salida es 1. Por lo tanto, complementar la salida sí afecta el resultado.
@jonk Por supuesto, puede redefinir las señales a sus complementos (no solo la salida sino también las entradas). Pero no es lo que el problema pide hacer.
@EugeneSh. ¿El enunciado del problema dice algo sobre el valor lógico de salida con respecto a la operación de la bomba? Si es así, puede que me lo haya perdido. De lo contrario, no estoy seguro de entender el "Pero no es lo que el problema pide hacer". ¿Podría elaborar?
@jonk En realidad, tienes razón. El texto citado no menciona la polaridad deP1
@EugeneSh. Y ahí está el punto. ¡Lea cuidadosamente!
Sí, esa podría ser una manera. Pero esta respuesta debería operar en estos términos y eliminar esta negación y agregar la frase "suponiendo que la bomba esté funcionando cuando P1=0..."
@jonk Ok, acabo de volver a leerlo: "la bomba P1 funciona (P1 = 1)", así que no, tengo que corregirme nuevamente, se indica explícitamente.

Aquí hay una discusión activa sobre la declaración del problema y su interpretación . Estoy tomando la posición de que:

  1. Usted nos reflejó la declaración del problema con precisión.
  2. El escritor posiblemente no pudo haber escrito accidentalmente la parte sobre la bomba ignorando S1 cuando L=0 solo si U=0 también.

Una lectura cuidadosa del enunciado del problema sugiere que es posible que no esté haciendo un enunciado explícito sobre el nivel lógico requerido para que la bomba esté ENCENDIDA . Parece indicar que P1 es la bomba. Entonces también parece decir que P1=1 cuando la bomba está ENCENDIDA . Entonces, hay una combinación de dos cosas: la bomba en sí se llama P1 y también se sugiere un símbolo lógico P1.

Pero si uno debe darse cuenta de que el escritor del contenido agregó accidentalmente esa indicación sobre U o le permite elegir un nivel lógico distinto del estado de la bomba, elegiría este último.

Y no, no encuentro mucho amparo en ese argumento. Pero encuentro al menos un poco. Además, notó que la pregunta continuó sugiriendo "simplificar la lógica" si no puede llegar a cuatro NAND. También lo tomaré como una pista o sugerencia adicional.

Por lo tanto, usted tiene su respuesta. No asuma que la bomba está ENCENDIDA cuando la salida es 1. En su lugar, planee que la salida sea 0 cuando la bomba esté ENCENDIDA .

Parece que indica el nivel lógico de la bomba: " la bomba P1 funciona (P1=1) "
@EugeneSh. Puede que tengas razón. ¡A ver si puedo desarrollar un contraargumento! Mmm. Bueno. ¿Es P1 necesariamente la salida que debo desarrollar solo porque dicen que P1 es 1 cuando la bomba está ENCENDIDA? Tal vez P1 sea solo una variable abstracta, no necesariamente la lógica que debo usar. En su lugar, podría optar por crear /P1 (P1'). Pero sí. Me siento menos seguro, de nuevo. Editaré para reflejarlo.
Supongo que si desarrollas una caja de control con interfaces predefinidas...
@EugeneSh. Agregué algunos comentarios. Una cosa sobre P1 es que está combinado. Usan P1 para etiquetar la bomba en sí. Luego usan P1 como un símbolo lógico. Una bomba no es un símbolo lógico. Estos son claramente diferentes. No puede establecer P1=1 si P1 es una bomba. ;) Encuentro algo (no mucho) refugio en eso.