Skip to content

unary‐prescaler1:n

Juan Gonzalez-Gomez edited this page Dec 19, 2025 · 86 revisions

Circuito 070-unary-prescaler1:n

⬅️ Prev Navegar por los circuitos Next ➡️

Contenido

Ficha: Divisor del reloj del sistema entre n

Descargas

Descripción

Este circuito muestra el esquema de un prescaler unario 1:n. Se puede ver como la generalización del circuito unary-mod4

El prescaler unario 1:n genera una señal de salida cuya frecuencia está dada por la ecuación: $F_{out}=\frac{F_{sys}}{n}$. Para el caso de la placa Alhambra-II la frecuencia generada es $\frac{12}{n} Mhz$

Para generar esta señal se utiliza un contador unario módulo n. El circuito de este prescaler es similar a unary-modn, pero quedándose sólo con la salida del bit de la derecha

Prescaler 1:N

Definimos un prescaler 1:N como un circuito que genera a su salida una señal con frecuencia igual $\frac{F_sys}{N}$. Se trata de una señal periódica normalizada: los pulsos que genera son tics: tienen una anchura igual al periodo de reloj

Este circuito se implementa a partir de un contador unario módulo N (Circuito: unary-modn)

En esta tabla se resumen sus características:

PROPIEDAD VALOR
Implementación: Contador unario módulo N
Periodo: N ciclos
Estado: N-1 biestables
Ciclo de trabajo: 1/N
Fase inicial: i*360/N, con i ∈ [0, N-1]

Principio del prescaler unario

  • Para implementar un prescaler unario 1:N hay que utilizar un contador unario módulo N, y tomar como salida la del biestable de la derecha

Frecuencias generadas en la Alhambra-II

Con este prescaler genérico, ya somos capaces de generar muchas señales de temporización, cuyas frecuencias dependen del valor N: $F_{out}=\frac{F_{Sys}}{N}$

Para el caso de la placa Alhambra-II, sabemos que $F_{Sys}=12Mhz$, por tanto podemos generar señales de frecuencias $F_{out}=\frac{12}{N}Mhz$

NO son infinitas señales, porque N tiene un valor máximo, que depende del número de bistables totales (que son N-1). Así que, el valor máximo de N está determinado por los recursos internos de la placa Alhambra-II

Aproximadamente el número todal de biestables que podemos poner son de 7680, así que, aproximadamente, N es 7680. El valor de N va desde 2 hasta 7680

En esta tabla se muestran algunas de las frecuencias que se pueden obtener

Divisor (N) Prescaler Frecuencia Descripción
1 1:1 12Mhz Fsys: Reloj del sistema
2 1:2 6Mhz
3 1:3 4Mhz
4 1:4 3Mhz
6 1:6 2Mhz
12 1:12 1Mhz
120 1:120 100Khz
600 1:600 20Khz Comienzo del rango audible
1200 1:1200 10Khz Audible
7680 1:7680 1.5Khz (aprox) Audible. Frecuencia mínima

A partir de N=600, ya se obtiene una señal periódica de frecuencia 20Khz. Esta señal se encuentra dentro del rango audible. Es muy aguda, pero los humanos lo podemos percibir. Si esta señal se envía a un zumbador, seremos capaces de escuhar el pitido, aunque muy muy bajito, porque el ciclo de trabajo sería 1/600 = 1.7% aprox. Estamos enviando muy poca potencia

Para N=1200 obtenemos una señal de 10Khz, que también es audible. Esta ya no está en el límite: la escuchará cualquier humano sano

El valor máximo para N es de 7680 aproximadamente, lo que nos da una frecuencia mínima de 1.5Khz. Es decir, que con estos prescalers unarios la señal de menor frecuencia que podemos obtener es de 1.5KHz

Esto nos deja sin responder a la pregunta que teníamos abierta: ¿Cómo generar una señal de 1Hz?. Con los prescaler unarios necesitaríamos una FPGA muchísimo más grande. Pero podemos intuir que aunque estos prescaleers son muy sencillos, necesitamos una implementación más potente. Todavía nos queda un largo recorrido hasta llegar a ellos...

Árbol de relojes

Mediante los prescalers 1:n ya somos capaces de obtener señales de muchas frecuencias. Sin embargo, los prescalers unarios son todavía muy limitados. Requieren de muchos recursos (biestables) para obtener señales de baja frecuencia (como ya hemos visto). Por ello, en la práctica, como mucho los usamos para obtener hasta señales de 1Mhz (en la placa Alhambra-II). Este sería un árbol realista:

En los casos de estudio veremos cómo generar señales de 1Mhz, 100Khz y 10Khz, pero sólo como un ejemplo de implementación

Señal periódica

