Design closure explained

Design Closure is a part of the digital electronic design automation workflow by which an integrated circuit (i.e. VLSI) design is modified from its initial description to meet a growing list of design constraints and objectives.

Every step in the IC design (such as static timing analysis, placement, routing, and so on) is already complex and often forms its own field of study. This article, however, looks at the overall design closure process, which takes a chip from its initial design state to the final form in which all of its design constraints are met.

Introduction

Every chip starts off as someone’s idea of a good thing: "If we can make a part that performs function X, we will all be rich!" Once the concept is established, someone from marketing says "To make this chip profitably, it must cost $C and run at frequency F." Someone from manufacturing says "To meet this chip’s targets, it must have a yield of Y%." Someone from packaging says “It must fit in the P package and dissipate no more than W watts.” Eventually, the team generates an extensive list of all the constraints and objectives they must meet to manufacture a product that can be sold profitably. The management then forms a design team, which consists of chip architects, logic designers, functional verification engineers, physical designers, and timing engineers, and assigns them to create a chip to the specifications.

Constraints vs Objectives

The distinction between constraints and objectives is straightforward: a constraint is a design target that must be met for the design to be successful.[1] For example, a chip may be required to run at a specific frequency so it can interface with other components in a system. In contrast, an objective is a design target where more(or less) is better. For example, yield is generally an objective, which is maximized to lower manufacturing cost. For the purposes of design closure, the distinction between constraints and objectives is not important; this article uses the words interchangeably.

Evolution of the Design Closure Flow

Designing a chip used to be a much simpler task. In the early days of VLSI, a chip consisted of a few thousand logic circuits that performed a simple function at speeds of a few MHz. Design closure was simple: if all of the necessary circuits and wires "fit", the chip would perform the desired function.

Modern design closure has grown orders of magnitude more complex. Modern logic chips can have tens to hundreds of millions of logic elements switching at speeds of severalGHz. This improvement has been driven by Moore’s law of scaling of technology, and has introduced many new design considerations. As a result, a modern VLSI designer must consider the performance of a chip against a list of dozens of design constraints and objectives including performance, power, signal integrity, reliability, and yield. In response to this growing list of constraints, the design closure flow has evolved from a simple linear list of tasks to a very complex, highly iterative flow such as the following simplified ASIC design flow:

Reference ASIC Design Flow

The RTL is mapped into a gate-level netlist in the target technology of the chip.

The test structures like scan chains are inserted.

The gates in the netlist are assigned to nonoverlapping locations on the chip.

Balanced buffered clock trees are introduced into the design.

The wires that connect the gates in the netlist are added.

The design is modified, where possible, to make it as easy as possible to produce.

Since errors are expensive, time consuming and hard to spot, extensive error checking is the rule, making sure the mapping to logic was done correctly, and checking that the manufacturing rules were followed faithfully.

Evolution of design constraints

The purpose of the flow is to take a design from concept phase to working chip. The complexity of the flow is a direct result of the addition and evolution of the list of design closure constraints. To understand this evolution it is important to understand the life cycle of a design constraint. In general, design constraints influence the design flow via the following five-stage evolution:

A good example of this evolution can be found in the signal integrity constraint. In the mid-1990s (180 nmnode), industry visionaries were describing the impending dangers of coupling noise long before chips werefailing. By the mid-late 1990s, noise problems were cropping up in advanced microprocessor designs.By 2000, automated noise analysis tools were available and were used to guide manual fix-up. The totalnumber of noise problems identified by the analysis tools identified by the flow quickly became too manyto correct manually. In response, CAD companies developed the noise avoidance flows that are currently inuse in the industry.

At any point in time, the constraints in the design flow are at different stages of their life cycle. At thetime of this writing, for example, performance optimization is the most mature and is well into the fifthphase with the widespread use of timing-driven design flows. Power- and defect-oriented yield optimizationis well into the fourth phase; power supply integrity, a type of noise constraint, is in the third phase;circuit-limited yield optimization is in the second phase, etc. A list of the first-phase impending constraintcrises can always be found in the International Technology Roadmap for Semiconductors (ITRS) 15-year-outlook technology roadmaps.

As a constraint matures in the design flow, it tends to work its way from the end of the flow to the beginning.As it does this, it also tends to increase in complexity and in the degree that it contends with other constraints.Constraints tend to move up in the flow due to one of the basic paradoxes of design: accuracy vs.influence. Specifically, the earlier in a design flow a constraint is addressed, the more flexibility there is toaddress the constraint. Ironically, the earlier one is in a design flow, the more difficult it is to predict compliance.For example, an architectural decision to pipeline a logic function can have a far greater impact ontotal chip performance than any amount of postrouting fix-up. At the same time, accurately predicting theperformance impact of such a change before the chip logic is synthesized, let alone placed or routed, is verydifficult. This paradox has shaped the evolution of the design closure flow in several ways. First, it requiresthat the design flow is no longer composed of a linear set of discrete steps. In the early stages of VLSI it wassufficient to break the design into discrete stages, i.e., first do logic synthesis, then do placement, then dorouting. As the number and complexity of design closure constraints has increased, the linear design flowhas broken down. In the past if there were too many timing constraint violations left after routing, it wasnecessary to loop back, modify the tool settings slightly, and reexecute the previous placement steps. If theconstraints were still not met, it was necessary to reach further back in the flow and modify the chip logicand repeat the synthesis and placement steps. This type of looping is both time consuming and unable toguarantee convergence i.e., it is possible to loop back in the flow to correct one constraint violation only tofind that the correction induced another unrelated violation.

See also

References

  1. Ralph, P., and Wand, Y. A Proposal for a Formal Definition of the Design Concept. In, Lyytinen, K., Loucopoulos, P., Mylopoulos, J., and Robinson, W., (eds.), Design Requirements Engineering: A Ten-Year Perspective: Springer-Verlag, 2009, pp. 103-136