Regístrate | Conectar
El Tamiz Libros Recursos Series Únete 8 Users Online
Skip to content

Computador mágico XV – El biestable RS




La serie “El computador mágico” está disponible también en forma de libro.

En el último artículo  de esta serie diseñamos una ALU sencillita. La ALU era el bloque de lógica combinacional más complejo que hemos visto hasta ahora (y de hecho, aunque habrá bloques mucho más complejos que ese, no los diseñaremos en detalle; supondremos que has interiorizado el hecho de que son combinacionales y, por tanto, se pueden construir). En este artículo vamos a comenzar el camino hacia la lógica secuencial (ya veremos lo que es eso), presentando el biestable.

Un biestable es una cajita de electrónica capaz de almacenar un bit, y dejarlo allí hasta que pongamos otro bit (del mismo valor u otro). Es decir, es la unidad mínima de memoria. En inglés se les suele llamar flip-flop o latch.

Fíjate en que, con las cajas que hemos visto hasta ahora, esto no era posible. Imagina que tenemos una puerta NOT. Si en la entrada tengo un 1, en la salida tengo un 0. Pero si quito el 1, en la salida tengo… ¿qué tengo? Yo qué sé. Depende de lo que haya puesto cuando quité el 1, ¿no? Eso es lo que definía a la lógica combinacional: la salida dependía exclusivamente de la entrada. En cambio ahora vamos a ver un componentes cuya salida no depende únicamente de la entrada, sino del estado anterior.

Supongo que ese trabalenguas te parece ininteligible, así que vamos a meternos directamente en harina y verás cómo lo vas entendiendo. Te advierto, no obstante, de que será un artículo durillo, quizá requiera que lo leas un par de veces (por este motivo, será cortito).

 

El tipo más sencillo que vamos a ver es el biestable RS. Se construye de la siguiente manera (y mostramos a la derecha el símbolo habitual para representarlo):

 

Fíjate en el detalle: tenemos dos entradas, pero lo que sale de cada una de las puertas NOR, lo enviamos de nuevo hacia la entrada y lo metemos en la otra puerta. Es lo que se llama un sistema realimentado: la salida realimenta a la entrada. Fíjate también en que tenemos dos salidas, Q y Q’. Son dos salidas, en principio independientes, pero supongo que por el nombre ya te vas imaginando que una siempre será lo contrario de la otra. Por si acaso no recuerdas el funcionamiento de la puerta NOR, lo copiamos aquí:

A

B

NOR

0

0

1

0

1

0

1

0

0

1

1

0

Como tenemos dos entradas, tenemos cuatro estados posibles. Pero de momento, en lugar de representarlo como tabla, vamos a explicarlo en roman paladino:

  • Cuando R=0 y S=0. Vamos a fijarnos en la puerta NOR de arriba. Como R es 0, la salida Q depende de la segunda entrada. Esa segunda entrada, debido a la realimentación, es Q’. Ahora fíjate en la tabla del NOR, y verás que, dado que la primera entrada es 0, la salida es lo contrario de la segunda entrada. Es decir, la salida Q es NOT Q’. Pero… ¿qué es Q’? No lo sabemos aún, eso dependerá de la salida de la puerta NOR de abajo, ¿verdad? Vamos a estudiar entonces la puerta NOR de abajo. Dado que S es 0, la salida Q’, siguiendo el mismo razonamiento que antes, es lo inverso de la primera entrada; es decir NOT Q. Fíjate en el detalle: la salida Q depende de Q’, que a su vez depende de Q, que a su vez depende de Q’, que depende de Q, que depende de Q’,… De momento vamos a dejarlo ahí. Luego seguiremos razonando sobre esto.
  • Cuando R=0 y S=1. Este caso es más sencillo: en la puerta NOR de abajo, dado que S=1, Q’ siempre es 0. Da igual lo que entre por la primera pata de la puerta NOR: dado que por una de las patas ya entra un 1, la salida es siempre 0. Por lo tanto, a la puerta NOR de arriba le entran un 0 y otro 0, y por lo tanto la salida Q es un 1.
  • Cuando R=1 y S=0. Este caso es el espejo del anterior: en la puerta NOR de arriba, dado que R=1, Q siempre es 0. Por lo tanto, a la puerta NOR de abajo le entran sendos 0s, y por lo tanto la salida Q’ es 1.
  • Cuando R=1 y S=1. Este caso parece fácil, pero no lo es. Vamos a ver ahora la parte fácil y dejaremos la difícil para luego. Como R es 1, Q es siempre un 0, independientemente de lo que entre por la segunda para del NOR de arriba. Como S es 1, Q’ es siempre un 0, independientemente de lo que entre por la primera pata del NOR de abajo.

