Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎10-06-2015

flatten vs rebuild options

I guess I don't fully  understand these two synthesis options.


If I select rebuild then some logic unrelated to a module hierarchy are swallowed up into that module.  If I select flatten then the modules stay nicely apart.  An example was a mig module I had was getting merged some of the logic from a codec module BUT I believe everything was on register boundaries.


Can someone point me to good explanations of the synthesis options?

0 Kudos
1 Reply
Registered: ‎01-16-2013



The following AR#52257 should answer your query:


-flatten_hierarchy: Determines how Vivado synthesis controls hierarchy.

  • - none: Instructs the synthesis tool to never flatten the hierarchy. The output of synthesis has the same hierarchy as the original RTL.
  • - full: Instructs the tool to fully flatten the hierarchy leaving only the top level.
  • - rebuilt: When set, rebuilt allows the synthesis tool to flatten the hierarchy, perform synthesis, and then rebuild the hierarchy based on the original RTL. This value allows the QoR benefit of cross-boundary optimizations, with a final hierarchy that is similar to the RTL for ease of analysis.



Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.

Did you check our new quick reference timing closure guide (UG1292)?