unary‐ii - Obijuan/Icestudio-Digital GitHub Wiki

Circuito 038-unary-ii

⬅️ Prev Navegar por los circuitos Next ➡️

Contenido

Ficha: Contador unario de ciclos, de 2 marcas

Descripción

Este es el primer circuito que nos permite contar. La forma más básica de contar es mediante el sistema unario, en el que sólo se usa una marca. Por cada elemento a contar se dibuja una marca. Este sistema, aunque muy primitivo, todavía lo seguimos usando cuando contamos con los dedos, cuando contamos votos en una pizarra, o cuando los presos marcan en las paredes de sus celdas los días que llevan encerrados

Puedes encontrar más información sobre el sistema unario en el cuaderno ténico CT18: Fundamentos. Sistema unario

El circuito presentado en esta lámina sólo permite contar hasta 2. Para almacenar las marcas se usan 2 Biestables. El valor del biestable indica si está marcado o no. Así, una valor de 1 significa marca. Un valor de 0 es la ausencia de marca

La cuenta unaria de 2 marcas se puede describir así, usando el elemento 🟢️ como marca:

  • Ninguna marca (significa 0)
  • 🟢️: Una marca. Significa 1
  • 🟢️🟢️: Dos marcas. Significa 2

Los dos biestables son las casillas donde puede o no haber marca. La representación anterior la podemos poner así en forma de tabla, a partir de los valores de los biestables

Biestable B1 Biestable B2 Descripción
0 0 Estado inicial. Cuanta a 0
1 0 Una marca. Cuenta a 1
1 1 Dos marcas. Cuenta a 2. Estado final
1 1 Dos marcas. Cuenta a 2. Estado final
... ... Estado final

Vemos que este contador llega hasta 11 (🟢️🟢️, dos marcas), y se queda en este estado

¿Pero qué es lo que cuenta este contador?

Este contador tan básico en realidad está contando ciclos. La tabla la podemos redefinir así:

Ciclo Cuenta unaria Cuenta decimal Descripción
0 0 Estado inicial. Ciclo actual: 0
1 🟢️ 1 Ciclo actual: 1
2 🟢️🟢️ 2 Estado final. Ciclo actual: 2 (ó mayor)
3 🟢️🟢️ 2 Estado final...

A partir del ciclo 2 la cuenta alcanza su valor máximo y por tanto el contador satura

Si nos fijamos en la salida del biestable B0, vemos que se pone a 1 cuando alcanza el valor máximo. Mirando la información de este biestable sabemos que el número de ciclos será >=2. En el flanco de subida de esta señal sabremos que estas exactamente en el ciclo 2

Por eso, esta señal la denominamos MAX. Hemos alcanzado el valor máximo. Estamos en saturación

Contando hasta el ciclo 2

Como sólo tenemos 2 biestables, sólo podemos representar 2 marcas y por tanto sólo podemos contar hasta 2. En esta figura se representa la evolución del estado a medida que transcurren los ciclos. En vez de los valores 1 y 0 se utiliza la marca 🟢️ y su ausencia

La salida de estos biestables está conectada a los LEDs 7 y 6 respectivamente. Si pudiésemos ver el funcionamiento del circuito a cámara lenta, veríamos cómo en estos LEDs aparece la cuenta en unario, que nos indica el ciclo en el que estamos, hasta que se alcanza el valor máximo (2), donde saturamos y ya no sabemos exactamente en qué ciclo estamos

En esta animación veríamos esta cuenta:

Aunque es una forma muy rudimentaria, mirando el estado sabemos en qué ciclo estamos:

  • Estado 00: 100% de seguridad que estamos en el ciclo 0
  • Estado 10: 100% de seguridad que estamos en el ciclo 1
  • Estado 11:
    • Si flanco de subida en biestable B0, 100% que estamos en el ciclo 2 _ Resto de casos, 100% seguro que estamos en un ciclo mayor a 2. Es decir, que podemos garantizar que al menos han pasado 2 ciclos desde el arranque del circuito

Contando tiempo

¿Y qué utilidad tiene contar el tiempo? Los circuitos que estamos haciendo hasta ahora son tan simples que apenas tiene utilidad. No obstante, ya somos capaces de generar señales de arranque de otros circuitos. Podemos tener circuitos que estén inactivos hasta que los arranquemos en los ciclos que nosotros queramos: uno en el ciclo 0, otro en el 1 y otro en el 2. Basta con usar la señal generada por este contador unario (función step)

Diagrama de estados

Este es el diagrama de estado del circuito unary-ii. El estado inicial es 00, que representa la cuenta 0 (ciclo 0)

En el siguiente ciclo se pasa al estado 10 (ciclo 1 en unario) y luego al estado final 11 (ciclo 2 en unario). A partir del ciclo 2, el estado siempre es 11, y no se producen más cambios: Ya no hay movimiento de marcas en el tablero

Cronograma

La salida del circuito unary-ii la podemos tomar de cualquiera de los biestables B1 ó B0. La señal correspondiente a B1 es la que ya conocemos del circuito sysclk-conn: un escalón en el ciclo 1. Esta señal se puede utilizar como señal de arranque para señalizar a otro circuito que puede comenzar

La señal nueva es la que se saca de B0. Es un escalón en el ciclo 2. O lo que es lo mismo, un escalón en el ciclo 1 al que se le aplica un retraso de 1 ciclo

Pero esta señal, además, tiene otro significado muy importante cuando estamos utilizando este circuito como contador de ciclos: La señal MAX

Esta señal se pone a 1 cuando el contador a alcanzado su valor máximo. Nos está indicado en qué ciclo el bit 1 que se desplaza llega al biestable de más a la derecha, y por tanto ya no se podrá propagar más

Circuito UCONT2

El circuito UCONT2 es un circuito que cuenta en unario en 2 LEDs. Como funciona a la velocidad del reloj del sistema, esto es, muy rápido, los humanos no apreciamos esta cuenta. Simplemente veremos cómo hay 2 LEDs encendidos, correspondientes a las 2 marcas de la cuenta unaria. El significado es: estamos en un ciclo mayor a 2

Medición con el analizador lógico

Realizamos la medición de las señales de los dos biestables. Necesitamos utilizar la señal time0, para detectar el BIT-BANG

Este es el resultado:

Recursos

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

Conceptos nuevos

  • Contador. Este es el primer circuito que realiza una cuenta, aunque de manera rudimentaria
  • Contador unario. Este es el primer circuito que cuenta en unario, con dos marcas
  • Contador de tiempo. Este es el primer circuito que cuenta tiempo. Es decir, que tiene noción de en qué ciclo estamos, y así poder reaccionar a eso
  • Señal MAX: Es la señal que se pone a 1 cuando el contador alcanza su valor máximo (En los siguientes ciclos saturará)

Importancia del circuito

El circuito Unary-ii es otro circuito clave, que abre muchas posibilidades nuevas:

  • Debido al movimiento de sus bits, este circuito es capaz de contar. Esta es una habilidad nueva que hasta ahora NO TENIAMOS
  • Además, lo que cuenta este circuito son ciclos. Esto nos permite cronometrar. Ahora sabemos cuánto tarda en llegar una señal, o activar una señal transcurridos un número de ciclos

Enlaces

Autor

Licencia