FPGA de Xilinx, error al crear el reloj generado

3

Acabo de recibir una placa Digilent Basys 3 (Artix-7 FPGA) y estoy intentando crear un programa para transmitir datos a través de la conexión UART-USB. Escribí un módulo, pero cuando intenté implementarlo, recibí un error de tiempo. He estado usando el reloj estándar de 100 Mhz que viene con la placa. Ahora creo que necesito algo más lento como 50 Mhz. No creo que pueda cambiar el reloj estándar ya que el tablero lo fija en 100 Mhz, así que creo que necesito crear un reloj generado. Agregué las siguientes líneas a mi archivo xdc.

set_property PACKAGE_PIN W5 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
create_clock -period 10.000 -name sys_clk_pin -waveform {0.000 5.000} -add [get_ports clk]

create_generated_clock -divide_by 2 -source [get_ports clk] [get_ports clk2]

Entonces me sale el error. El reloj clk2 generado no tiene una ruta lógica del reloj maestro sys_clk_pin. Me estoy perdiendo un paso. ¿Necesito hacer algo más que crearlo en el archivo XDC? Aquí está el encabezado de mi módulo de nivel superior.

module serial_emitter(
    output RsTx,
    input RsRx,
    input clk,
    input clk2,
    output [3:0] an,
    output [6:0] seg);

Quiero que el reloj más lento se asigne a la entrada clk2.

    
pregunta chasep255

1 respuesta

2

Has restringido el reloj para el análisis de tiempo estático, pero en realidad nunca escribiste la lógica para dividir un reloj entre dos:

reg r_clk_div;
always @(posedge i_clk) begin

   r_clk_div  <=  !r_clk_div;

end

assign o_clk2 = r_clk_div;

Esto debería sintetizarse en un DFF sincronizado por el reloj de entrada, Q atado a D a través de un inversor, y luego la salida Q es su nuevo reloj. Su restricción le dice a las herramientas que ha generado este reloj a partir de un reloj / recurso existente y debe tratarlo en consecuencia.

Tenga en cuenta que no tengo un reinicio para este divisor ya que no vi uno en su módulo, pero puede que no sea una mala idea evitar la estabilidad meta temporal.

Disculpas por los errores tipográficos, estoy en el móvil.

    
respondido por el Krunal Desai

Lea otras preguntas en las etiquetas