Skip to content

1hot‐n‐timer

Juan Gonzalez-Gomez edited this page Jul 31, 2026 · 37 revisions

Circuito 080-1hot-n-timer

⬅️ Prev Navegar por los circuitos Next ➡️

Contenido

Ficha: Temporizador 1-hot de N biestables

Descargas

Descripción

Este circuito es un esquema de circuito que describe cómo construir un temporizador 1hot de N biestables, que es capaz de medir un tiempo de N-1 ciclos. Transcurrido ese tiempo, el temporizador activa su señal MAX. Esto nos permite saber con total precisión cuándo han transcurrido los N-1 ciclos tras el arranque del sistema en el ciclo 0 (el Bit-bang)

Su estructura es la misma que la del Circuito 1hot-n, pero se descartan las salidas de todos los biestables salvo la del situado en la derecha. Así, este circuito tiene en realidad una única salida (MAX), que indica cuándo han transcurrido los N-1 ciclos

De los N biestables del temporizador, 1 se utiliza para generar el tic inicial, que se inyecta en un registro de desplazamiento a la derecha de N-1 biestables, que es por donde se propaga este tic

Implementaciones equivalentes

El temporizador 1hot de N biestables tiene diferentes implementaciones equivalentes:

  • Implementación sólo con biestables: Sólo se utilizan componentes primitivos: Biestables y constantes

  • Implementación zero-sreg: Se usa un biestable que almacena el tic inicial, que luego se propaga a la derecha por el registro de desplazamiento

  • Implementación tic0-sreg: Componente tic0 en serie con un registro de desplazamiento a la derecha de N-1 bits. Esta es la implemención más compacta y con más abstracciones

Evolución del estado

El estado del circuito es el mismo que el de Circuito 1hot-n. Está formado por N biestables conectados en serie

Diagrama de estados

El diagrama de estados es el miso que el de Circuito 1hot-n

Cronograma

El cronograma sólo incluye una señal, la correspondiente a la salida del temporizador: MAX. Se activa una vez que han transcurrido los N-1 ciclos

Midiendo el tiempo

La señal MAX tarda un tiempo D en activarse desde que se enciende el circuito. Este tiempo, medido en ciclos es N-1. Pero si lo medimos en tiempo, la duración D en segundos es de:

$$D = (N-1).T = \frac{N-1}{F_{sys}}$$

Donde N es el número de biestables del contador 1-hot y T es el periodo de cada ciclo. Este periodo es la inversa de la frecuencia del reloj del sistema $F_{sys}$

Esta fórmula es muy importante porque nos permite determinar cuántos biestables necesitamos para esperar un tiempo D, o a la inversa, conocer cuánto tiempo tarda un temporizador unario de N biestables

Caso de estudio: temporizador 1-hot de 13 Biestables

Vamos a estudiar el caso particular de un temporizador 1hot de 13 biestables D del sistema. Como tiene 13 biestables, nos permite contar hasta el ciclo 12. Aplicando la fórmula anterior, podemos calcular la duración de esta señal. Como se está utilizando la placa Alhambra-II, sabemos que $F_{sys}=12Mhz$, y al tener 13 biestables, $N=13$

Sustituyendo en la fórmula tenemos que:

$$D = \frac{N-1}{F_{sys}} = \frac{12}{12Mhz} = \frac{1}{10^6} = 10^{-6} = {1µs}$$

Este circuito empieza a contar en el ciclo 0 y el LED0 se enciende con la señal MAX, cuando han transcurrido exactamente 1µs (un micro-segundo)

Esta es la implementación utilizando la representación tic0-sreg:

Mediciones con el analizador lógico

Todas las implementaciones son equivalentes. En este pantallazo se muestran las mediciones para la implementación tic0-sreg

Comprobamos que efectivamente el temporizador se activa transcurrido 1µs

Limitaciones en el tiempo medido

¿Cuál es el tiempo máximo que podemos medir? Dado que es un temporizador 1-hot de ${N-1}{max}$ ciclos, necesitamos $N{max}$ biestables. Sabiendo que en total tenemos 7680 celdas lógicas en la placa Alhambra-II, llegamos a la conclusión de que como mucho podríamos contar hasta 7680 ciclos (sería uno menos, pero lo redondeamos)

Si esto lo pasamos a tiempo (calculando $$D_{max}$$), tenemos que el tiempo máximo que se puede medir es:

$$D_{max} = \frac{{N-1}_{max}}{F_{sys}} = \frac{7679}{12Mhz} = 640x10^{-6} = 640µs$$

¡¡Sólo podemos medir un tiempo igual a 640µs (aprox.)!! Este tiempo es similar al del circuito unary-n-timer (aunque mide un ciclo menos)

Recursos

En cada celda lógica hay un biestable D. Por tanto para implementar un temporizador 1hot de N biestables necesitamos al menos N celdas lógicas. Debido a la inclusión de la constante 0, necesitamos un bloque adicional, porque lo que, de manera general (y aproximada) el número celdas lógicas utilizadas por un temporizador unario de N marcas es de N+2

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

Conceptos nuevos

  • No hay conceptos nuevos introducidos

Enlaces

Autor

Licencia

Clone this wiki locally