En su primera imagen, considere la puerta superior NAND. Sabemos que una puerta NAND es tal que, si alguna entrada es 0, entonces la salida debe ser 1 (la única forma en que la salida de una puerta NAND es 0, es si ambas entradas son 1). Por lo tanto, dado que ~ S = 0, entonces Q = 1, independientemente de la segunda entrada a la puerta NAND superior.
Como ahora conoce ambas entradas a la segunda puerta NAND, es fácil deducir que ~ Q = 0 (ambas entradas son 1, por lo que la salida de la puerta NAND es 0)
~S = 0
~R = 1
Q = 1
~Q = 0
El punto del circuito es que, si ahora configura ~ S = 1, las salidas no cambiarán, porque la segunda entrada a la puerta NAND superior es 0 anterior (ambas entradas deben ser altas para que la salida NAND cambie a 0 ) Entonces ahora tienes:
~S = 1
~R = 1
Q = 1
~Q = 0
Considere esto: ¿Qué sucede si se cambiaron sus condiciones iniciales, es decir, ~ R = 0 y ~ S = 1? Haciendo exactamente el mismo razonamiento que antes (excepto que ahora comenzamos con la puerta NAND inferior) encontramos que Q = 0 y ~ Q = 1
~S = 1
~R = 0
Q = 0
~Q = 1
Ahora sucede la magia: establecemos ~ R = 1. ¿Qué sucede? Puede ser útil extraerlo, pero básicamente, los resultados no cambiarán debido al mismo argumento que teníamos antes; la otra entrada a la puerta NAND ya es 0, y necesitamos que ambas entradas sean 1 para cambiar la salida (~ Q) a 0. (Hay una pista de que esto sucedería, ya que el circuito es perfectamente simétrico)
~S = 1
~R = 1
Q = 0
~Q = 1
¡Las entradas son las mismas que antes, pero las salidas son diferentes! - Se acuerdan del estado anterior.
En general, nunca usará el caso cuando tanto ~ S = 0 como ~ R = 0, porque entonces Q = 1 y ~ Q = 1, lo que probablemente romperá la lógica que depende del circuito. Ese es el punto de las dos puertas adicionales en su segunda imagen; protegen el flip flop SR para que esta entrada particular nunca suceda.
(Piense en S como "set" y R como "reset" - cuando ambos son bajos, el flip flop recuerda el estado anterior. Cuando S es alto, "configura" la salida (Q) a 1; cuando R es alto, "(re) establece" la salida a 0. Si intenta configurar la salida a 0 y 1 simultáneamente, obviamente ocurrirá algo incorrecto, por lo que debe asegurarse de que no suceda).
En su segunda imagen, considere la señal "D": va directamente a la primera compuerta NAND, y una versión invertida entra a la segunda. Ahora, si D es alta, entonces la segunda NAND siempre generará 1, de modo que ~ R = 1. Por otro lado, si D es baja, entonces la salida de la primera NAND siempre será 1, de modo que ~ S = 1. De esta manera, garantizamos que nuestro escenario aterrador con el flip flop SR anterior nunca sucederá, ¿sí?
Ahora considere la señal G. Si G = 0, entonces ambos ~ S = 1 y ~ R = 1; por lo tanto, este es el estado "recordatorio", en el que la salida permanece igual. Sin embargo, si G = 1, entonces ~ S o ~ R serán bajos, ¿verdad? Lo cual dependerá del valor de D.
En resumen, cuando G es 1, entonces Q = D, y cuando G es 0, entonces Q = Qold