Repository navigation
unary‐mod3
| ⬅️ Prev | Navegar por los circuitos | Next ➡️ |
|---|
- Ficha: Contador unario módulo 3
- Descargas
- Descripción
- Ruta de datos y control
- Evolución del estado
- Diagrama de estado
- Cronograma
- Medición con el analizador lógico
- Contadores módulo N
- Señales periódicas
- Ciclo de trabajo
- Visualización en los LEDs
- Recursos
- Conceptos nuevos
- Importancia del circuito
- Enlaces
- Autor
- Licencia
- Circuito Icestudio: unary-mod3.ice
- Ficha circuito: (SVG) (PDF) (PNG)
Este circuito es un contador unario de 2 marcas, que realiza la cuenta que ya conocemos: 00, 10 y 11. PERO tiene la particularidad de que vuelve automáticamente a la cuenta 00 tras llegar a su valor máximo 11. Es decir, que es un contador que está contando continuamente, pero volviendo siempre al principio. Este tipo de contadores reciben el nombre de contadores módulo N, siendo N en número de estados por los que pasa el contador. En este circuito el circuito es módulo 3, ya que pasa por 3 cuentas diferentes: 00 (inicial), 10 y 11(valor máximo)
¿Qué es lo que hace que el contador vuelve al comienzo al alcanzar el valor máximo? Utilizamos la señal MAX del contador, que es la que sale del biestable de más a la derecha, para realizar el RESET del circuito
De hecho, este circuito es muy parecido a unary-ii-rst, pero la señal de reset se obtiene del propio circuito en vez de llegar el exterior. Ahora el reset se realiza automáticamente, cada vez que se alcanza el valor máximo, en vez de hacerse de manera manual
Debido a esto, este es el primer circuito que está constantemente en funcionando. Y NUNCA PARA, hasta que no se quite la alimentación
El contador unario de 2 marcas tiene la señal MAX que indica cuándo se ha alcanzado su valor máximo. Esta señal es la que se introduce en el circuito de contol para generar la microórden de RESET (en realidad la de enable, que es su negada) y esta es la que se realimenta en el propio circuito para provocar su vuelta al estado inicial
Es gracias a esta señal de feedback por lo que el circuito vuelve a su estado inicial y se realizan las repeticiones
La cuenta empieza en el Ciclo 0, y se repite periódicamente cada 3 ciclos de reloj: 00, 10 y 11
Las transiciones del estado se producen en cada ciclo, por eso no se pone la señal que genera esta transición. El diagrama de estados forma un bucle espacial, en el que se pasa de un estado al siguiente en cada ciclo, y del último se vuelve al primero
Viendo este diagrama comprendemos perfectamente que el estado del circuito nunca para, y que está dando vueltas constantemente, a la velocidad del reloj del sistema. Se trata de un diagrama de estados cerrado, que da vueltas sobre sí mismo
En el cronograma se aprecia cómo las señales D7 y D6 son periódicas. Se muestra su funcionamiento desde el ciclo 0, pero en realidad esto se propaga hasta el infinito, hasta que la alimentación se quite. El que las señales sean periódicas es debido a que su estado se repite, debido a la señal de feedback
Debido a que este circuito genera señales periódicas, NO ES NECESARIO comenzar la captura en el BIT-BANG. Por tanto NO NECESITAMOS la señal time0. Basta con utilizar alguna de las dos señales de estado. En el pantallazo se ha utilizado el flanco de bajada de la señal b1 para comenzar la captura

