14 votos

Cómo entender la compuerta SR Latch

No puedo entender cómo funciona el SR Latch. Aparentemente, se inserta una línea de entrada desde R, y otra desde S, y se supone que se obtienen resultados en Q y Q.

Sin embargo, tanto R como S requieren entrada del otro's salida, y la salida del otro requiere entrada de la otra salida. ¿Qué viene primero, ¿el huevo o la gallina??

¿Cómo se inicia cuando conectas este circuito por primera vez?

SR Latch

22voto

Todd Smith Puntos 145

Una pregunta perspicaz. De hecho, si construyes este latch en un programa de simulación, te mostrará que no puede predecir en qué estado comenzará:

RS latch with NOR gates, most signals are colored RED for

Pero si configuras una de las entradas en alto (esos son botones en la izquierda), la señal se propagará (recuerda, 1 OR [cualquier cosa] es igual a 1) y el circuito latchingará ese estado:

Same latch; one input is high; the lines all turn light or dark green

Estas son puertas NOR, por lo que la salida invertida se vuelve baja cuando cualquiera de las entradas está en alto. El programa que utilicé es Logisim. Es liviano y lo recomiendo para comenzar. Los compiladores de lógica (FPGA y todo lo demás) suelen quejarse de los estados no inicializados. Este fue un gran primer ejemplo.

Ahora, sé que en la vida real, el circuito se latchingará aleatoriamente en uno u otro estado por sí solo. Muchos otros han señalado eso. Pero a veces, es importante que comience de manera confiable en un estado u otro, y de eso se tratan todas las advertencias.

17voto

Chris Lieb Puntos 106

Creo que la parte importante que estás preguntando tiene que ver con el hecho de que la compuerta se energiza en un estado desconocido, entonces ¿cómo podemos llevarla a un estado conocido? Debes recordar que si cualquiera de las entradas en una compuerta NOR es 1, entonces la salida debe ser 0, independientemente del estado de la otra entrada. Por lo tanto, aplicar las combinaciones de entrada SET o RESET siempre llevará la compuerta al estado de set o reset, independientemente del estado anterior de la compuerta.

7voto

Ryan Ginstrom Puntos 8354

Como dijiste, es indefinido. En la práctica hay transitorios o peculiaridades que deberían poner a la traba en un cierto estado, pero no hay garantía de qué estado estará. Esto es causado por la falta de coincidencia en las dos compuertas que definirán un estado inicial dado (básicamente el circuito no se comporta como una verdadera traba SR digital sino que es un circuito analógico complejo como en la vida real). La salida inicial será más o menos aleatoria, ya sea Q=1 y ~Q=0 o Q=0 y ~Q=1.

A menos que se mencione explícitamente en una hoja de datos, no dependería de que se elija un estado sobre el otro, ya que el estado inicial real puede cambiar entre diferentes partes del lote, la ubicación en un tablero, factores ambientales (temperatura/humedad/etc.) y envejecimiento (de ninguna manera una lista completa de factores).

La mejor manera de definir un estado es luego del arranque afirmar ya sea el conjunto o la reajuste para poner la traba SR en un estado conocido.

Como nota al margen, en general las trampas SR que afirman S y R al mismo tiempo también darán como resultado un comportamiento indefinido y estarás confiando en un tipo de magia similar para establecer las salidas (una implementación real puede apagar ambas salidas, alternar aleatoriamente las dos, alternar ambas salidas encendidas, etc.). Como comentó supercat, si un pin no está afirmado antes que el otro, la traba SR puede entrar en un estado conocido porque solo se está afirmando un pin. Otros tipos de trampas / biestables pueden definir un comportamiento diferente, por ejemplo, los biestables JK definen que afirmar ambos pines para alternar las salidas (Q = ~Qprev, ~Q = Qprev).

5voto

Lukess Puntos 21

Un biestable se implementa como un multivibrador biestable; por lo tanto, Q y Q' están garantizados para ser el inverso el uno del otro para todas las entradas excepto S=1, R=1, lo cual no está permitido. La tabla de excitación para el biestable SR es útil para comprender qué ocurre cuando se aplican señales a las entradas.

S R  Q(t) Q(t+1)   
----------------
0 x   0     0       
1 0   0     1   
0 1   1     0   
x 0   1     1   

Las salidas Q y Q' cambiarán rápidamente de estado y llegarán a un estado estable después de que las señales se hayan aplicado a S y R.

Ejemplo 1: Q(t) = 0, Q'(t) = 1, S = 0, R = 0.

Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(0 O 1) = 0
         Q'(t+1 estado 1) = NO(S O Q(t)) =  NO(0 O 0) = 1

