Cómo duplicar la frecuencia de mi reloj con diseño digital

6

Estoy tratando de duplicar la frecuencia de mi reloj usando solo puertas, chanclas o lo que sea, pero desafortunadamente recibo una señal de que el ciclo de trabajo está lejos del 50%. Desafortunadamente, tengo que desarrollar mi sistema usando FPGA pero el chip con el que trabajo no es compatible con un PLL, así que antes de intentar trabajar con otra placa, quiero estar seguro de que no puedo obtener la doble frecuencia de mi reloj de entrada. La frecuencia de entrada de mi sistema es de 10 MHz y quiero hacer una señal de 20 MHz. Lo he hecho usando el circuito adjunto y también lo he medido, pero el ciclo de trabajo no es satisfactorio en absoluto. Por favor, agradecería si alguien pudiera sugerir algo que pueda ser útil.

Aquí está el circuito que he usado.

    
pregunta George.K

4 respuestas

12
  

Estoy tratando de duplicar la frecuencia de mi reloj usando solo puertas, voltear   fracasos o lo que sea

Comience con un reloj de 20 MHz (que se incluye bajo el paraguas "lo que sea") y redúzcalo a 10 MHz cuando sea necesario usando un divisor de reloj de flip-flop.

    
respondido por el Andy aka
7

Generalmente se requiere un PLL para lograr lo que quieres hacer. Tratar de usar solo la lógica para hacer esto requiere la adición de algunos retrasos adicionales a través de las constantes de tiempo R / C para llevar los pulsos 2x a cerca del 50% del ciclo de trabajo. Sin embargo, eso generalmente no ocurrirá dentro de un FPGA sin llevar algunas señales a los pines en la parte donde el R / C se puede conectar y luego enviar de vuelta a otros pines. Otra limitación es que dicho esquema no será correcto en un ciclo de trabajo del 50% y para un conjunto dado de valores de R / C solo será útil en un rango estrecho particular de frecuencia de entrada.

    
respondido por el Michael Karas
2

Duplicar la frecuencia puede ser tan simple como esto:

gracias al retardo de propagación de la puerta (en realidad lo usé para overclockear un TRS-80 cuando era joven).

La solución del problema del ciclo de trabajo se podría hacer (aproximadamente) cambiando el número de puertas en serie, pero solo funcionaría para una frecuencia (y probablemente sería sensible a las características de los componentes, la temperatura, etc.)

Puedes duplicar la frecuencia dos veces y dividirla una vez con un flip-flop para obtener una señal perfectamente cuadrada, como dijo Andy.

    
respondido por el philfr
1

Para duplicar limpiamente la frecuencia de un reloj de entrada aplicado, se necesitaría un PLL, un FLL u otro circuito similar. Sin embargo, dependiendo de lo que intenta hacer, si necesita generar dos eventos de reloj en respuesta a un estímulo de reloj externo sobre el cual no tiene control, dos enfoques a los que llamo "putt-putt-wait" y "putt- putt-skip "podría ser mejor.

Para "putt-putt-skip", necesita un oscilador de funcionamiento libre que funcione más de tres veces (preferiblemente más de cuatro veces) tan rápido como el reloj de entrada. Cuente cuántos pulsos se han recibido en el reloj de entrada y cuántos se han emitido. En cada reloj del oscilador local, enganche el número de conteos de la entrada de referencia y emita un pulso si el conteo previamente bloqueado no es igual a la mitad del número de pulsos de salida. Tenga en cuenta que basar el pulso de salida en el conteo previamente enganchado agregará un valor de demora de fase de un reloj local adicional, pero evitará cualquier posibilidad de emitir pulsos de reloj metaestables o "runt".

Para "putt-putt-wait", necesita un oscilador que se pueda iniciar y detener sin problemas; el oscilador debe ejecutarse siempre que el recuento de referencia no sea igual a la mitad del número de pulsos de salida, y detenerse siempre que sea igual. Si el oscilador puede iniciarse y detenerse sin problemas, este enfoque puede generar una relación de fase más consistente entre las formas de onda de entrada y salida que la que haría putt-putt-skip. También puede ser más eficiente energéticamente.

Ambos enfoques producirán resultados cuya relación de fase no sea tan limpia en relación con la onda de referencia como lo sería un PLL o FLL que ha tenido tiempo de adquirir un bloqueo . Por otro lado, si el reloj de referencia se puede iniciar y detener, un PLL o FLL requerirá una cierta cantidad de tiempo para volver a adquirir un bloqueo cada vez que la onda de referencia se detenga y reinicie, y hasta que el bloqueo se vuelva a adquirir, su fase de salida será Básicamente al azar en relación con la entrada. Por el contrario, los enfoques putt-putt-skip o putt-putt-wait emitirán un par de pulsos que siguen dentro de ventanas bien definidas cada pulso de reloj de entrada recibido, independientemente de si esos pulsos forman un tren continuo, o se inician y detienen periódicamente .

    
respondido por el supercat

Lea otras preguntas en las etiquetas