Floorplanning can improve setup slack (TNS, WNS) by reducing the average route delay. During implementation, the timing engine works to resolve the worst setup violations and all hold violations. Floorplanning improves only setup slack.
Manual floorplanning works best when the netlist has hierarchy. Design analysis slows significantly when synthesis flattens the entire netlist. Configure synthesis to generate a hierarchical netlist. For Vivado synthesis, use:
-
synth_design -flatten_hierarchy rebuiltor
- The Vivado Synthesis Defaults strategy
Large hierarchical blocks with intertwined logical paths can be difficult to analyze. It is easier to work with designs where separate logical structures are in lower sub-hierarchies. Register all outputs of a hierarchical module to simplify analysis. Paths that pass through multiple hierarchical blocks are more difficult to analyze and place.