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.