Conversión de reloj de 100MHz a 65MHz para VGA

2

He escrito algunos códigos HDL para convertir la frecuencia del reloj en FPGA (100MHz) a una frecuencia que sea compatible con mi monitor VGA (65MHz):

reg FLAG = 0;
reg [26:0]count;
always@(posedge clock)
begin
    if(reset)
    count <= 'd0;

    else if(count==65000000)
    begin
        FLAG = 1;
        count <= 'd0;
    end
    else
    begin
        count <= count+1;
        FLAG=0;
    end
end

El valor de la bandera seguiría cambiando de 0 a 1 con una frecuencia de 65MHz, pero eso no está aparentemente funcionando para mí. ¿Alguien puede señalar el error aquí? Además, ¿hay una mejor manera de convertir una frecuencia de reloj a otra?

    
pregunta archity

2 respuestas

2

Respondiendo a mi propia pregunta, utilicé el Clocking Wizard, que forma parte de Vivado, gracias a @Naz por indicarme la dirección correcta. Clocking Wizard crea un módulo para usted y, según sus especificaciones, puede generar cualquier frecuencia de reloj desde ese módulo.

El asistente de reloj se puede encontrar en Project Manger- > IP Catalog- > FPGA Features and Design- > Clocking.

Para obtener más detalles sobre el uso correcto de Clocking Wizard, me referí al siguiente enlace: enlace

    
respondido por el archity
3

Vas a tener que crear una instancia de un DCM o PLL para hacer esto. Consulte la sección de sincronización en el manual del FPGA que está utilizando para saber cómo hacerlo correctamente. Tendrá que hacer algo como 100 MHz / 10 * 65/10 = 65 MHz o quizás 100 MHz * 13/20 = 65 MHz. Deberá asegurarse de que el VCO funcione en el rango de frecuencia adecuado.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas