He escrito un código HDL para convertir la frecuencia del reloj en FPGA (100 MHz) a una frecuencia compatible con mi monitor VGA (65 MHz):
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 65 MHz, pero aparentemente eso no funciona para mí. ¿Alguien puede señalar el error aquí? Además, ¿hay una mejor manera de convertir una frecuencia de reloj a otra?
Vas a tener que instanciar un DCM o PLL para hacer esto. Consulte la sección de sincronización en el manual de la FPGA que está utilizando para saber cómo hacerlo correctamente. Deberá 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.
Respondiendo a mi propia pregunta, utilicé Clocking Wizard, que forma parte de Vivado, gracias a @Naz por orientarme en la dirección correcta. Clocking Wizard crea un módulo para usted y, según sus especificaciones, puede generar cualquier frecuencia de reloj a partir de ese módulo.
El asistente de reloj se puede encontrar en Project Manager->Catálogo IP->Características y diseño de FPGA->Clocking.
Para obtener más detalles sobre el uso correcto de Clocking Wizard, consulte el siguiente enlace: http://gadgetfactory.net/learn/2017/02/22/fpga-clocking-clocking-wizard-in-xilinx-ise/#Run_the_clocking_wizard_to_generate_your_desired_clocks
Jim Dearden
Claudio Avi Chami
david tweed
tubo
archidad
tubo
archidad
david tweed
el fotón
tubo
nazar
archidad
nazar
archidad
nazar