shift - Obijuan/Icestudio-Digital GitHub Wiki

Circuito 037-shift

⬅️ Prev Navegar por los circuitos Next ➡️

Contenido

Ficha: Principio de desplazamiento

Descripción

Este es el primer circuito en el que hay un desplazamiento espacial de un bit. Hay dos biestables D del sistema que están conectados en serie. Significa que la salida del primero está conectada directamente a la entrada del segundo. Esto provoca que el bit a 1 que está inicialmente en el biestable de la izquierda, en el siguiente ciclo se mueva hacia el biestable de la derecha

Por el biestable de la izquierda entra siempre un 0, porque está conectado al bit constante bit-0. De esta forma podemos considerar que el bit-0 es un generador de ceros. En cada ciclo genera un 0 que se mueve al biestable al que está conectado

El resultado de este circuito es que se genera un tic en el ciclo 1. Pero lo realmente importante es que hay un bit moviéndose de un biestable a otro. Esta idea tan báscia es crucial para generar circuitos más complejos

Principio de desplazamiento

Cuando se conectan dos biestables D en serie, denotados como origen y destino, el bit almacenado en el origen se transfiere al biestable destino en el siguiente ciclo de reloj

En esta imagen se muestran dos biestables D conectados en serie. En un momento determinado el biestable origen almacena el valor X y el destino Y

Supongamos ahora que en el ciclo N el biestable origen contiene el valor 1 y el destino un valor genérico Y. Como están conectados en serie, cuando llega el siguiente ciclo de reloj (N+1), el 1 se desplaza al biestable destino, y el biestable origen se carga con otro bit genérico que le viene por la entrada W

De esta forma observamos cómo este bit 1 se ha movido espacialmente desde el biestable origen al destino. Este principio es la clave del pensamiento espacial

El tablero de juego

Los biestables D son las casillas de mi tablero de juego. Nuestros circuitos los podemos ver como un juego de mesa, constituido por casillas donde hay fichas que se desplazan entre las casillas. Las fichas son los valores de estos biestables, que sólo pueden ser 0 ó 1

El estado del circuito en un instante dado, está dado por estas fichas

El tablero de juego asociado al circuito shift lo representamos como se indica en esta figura. Como hay 2 biestables D, el tablero tiene 2 casillas. La casilla de la izquierda está conectada a la de la derecha. Por la naturaleza de la conexión en serie, las fichas se mueven sólo en la dirección indicadas por las flechas. Se pueden mover de la casilla izquierda a la derecha, pero NO al revés

Para que el paralelismo con los juegos de mesa sea más claro, el valor del biestable lo podemos representar de otra manera: usando una ficha circular. Si el biestable tiene una ficha encima, significa que su valor es 1. Si NO tiene ficha, su valor es 0. Este es el tablero de juego del circuito shift con esta nueva notación:

Puedes aprender más sobre esta idea en la sección Tablero de juego y bucles espaciales del Cuaderno técnico CT18 de FPGAs Libres: Fundamentos. Sistema unario

Evolución del estado

Con esta nueva notación del tablero de juego, la evolución del estado se representa mediante el movimiento de las fichas en este tablero, teniendo en cuenta que este movimiento sólo se produce al pasar de un ciclo a otro

Este es el aspecto del tablero en cada ciclo de reloj. A partir del ciclo 2 el aspecto es siempre el mismo: ya no cambia. Es por tanto nuestro estado final

Esto se representa muy bien mediante una animación

Esta es la evolución de estado usando la notación clásica con los valores 0 y 1 para los biestables:

Diagrama de estados

Este es el diagrama de estado del circuito shift. El estado se representa mediante el valor de sus dos biestables. El estado inicial es 10, representando la idea de que el biestable izquierda vale 1 y el derecho 0

En el siguiente ciclo se pasa al estado 01, donde el 1 se ha desplazado hacia la derecha. En el siguiente ciclo se pasa al estado 00, donde ambos biestables valen 0. A partir del ciclo 2, el estado siempre es 00, y no se producen más cambios: Ya no hay movimiento de fichas en el tablero

Cronograma

La salida del circuito shift (D0) es la que se obtiene del segundo biestable. Sin embargo, para entenderlo todo mejor, en el cronograma se muestran las señales de salida de ambos biestables

Por un lado podemos hacer un análisis espacial en el que nos centramos en el movimiento de la ficha sobre el tablero, centrándonos en cómo es este movimiento, de dónde parte, a donde llega... y su evolución ciclo a ciclo

Por otro lado podemos hacer un análisis temporal, centrándonos en un señal concreta y viendo cómo cambia

Si nos centramos en la salida del primer biestable, por su estructura ya sabemos que se trata del circuito 0sysdff1 que genera un tic inicial (función tic0)

Si ahora nos fijamos en la salida del segundo biestable, la señal será la que hay por su entrada (tic0) retrasada 1 ciclo. Es decir, que el tic se desplaza 1 ciclo hacia la derecha (función tic1)

Circuito TIC1

El circuito abstracto TIC1 es un circuito secuencial que genera por su salida la funcion tic1, la cual se cambia de 0 a 1 en el ciclo 1 y vuelve a cero en el ciclo 2. Se trata de un tic que aparece en el ciclo 1

Si se conecta un LED a su salida, se verá que está apagado indefinidamente. En realidad está encendido durante el ciclo 1, pero como sólo dura un ciclo, el ojo humano no lo aprecia. Por ello, para nosotros es un circuito que mantiene el LED siempre apagado

Medición con el analizador lógico

Aprovechamos para hacer la medición de las señales de los dos biestables. Para ello necesitamos utilizar la señal time0, para detectar el BIT-BANG

Este es el resultado:

Recursos

Recurso Cantidad Máximo Descripcioin
LC 4 7680 Celdas lógicas
IO 2 256 Bloques de E/S

Conceptos nuevos

  • Conexión de Biestables D en serie: En este tipo de conexión, la salida de un biestable se lleva a la entrada del otro, de forma que un biestable puede transmitir información a otro biestable
  • Principio de desplazamiento: Cuando se conectan dos biestables D en serie, denotados como origen y destino, el bit almacenado en el origen se transfiere al biestable destino en el siguiente ciclo de reloj
  • Tablero de juego: Los circuitos los podemos ver como tableros de juego donde hay unas casillas (Biestables) que tienen unos valores que son nuestra Fichas. Estas fichas se mueven por el tablero, en cada ciclo, pasando de unos biestables a otros
  • Pensamiento espacial: Debido a que hay "fichas" en movimiento, en los circuitos podemos pensar espacialmente. Analizar cómo se mueven estos bits, y cómo avanzan por las casillas hasta llegar a donde se quiere
  • Circuito TIC1: Circuito que genera un tic en el ciclo 1

Importancia del circuito Shift

El circuito Shift, aunque parece muy simple, es un circuito clave, que abre muchas posibilidades nuevas:

Esto se debe a que es el primer circuito en el que hay MOVIMIENTO DE BITS. Es decir, que ahora además del tiempo, hay que tener en cuenta el desplazamiento de los bits de unos biestables a otros. Esta es la base para nuevas aplicaciones:

  • Transmisión de la información. Tanto dentro del circuito, como hacia el exterior
  • Es la base de los sistemas de comunicación: serie, i2c, spi... donde los bits se desplazan en serie
  • Es la clave para contar ciclos. A partir de este desplazamiento emerge la propiedad de poder contar ciclos de reloj: es decir, este desplazamiento de bits nos habilita el poder medir el tiempo

Enlaces

Autor

Licencia