What is auto-ungrouping? How does it impact the implementation flow?

Besides boundary optimization, auto-ungroup is another important synthesis optimization technique. By flattening design hierarchies for the benefit of PPA, it enables cross boundary optimization, and removes logic duplication, which often occurs for shared signals across replicated modules.

Auto-ungrouping will introduce hierarchy naming changes. For example, ungrouped hierarchies will use underscore “_” instead of slash “/” as the ungrouped naming separators. Therefore, auto-ungrouping imposes challenges for the implementation flow.

Challenges for STA Constraints

On one hand, STA constraints writing relies on RTL naming and design hierarchies. Design hierarchies with STA constraints applied are not preserved during ungrouping by default, causing STA constraints to either error-out or get silently dropped after the design hierarchy flattens.

On the other hand, it is not always possible to write all STA constraints with full instance names. If auto-ungrouping is enabled, RTL designers should examine and possibly rewrite all STA constraints.

If a certain design hierarchy has STA constraints specified, RTL designers should at least exclude it from ungrouping. RTL designers must always work with the STA team before enabling or evaluating auto-ungrouping.

Challenges for DFT

To make sure there is no impact on DFT checkers, RTL designers should exclude any scan or BIST hierarchies from ungrouping.

Challenges for Power Analysis

If a certain design hierarchy is critical for power analysis, RTL designers should preserve it and exclude it from ungrouping.

Challenges for ECO

For manual ECOs, it will be more difficult to correlate RTL hierarchy with netlist hierarchy. For tool assisted ECOs, however, major ECO tools in the market should support auto ungrouped netlist.

Challenges for LEC

By default, LEC tools will do name-based mapping. A design hierarchy change could lead to false LEC failures. RTL designers may have to manual keypoint mapping for ungrouped hierarchies.

Conclusion

To the minimum, RTL designers should carefully review the ungrouped instances before RTL freeze. Any critical design hierarchies, such as the ones with new features / blocks, must be signed-off by RTL designers.

Subscribe

Enter your email to get updates from us. You might need to check the spam folder for the confirmation email.

Leave a comment