Reloj ajustable en HDL

1

Necesito generar un reloj ajustable en hdl (verilog) en altera cyclone II fpga usando sondas de señal (bloques que pueden cambiar su valor de salida a través de jtag, no es necesario volver a compilar el código). Se me ocurrió una solución que utiliza un contador y un comparador, la salida del comparador es el nuevo reloj, pero esta idea crea un reloj muy feo y me preguntaba si existe una solución mejor para esto.

En algunos fpgas (stratix) es posible utilizar un pll reconfigurable, pero desafortunadamente esto no se aplica al ciclón II.

Gracias por tu ayuda

Edición

: Reloj de entrada de 24 Mhz. Salida del reloj 1khz - 10Mhz, el reloj se usa para los bloques de transceptor y receptor, que simplemente envían bytes entre sí.

    
pregunta zdun8

1 respuesta

3

Si puede tolerar 42 ns de jitter de pico a pico (el período de su reloj de 24 MHz) en su reloj sintetizado, un enfoque de síntesis digital directa (DDS) probablemente sería viable. Esto simplemente requiere un registro acumulador y un sumador del mismo ancho. El MSB del acumulador se convierte en su reloj sintetizado.

No dijiste cuánta resolución de frecuencia necesitas. Para generar una salida de 1 kHz se requieren al menos 15 bits en su acumulador; esto le permitiría generar cualquier frecuencia que sea un múltiplo de 24 MHz / 2 15 = 732.42 Hz. Si agrega más bits, puede obtener una resolución más fina. Si desea una resolución de ~ 1 Hz, necesitará 25 bits, lo que le daría pasos de 0.715 Hz.

Para cualquier diseño DDS particular, el número de bits en el valor de configuración de frecuencia es el mismo que el número de bits en el sumador y el acumulador. Para cambiar la frecuencia, incluso sobre la marcha, solo se requiere cambiar ese valor (pero no su ancho).

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas