Estoy tratando de generar un reloj de 40MHz en una clase de lucha de 100Mhz FPGA con Verilog CODE, redirigí el reloj a un pin para verificar los 100Mhz:
assign pin1= clock; //gives me an 100MHz clock
assign pin2= ~clock; //gives me an 100MHz inverse clock
siempre bloquea
reg clock1;
reg [4:0] prescaler1;
always @(posedge clk) begin
if(reset==1'b1)begin
clock1=1'b0;
prescaler1=2'b0;
end else begin
if(prescaler1==2'b01) begin
clock1=~clock1;
prescaler1=1'b0;
end else begin
prescaler1=prescaler1+1'b1;
clock1=clock1;
end
end
end
me da 50, 25, 16.66, 12.5MHz dependiendo del prescaler configurado en 0, 1, 2, 3
¿Hay un truco para hacerlo?
Es un Zedboard Zynq-7000 Z-7020 XPS te permite asignar 4 relojes de tela PL, pero creo que tienen que ser múltiplos de 33MHz.
¿Cuál es la diferencia de ARM_PLL IO_PLL y DRR_PLL