Un prescaler unario 1:N genera una señal periódica normalizada de periodo N. El oscilador asociado lo dividimos en N sectores, lo que nos da un incremento de fase mínimo: $Δφ_{min}=\frac{360}{N}$

La función digital la definimos así:

$$ f(φ) = \begin{cases} 1 & \text{si } φ \in [-Δφ_{min}, 0] \\ 0 & \text{resto de casos } \\ \end{cases} $$

La señal cambia de ciclo en las fases: $φ=iΔφ_{min}=i\frac{360}{N}$ con i ∈ [0, N-1]
En esta figura se muestra la representación gráfica:

Fase inicial

El oscilador puede comenzar en los valores 000...0, 100...0, 110...0 ... 111...1, que se corresponden con las fases iniciales $φ_0=iΔφ_{min}=i\frac{360}{N}$ con i ∈ [0, N-1]

Evolución del estado

Esta es la evolución del estado del circuito, en función de la fase inicial del oscilador

Diagrama de estado

El diagrama de estados es el mismo que unary-modn. La diferencia está en el valor inicial, que determina el punto de arranque y por tanto el valor de la señal en el instante inicial. En la figura se muestra el diagrama para la fase inicial de 0

Cronograma

Este es el cronograma de la señal cuando tiene una fase inicial de 0

Ciclo de trabajo

El ciclo de trabajo de todas las señales es el mismo: 1/N, con independencia de la fase inicial

Recursos

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

Caso de estudio: N=6

Construcción de un prescaler unario 1:6

Prescaler unario 1:6

PROPIEDAD VALOR
Implementación Contador unario módulo 6
Periodo 6 ciclos
Estado 5 biestables
Ciclo de trabajo 1/6 = 16.6%
Incremento de fase 360/6 = 60⁰

Implementación

Esta es la implementación en Icestudio

Medición

Medición de la señal de salida. Se comprueba que es de 2Mhz

Caso de estudio: N=12

Construcción de un prescaler unario 1:12

Prescaler unario 1:12

PROPIEDAD VALOR
Implementación Contador unario módulo 12
Periodo 12 ciclos
Estado 11 biestables
Ciclo de trabajo 1/12 = 8.3%
Incremento de fase 360/12 = 30⁰

Implementación

Esta es la implementación en Icestudio. Se han encapsulado los bloques con la puerta AND y sysdff en sus propios bloques: SYSDFF-AND6 y SYSDFF-AND4

En total hay 11 biestables, de los cuales 10 están en los bloques sysdff-and, y uno aislado con la puerta NOT a su salida

Así es como está implementado el bloque sysdff-and6:

Estos bloques son LOCALES para estos ejemplos. NO ESTÁN INCLUIDOS en ninguna colección estándar. Los usamos para hacer más sencilla la implementación en Icestudio, y poder escalar más fácilmente

Medición

Medición de la señal de salida. Se comprueba que es de 1Mhz

Caso de estudio: N=120

Construcción de un prescaler unario 1:120

Prescaler unario 1:120

PROPIEDAD VALOR
Implementación Contador unario módulo 120
Periodo 120 ciclos
Estado 119 biestables
Ciclo de trabajo 1/120 = 0.8%
Incremento de fase 360/120 = 3⁰

Implementación

Esta es la implementación en Icestudio. Se utilizan los bloques SYSDFF-AND12 y SYSDFF-AND10 para tener 119 Biestables, que son los que necesitamos para tener módulo N=120

  • Número de biestables: 9 * 12 + 10 + 1 = 119

Así es como está implementado el bloque sysdff-and12:

Medición

Medición de la señal de salida. Se comprueba que es de 100Khz

Caso de estudio: N=1200

Construcción de un prescaler unario 1:1200

Prescaler unario 1:1200

PROPIEDAD VALOR
Implementación Contador unario módulo 1200
Periodo 1200 ciclos
Estado 1199 biestables
Ciclo de trabajo 1/1200 = 0.08%
Incremento de fase 360/1200 = 0.3⁰

Implementación

Esta es la implementación en Icestudio. Se utilizan los bloques SYSDFF-AND120 y SYSDFF-AND118 para tener 1199 Biestables, que son los que necesitamos para tener módulo N=1200

  • Número de biestables: 9 * 120 + 118 + 1 = 1199

Así es como está implementado el bloque sysdff-and120:

Medición

Medición de la señal de salida. Se comprueba que es de 10Khz

Resultado

Para todos los valores de N, se enciende el LED D7, pero con una intensidad que disminuye con N

Conceptos nuevos

  • Señal periódica normalizada: Señal periódica que emite pulsos que son tics: tienen una anchura igual al periodo de reloj
  • Principio del prescaler unario: Para implementar un prescaler unario 1:N hay que utilizar un contador unario módulo N, y tomar como salida la del biestable de la derecha

Enlaces

Autor

Licencia

Clone this wiki locally