Repository navigation
1hot‐n‐timer
| ⬅️ Prev | Navegar por los circuitos | Next ➡️ |
|---|
- Ficha: Temporizador 1-hot de N biestables
- Descargas
- Descripción
- Implementaciones equivalentes
- Evolución del estado
- Diagrama de estados
- Cronograma
- Midiendo el tiempo
- Caso de estudio: Temporizador 1-hot de 13 biestables
- Mediciones con el analizador lógico
- Limitaciones en el tiempo medido
- Recursos
- Conceptos nuevos
- Enlaces
- Autor
- Licencia
- Circuito Icestudio: Caso de estudio: 1hot-n-timer.ice
- Ficha circuito: (SVG) (PDF) (PNG)
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
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
El estado del circuito es el mismo que el de Circuito 1hot-n. Está formado por N biestables conectados en serie
El diagrama de estados es el miso que el de Circuito 1hot-n
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
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:
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
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
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
Sustituyendo en la fórmula tenemos que:
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:

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
¿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
¡¡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)
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 |
- No hay conceptos nuevos introducidos
- Colección iceK: Colección para Icestudio. Constantes
- Colección iceSignals
- Colección iceSRegs: Colección para Icestudio. Registros de desplazamiento
- 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