VHDL: ¿Por qué el divisor de frecuencia contrarresta el máximo en uno menos de la mitad del período?

0

En este tutorial sobre cómo crear un divisor de frecuencia en VHDL, transformamos a 50MHz entrada en una salida de 200Hz con un proceso que cuenta de 1 a 124999. La guía ofrece una explicación de por qué se eligió 124999 y no de 250000, pero no estoy claro por qué se eligió 124999 en lugar de 125000. Probablemente me haya confundido. algunos problemas de conteo off-by-one, pero apreciaría una explicación más detallada aquí. Para referencia, la discusión del límite 124999 se reproduce a continuación.

  

El proceso de selección de frecuencia, líneas 16 a 28, genera 200Hz   señal utilizando un contador del 1 al 124999. ¿Por qué 124999 y no 250000?   Una señal de reloj es una onda cuadrada con un 50% de ciclo de trabajo (al mismo tiempo   activo e inactivo); Para este caso, 125000 ciclos activos y 125000.   ciclos inactivos. Dado que el contador comienza en cero, el límite superior   es 125000 - 1.

    
pregunta Kvass

1 respuesta

1

0 a 124999 es exactamente 125000 cuentas. Comenzar desde cero es una convención simple que puede simplificar un poco más el código (como trabajar con listas y punteros), pero significa que incrementa a uno menos que la cantidad de iteraciones que necesita.

Generalmente, cuando construyes un divisor como este, estás interesado en el medio período para que puedas invertir una vez cada medio período y obtener una forma de onda con un ciclo de trabajo perfecto del 50%.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas