813ee4c962
The previous attempt put BUFIO inside u_core/gen_ft_bufr, but the pad (ft_clkout) and its inferred IBUF live at the top wrapper level. Vivado shape-packs IBUF↔BUFIO into the same IOB tile, and it couldn't do that across the wrapper→u_core hierarchy boundary — producing CRITICAL WARNING [12-1411] "Illegal to place BUFIO on TIEOFF site" and WNS=-5.737 (worse than the CLOCK_DEDICATED_ROUTE=FALSE baseline). Fix: instantiate IBUF+BUFIO+BUFR explicitly in radar_system_top_50t.v and pass the BUFR output into u_core.ft601_clk_in. radar_system_top.v now does a pass-through wire assign for USB_MODE=1 (no BUFG) so the clock net doesn't get double-buffered.