Vamos a resumirlo, ahora sí, en forma de tabla:

 

R

S

Q

Q’

0

0

?

?

0

1

1

0

1

0

0

1

1

1

0

0

Vamos a volver a leerlo, pero ahora en otro orden y con otras palabras:

  • Cuando solo la entrada S es un 1, la salida Q es un 1. Es por eso que la entrada S se llama Set en inglés, algo así como “poner”.
  • Cuando solo la entrada R es un 1, la salida Q es un 0. R viene del inglés Reset, que en este contexto sería algo así como “quitar”.
  • Cuando ambas R y S son un 0… ¿es realmente indeterminado? Si te fijas en la descripción de antes, veíamos que Q dependía de Q’, que dependía de Q, que dependía de Q’… y así hasta el infinito. Parece indeterminado. Es como si el mismo valor estuviera por ahí, debido a la realimentación, dando vueltas infinitamente. Pero ¿qué ocurre si antes de que ocurra R=0 y S=0, había por ejemplo R=0 y S=1? En ese caso, el “valor anterior” estaba claro. Era Q=1. Justo en el momento en que ponías 0-0 en la entrada… ese Q=1 se ponía a dar vueltas en el circuito, y allí se quedaba, manteniendo siempre Q=1. Lo análogo ocurre si anteriormente había R=1 y S=0: había un Q=0, que al pasar a R=0, S=0 se queda ahí dando vueltas y manteniendo siempre Q=0.

Así que podemos volver a escribirlo en la siguiente tabla

 

R

S

Q

Q’

0

0

Mantener

Mantener

0

1

1

0

1

0

0

1

1

1

X

X

Es decir, es un sistema con memoria: cuando ponemos S=1, se mete un 1 en esa memoria. Cuando ponemos R=1, se mete un 0 en esa memoria. Cuando dejamos que ambos R y S sean 0, simplemente mantiene la memoria de lo último que se metió.

¿No te parece curioso? Guardamos un 1 en esa memoria (poniendo R=0, S=1 en la entrada). Luego ponemos R=0,  S=0… durante horas, por ejemplo. Diez horas después vamos a mirar lo que hay en Q y ¡sigue habiendo un 1! Lo mismo ocurre (pero al contrario) si guardamos un 0 (poniendo R=1, S=0 en la entrada). Si luego volvemos a R=0, S=0, podemos mirar dentro de tres o cuatro horas y seguiremos viendo que en Q hay un 0.

¿Recuerdas cuando veíamos los circuitos combinacionales? Allí decíamos que la salida del circuito era siempre consecuencia de lo que había en la entrada. Bueno, pues ahora hemos inventado el biestable, y resulta que la salida ya no es solo consecuencia de lo que hay en la entrada, sino también de lo que hubo antes en la entrada. Es decir, el biestable tiene memoria (algo que no tenían los circuitos combinacionales).

En cuanto a la entrada R=1, S=1, es una entrada prohibida. En principio podría parecer que no importa, que debía ser algo correcto. Lo malo es que si desde R=1, S=1 pasamos directamente a R=0, S=0, tenemos un problema, porque tanto Q como Q’ son 0, y entonces no hay un valor concreto por ahí dando vueltas, sino que Q y Q’ valen ambas cero, y entonces el valor dando vueltas es cambiante (oscilante, se dice). En realidad ni siquiera eso ocurre, porque nunca jamás se pasa de 11 a 00 a la vez. Es imposible. En el mundo digital, podemos decir que las cosas son ideales y ocurren a la vez. Pero en el mundo físico, una de ellas habrá pasado de 1 a 0 un pelín antes que la otra, y será la segunda que pase de 1 a 0 la que marque el valor almacenado. El problema es que eso es algo sobre lo que no tenemos control, y eso nos disgusta.

Pero todo esto nos podría hacer preguntarnos… ¿este problema no ocurre en otros casos?

Sí, ocurre. No solo en el biestable, sino en los circuitos que alimentarán al biestable: los pasos de 0 a 1 no tienen por que ser limpios, no tienen por qué estar perfectamente sincronizados. Bien, pues eso es lo que intentaremos solucionar en el próximo capítulo.

 


Sobre el autor:

J ( )

 

{ 1 } Comentarios

  1. Gravatar Inquieto | 24/04/2013 at 03:17 | Permalink

    Felicidades J, me encanta esta serie :) gracias por escribirla

    saludos

Escribe un comentario

Tu dirección de correo no es mostrada. Los campos requeridos están marcados *

Al escribir un comentario aquí nos otorgas el permiso irrevocable de reproducir tus palabras y tu nombre/sitio web como atribución.