report_qor_suggestions
Tcl command.Lower performance high fanout nets can be moved onto the global
routing by inserting a clock buffer between the driver and the loads. This
optimization is automatically performed in opt_design
for nets with a fanout greater than 25000 only
when a limited number of clock buffers are already used and the clock period
of the logic driven by the net is above the limit specific to the targeted
device and speed grade. To support
high fanout nets on global routing in Versal devices, BUFG_FABRIC cells can be placed
on BUFG_FABRIC sites that exist throughout the device in NoC
columns.
You can force synth_design
and
opt_design
to insert a clock buffer
when setting the CLOCK_BUFFER_TYPE attribute on a net in the RTL file or in
the constraint file (XDC). For example:
set_property CLOCK_BUFFER_TYPE BUFG_FABRIC [get_nets netName]
Using global clocking ensures optimal routing at the cost of
higher net delay. For best performance, clock buffers must drive sequential
loads directly, without intermediate combinatorial logic. In most cases,
opt_design
reconnects
non-sequential loads in parallel to the clock buffer. If needed, you can
prevent this optimization by applying a DONT_TOUCH on the clock buffer
output net. Also, if the high fanout net is a control signal, you must
identify why some loads are not dedicated clock enable or set/reset
pins.
The placer also automatically routes high fanout nets (fanout
> 10000) on any global routing tracks available after clock routing is
performed. This optimization occurs towards the end of the placer flow and
is only performed if timing does not degrade. You can disable this feature
using the -no_bufg_opt
option.