En la captura se comprueba que efectivamente las señales son periódicas, debido a que el estado se repite cíclicamente. Se ha añadido un contador de ciclos de reloj, que comienza en 0, pero NO significa que sea el ciclo 0, sino el primer ciclo a partir de la captura (y la captura se ha elegido para que sea similar a lo que ocurre en el ciclo 0 del Bit-Bang)
Este circuito es un contador unario de 2 marcas, que realiza la cuenta que ya conocemos:
- Ciclo 0:
- Ciclo 1: 🟢
- Ciclo 2: 🟢🟢
Vemos que para realizar esta cuenta el circuito pasa por 3 estados: 00, 10 y 11
Definimos un contador módulo N como aquel que pasa por N estados y los repite indefinidamente
Como este circuito es módulo 3, significa que pasa por 3 estados y los repite periódicamente: 00, 10, 11, 00, 10, 11... También nos fijamos que este contador módulo 3 está implementando como un contador unario de 2 marcas
Esta es una regla general:
Important
Un contador unario módulo N tiene N-1 marcas (N-1 biestables)
Important
Un contador unario de M marcas nos permite implementar un contador unario módulo M+1
El número de estados (N) siempre es una unidad mayor que la cantidad de marcas, debido al hecho de que en el sistema unario el número 0 (estado 0) se representa como la ausencia de marcas
Con este circuito ha resuelto el problema de la cuenta única, introducido en unary-n. La cuenta ya no es única, es decir, NO SE REALIZA UNA ÚNICA VEZ, sino que se realiza REPETIDAMENTE
Debido a esto, este es el primer circuito que genera señales periódicas. Basta con mirar la salida de sus biestables. Como el estado es periódico, cada una de estas señales sigue un patrón periódico. La señal b1 (la del biestable de la izquierda) sigue este patrón: 0, 1, 1... que se repite periódicamente. La señal b0 (biestable de la derecha) tiene este otro patrón periódico: 0, 0, 1
Ambas señales son periódicas, con un periodo de 3 ciclos, que es igual a su módulo. Esto nos permite describir esta otra regla general:
Important
Las señales generadas por el estado de un contador unario módulo N son periódicas, y tienen un periodo de N ciclos
Todas las señales que salen del estado son periódicas, y tienen el mismo periodo N. En lo que se diferencian es en la cantidad de ciclos que está la señal a 1 y 0
Para el caso del contador unario módulo 3 la señal b1 está 2 ciclos a 1, mientras que la señal b0 sólo está 1 ciclo a uno
Todas las señales periódicas tiene un parámetro que ya conocemos: su periodo: Es el número de ciclos que tarda la señal en repetirse. Pero las señales periódicas tienen otro parámetro muy importante: el ciclo de trabajo. Este parámetro nos indica el porcentaje de tiempo que la señal está a 1. Es decir, dentro de un periodo, cuánto tiempo está la señal a 1
El ciclo de trabajo nos indica la cantidad de energía que transmite la señal periódica. Hay dos casos extremos. Uno es cuando la señal NO está ningún ciclo a 0. Esto sólo ocurre con la señal constante 0, que por definición NO es periódica. El otro caso extremo es si la señal está todo el rato a 1, que en este caso se trata de la señal constante 1, y que tampoco es una señal periódica
Pero sí pueden ocurrir el resto de casos. Para una señal de periodo N, puede ocurrir que la señal está N-1 ciclos a '1', y el restante a 0, o la mitad de los ciclos a 1 (N/2) y la otra mitad a 0, o cualquier otra posibilidad.
En cualquiera de los casos, cuanto mayor es el ciclo de trabajo, mayor es la energía que porta esta señal digital
El ciclo de trabajo de una señal de periodo N ciclos, se define como la división entre la cantidad de ciclos que está la señal a 1 dividido entre la cantidad todal de ciclos (N)
En esta figura se muestran gráficamente los ciclos de trabajo de las dos señales generadas en el circuito unary-mod3: b1 y b0
La señal b1 tiene más energía que la señal b0
Cuando se prueba el circuito, y dado que las señales b1 y b0 son "muy rápidas", nuestro ojo lo que ve es que los dos LEDs están encendidos. PERO, la señal b1 transmite más energía al LED que la b0 dado que su ciclo de trabajo es mayor (66.6% frente al 33.3%)
Debido a esto ambas señales no se ven iguales en los leds, sino que b1 luce con un poco más de intensidad. Esta diferencia depende del LED utilizado. En los leds de la placa AP-LED8-THT, esta diferencia se aprecia muy poco porque se han usado leds de alta intensidad, que son muy eficientes, y con muy poca energía lucen mucho. Por ello no se aprecia bien la diferencia
Sin embargo, si se usan otros LEDs sí se aprecia mejor. Por ejemplo, si usamos los LEDs integrados en la placa Alhambra-II, por ejemplo LED0 y LED1, se aprecia un poco más esta diferencia de intensidad (aunque en la foto no se aprecia demasiado)
| Recurso | Cantidad | Máximo | Descripcioin |
|---|---|---|---|
| LC | 4 | 7680 | Celdas lógicas |
| IO | 3 | 256 | Bloques de E/S |
- Señal de Feedback (Realimentación): Es una señal generada en la ruta de datos que se vuelve a inyectar en el propio circuito, bien directamente o bien modificándola. Permite usar señales del circuito para controlar su comportamiento
- Este es el primer circuito en usar una señal de feedback
- Repeticiones: Cuando el circuito vuelve a su estado inicial y comienza a funcionar como si acabase de arrancar
- Este es el primer circuito que realiza repeticiones automáticamente. Estas repeticiones se realizan gracias a la señal de Feedback
- Señal periódica: Es aquella que tiene un patrón que se repite transcurrido un tiempo fijo denominado periodo (que lo medimos en ciclos)
- Este es el primer circuito en generar una señal periódica. Es debido a que su estado se repite
- Este circuito resuelve el problema de la cuenta única. Ahora la cuenta de 0 a 2 (en unario) se repite todo el rato
- Periodo: Son los ciclos que tarda una señal en repetirse
-
Ciclo de trabajo: Es la división entre el número de ciclos que la señal está a
1(en un periodo) dividido entre el periodo. Nos da información sobre la cantidad de energía que tiene la señal periódica (en cada periodo) - Contador módulo N: Es un contador que tiene N estados que se repiten. Cuando la cuenta alcanza su valor máximo, vuelve de nuevo al estado inicial
Este circuito ha resuelto el problema de la cuenta única, lo que nos permite generar un contador que NO se detiene nunca, y que repite su cuenta indefinidamente. Esta característica nos permite generar señales periódicas, que son la clave para la temporización
- iceGates: Colección de Icestudio con puertas lógicas
- Colección iceFF: Colección para Icestudio. Biestables
- Cuaderno ténico CT18 de FPGAs Libres: Fundamentos. Sistema unario
- Juan González-Gómez (Obijuan)
- shift
- shift-reg2
- sreg-02-sys-sr-basic🟡
- sreg-concat-left
- sreg-concat-right
- concat-sysdff-sreg2
- concat-sreg2-sysdff
- sreg-03-sys-sr-basic🟡
- concat-sreg2-sreg2
- sreg-04-sys-sr-basic🟡
- unary-ii🔵
- unary-iii
- unary-n🔴
- unary-ii-timer
- unary-ii-timer-bmax
- unary-iii-timer
- sreg-unary-ii-timer
- sreg-unary-iii-timer
- unary-n-timer
- sreg-unary-n-timer
- unary-ii-wait🔵
- unary-ii-wait2🔵
- unary-ii-wait2-simp
- unary-ii-rst
- unary-iii-rst
- unary-mod3🔵
- unary-mod4
- unary-modn
- unary-mod2🔵
- unary-prescaler1:2
- unary-prescaler1:2-ini
- unary-prescaler1:3
- unary-prescaler1:4
- unary-prescaler1:n
- heart-prescaler1:2🟡
- 1hot-ii🔵
- 1hot-iii
- 1hot-n
- 1hot-ii-timer
- 1hot-iii-timer
- zero-sreg-1hot-iii-timer
- tic0🟡
- tic0-sreg-1hot-iii-timer
- 1hot-n-timer
- 1hot-mod2🚧
🚧 TODO 🚧
- 🟡: Nuevo bloque introducido
- 🔵: Circuito importante
- 🔴: Presentación de limitaciones y retos a superar