Estado 2: Q(t+1 estado 1)  = NO(R O Q'(t+1 estado 1)) = NO(0 O 1) = 0
         Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(0 O 0) = 1     

Como las salidas no cambiaron, hemos alcanzado un estado estable; por lo tanto, Q(t+1) = 0, Q'(t+1) = 1.

Ejemplo 2: Q(t) = 0, Q'(t) = 1, S = 0, R = 1

Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(1 O 1) = 0
         Q'(t+1 estado 1) = NO(S O Q(t))  = NO(0 O 0) = 1

Estado 2: Q(t+1 estado 2)  = NO(R O Q'(t+1 estado 1)) = NO(1 O 1) = 0
         Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(0 O 0) = 1     

Hemos alcanzado un estado estable; por lo tanto, Q(t+1) = 0, Q'(t+1) = 1.

Ejemplo 3: Q(t) = 0, Q'(t) = 1, S = 1, R = 0

Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(0 O 1) = 0
         Q'(t+1 estado 1) = NO(S O Q(t)) =  NO(1 O 0) = 0

Estado 2: Q(t+1 estado 2)  = NO(R O Q'(t+1 estado 1)) = NO(0 O 0) = 1
         Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(1 O 0) = 0     

Estado 3: Q(t+1 estado 3)  = NO(R O Q'(t+1 estado 2)) = NO(0 O 0) = 1
         Q'(t+1 estado 3) = NO(S O Q(t+1 estado 2))  =  NO(1 O 1) = 0     

Hemos alcanzado un estado estable; por lo tanto, Q(t+1) = 1, Q'(t+1) = 0.

Ejemplo 4: Q(t) = 1, Q'(t) = 0, S = 1, R = 0

Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(0 O 0) = 1
         Q'(t+1 estado 1) = NO(S O Q(t)) =  NO(1 O 1) = 0

Estado 2: Q(t+1 estado 2)  = NO(R O Q'(t+1 estado 1)) = NO(0 O 0) = 1
         Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(1 O 1) = 0     

Hemos alcanzado un estado estable; por lo tanto, Q(t+1) = 1, Q'(t+1) = 0.

Ejemplo 5: Q(t) = 1, Q'(t) = 0, S = 0, R = 0

Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(0 O 0) = 1
         Q'(t+1 estado 1) = NO(S O Q(t)) =  NO(0 O 1) = 0

Estado 2: Q(t+1 estado 2)  = NO(R O Q'(t+1 estado 1)) = NO(0 O 0) = 1
         Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(0 O 1) = 0     

Hemos alcanzado un estado estable; por lo tanto, Q(t+1) = 1, Q'(t+1) = 0.

Con Q=0, Q'=0, S=0 y R=0, un biestable SR oscilará hasta que una de las entradas se establezca en 1.

    Ejemplo 6: Q(t) = 0, Q'(t) = 0, S = 0, R = 0

    Estado 1: Q(t+1 estado 1)  = NO(R O Q'(t)) = NO(0 O 0) = 1
             Q'(t+1 estado 1) = NO(S O Q(t)) =  NO(0 O 0) = 1

    Estado 2: Q(t+1 estado 2)  = NO(R O Q'(t+1 estado 1)) = NO(0 O 1) = 0
             Q'(t+1 estado 2) = NO(S O Q(t+1 estado 1))  =  NO(0 O 1) = 0     

    Estado 3: Q(t+1 estado 3)  = NO(R O Q'(t+1 estado 2)) = NO(0 O 0) = 1
             Q'(t+1 estado 3) = NO(S O Q(t+1 estado 2)) =  NO(0 O 0) = 1

    Estado 4: Q(t+1 estado 4)  = NO(R O Q'(t+1 estado 3)) = NO(0 O 1) = 0
             Q'(t+1 estado 4) = NO(S O Q(t+1 estado 3))  = NO(0 O 1) = 0     
    ...

Como se puede ver, un estado estable no es posible hasta que una de las entradas se establezca en 1 (lo cual usualmente es manejado por circuitos de reinicio de encendido).

Si examinamos la implementación más simple de un biestable SR (ver http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg), descubrimos que está compuesto por dos transistores bipolares de unión (BJTs) y cuatro resistencias (reemplace los interruptores basculantes SPST a tierra con interruptores SPDT que puedan cambiar las líneas de conjunto y reinicio entre el potencial de tierra y V+). Los BJTs están configurados como inversores comunes de emisor. El colector (salida) de cada transistor se retroalimenta en la base (entrada) del transistor opuesto. La entrada S se conecta en OR con la salida del BJT cuyo colector sirve como la salida Q (la unión de R1/R3). La entrada R se conecta en OR con la salida del BJT cuyo colector sirve como la salida Q' (la unión de R2/R4).

Cuando el circuito se enciende por primera vez, ninguno de los transistores está polarizado directamente en la región de saturación durante una fracción de segundo, lo que significa que tanto Q como Q' están en el nivel lógico 1. El voltaje disponible en cada colector se alimenta a la base del transistor opuesto, lo que hace que se polarice directamente en la región de saturación. El transistor que se polarice en directo primero empezará a conducir corriente primero, lo cual, a su vez, causará una caída de voltaje a través de su resistencia de colector, estableciendo su salida en el nivel lógico 0. Esta caída de voltaje en el colector evitará que el transistor opuesto se polarice en directo; por lo tanto, estableciendo el estado inicial del biestable. Básicamente, es una condición de carrera de hardware que conduce a un resultado impredecible.

5voto

ams Puntos 101

Ten en cuenta que las compuertas son invertidas. Esto proporciona un bucle de retroalimentación positiva. Suponiendo que tanto S como R son cero y la salida es uno, este uno se retroalimentará en la otra compuerta para forzar que la otra salida sea cero. De esta manera, las compuertas se encuentran en uno de dos estados estables.

En cuanto estableces uno de S o R en uno, esto forzará que la compuerta correspondiente emita cero, lo que a su vez, obligará a la otra compuerta a emitir cero. De nuevo, estable.

Por ejemplo, estado inicial: S = 0, R = 0, Q = 0, Q# = 1. Ahora estableces S = 1. Esto cambiará la salida de la compuerta inferior (Q#) a 0. Este 0 retroalimenta en la compuerta superior, forzando esa salida (Q) a 1. Este 1 retroalimenta en la compuerta inferior. Cuando vuelves a establecer S en 0, la compuerta inferior sigue recibiendo el 1 de la otra compuerta. Esto mantendrá la salida Q# en 0.

Si Q ya es 1 y estableces S en 1, ambos inputs a la compuerta inferior son 1 y por lo tanto no hay cambio.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X