billion gate cdc signoff done right v1.5 - rtl...

12
Billion Gate CDC Sign-off Done Right Vikas Sachdeva Real Intent Inc., Sunnyvale, CA

Upload: lamdang

Post on 30-Apr-2018

218 views

Category:

Documents


1 download

TRANSCRIPT

Billion Gate CDC Sign-off Done Right

Vikas Sachdeva

Real Intent Inc., Sunnyvale, CA

2

I. INTRODUCTION

Over the past decade, the move to System-on-Chip (SoC) design has dramatically

increased chip sizes. Consider a typical SoC design shown in Figure 1, a high-performance

design with SoC core, multiple caches, and interfaces. Typical SoC designs today are, big

enough to stress the capacity of state-of-art verification flows. More importantly, they have

many subcomponents with complex interactions. There are many asynchronous interfaces

between the processor cores, caches, application engines, integrated memories, system

and networking interfaces. Each subcomponent usually has its own clock domain. More

complex chips than design shown in Figure1, are routinely being taped out today. The

additional complexity is not from more complex functional units, but from the integration of a

greater number of them at the system level.

These independently developed components come together to enable a rich feature set for

the SoC. However, accompanying this abundance of features, there is a proliferation of

internal and external protocols and aggressive power requirements that leads to an

explosion in the number of asynchronous clocks in SoCs. Ensuring that this complex SoC

works according to specifications, demands that design and verification teams spend an

increasing amount of time on verifying the correctness of asynchronous boundaries on the

chip.

This paper starts with discussing why a comprehensive hierarchical methodology is needed

to verify Clock Domain Crossing (CDC) aspects of these complex billion-gate SoCs. It then

elaborates on some of the challenges created by such a methodology. Based on these

challenges, the paper summarizes a set of requirements for an efficient and effective

solution. In the final section, the paper introduces the 2017.A version of Meridian CDC, a

CDC verification tool that addresses all these requirements and enables a robust CDC

Sign-off methodology for billion gate SoCs. For more information on CDC analysis in

general, refer to “Clock Domain Crossing Demystified: The Second Generation Solution for

CDC Verification” on the Real Intent website. (www.realintent.com/white-papers/)

Figure 1: Typical SoC

3

II. Hierarchical CDC Methodology

A straightforward way to do CDC Verification on an SoC is by doing a flat run. A flat CDC

verification run is relatively easy to setup and covers all CDC issues. Ensuring correct setup

is a critical part of CDC verification and can be a significant effort. The simplicity of setup is

a major advantage of flat CDC verification. However there are also some disadvantages

with this flow. One is that the full-SoC RTL is only available late in the design cycle, at a

time when iterations are costly. Moreover, for billion gate SoCs the huge volume of CDC

data can make debug overwhelming and inefficient.

Flat CDC verification usually works well for small SoCs, but for big SoCs a robust

hierarchical methodology is much more effective. Many verification and implementation

tools such as synthesis, static timing analysis and functional verification support hierarchical

methodologies that promote IP-reuse principles and the divide-and-conquer paradigm for

breaking down the volume of data. In a hierarchical CDC analysis methodology, there are

two kinds of flows possible: a) Hierarchical bottom-up CDC verification b) Hierarchical top-

down CDC Verification.

In hierarchical bottom-up CDC verification, each IP or block is verified and its CDC

information is saved. As higher-level subsystems or SoCs are assembled, the CDC

information from the lower levels is used at the top level for CDC verification. In a bottom-up

flow, constraints for each block are developed separately by each block-level designer. Also,

SoC constraints may be developed independently from block-level constraints. This can

lead to inconsistencies among these constraints. So, in a bottom-up verification flow

verifying coherency of these constraints is a must.

The difference between hierarchical top-down CDC verification and bottom-up CDC

verification is that in top-down verification the top-level constraints are developed first. After

that constraints for lower level blocks are derived from top-level constraints. Block level

CDC analysis is done based on the derived block-level constraints and hierarchical CDC

information is saved. The top level CDC analysis then uses the block level CDC information

that was saved in the block-level run and does CDC analysis on the interaction of the blocks.

Since this flow relies on top-level constraints, block-level CDC verification cannot start until

top level constraints are available.

In short, the bottom-up flow does constraints development and CDC analysis both bottom

up, whereas in the top-down flow constraints development and propagation is done top

down while CDC analysis is done bottom up.

Both of these hierarchical flows resolve the disadvantages of flat CDC verification, but they

come with their own set of challenges. The next section discusses these challenges in detail,

along with requirements helpful in alleviating the issues.

III. Requirements of the Hierarchical CDC Methodology

Any CDC methodology needs to ensure that all possible CDC violations are found, i.e. that it

is complete. The hierarchical methodology not only needs to ensure that all block

4

interactions are free of CDC violations, but also that all clock domain crossings are checked

in the context of the entire SoC. The winning methodology will be the one that is most

efficient in terms of the overall time it takes to detect, debug, and fix all the issues.

Automation and ease of debug are very important, as well as is the ability to partition the

work (e.g. divide and conquer). Let’s start by looking at various aspects of this in detail.

Block specific reporting of CDC violations

One of the goals of a hierarchical methodology is to significantly reduce the volume of data to be

handled by the user who is reviewing CDC violations at the SoC level. This can be enabled by

distributing the work across users and addressing block-level issues independently of SOC level

issues, and without duplication. Consider the design in Figure 2.

Here CDC violations from FF3 to FF4 are within the scope of Block2 - these are the violations

that should be reviewed at the Block2 level and should not be reported at the SoC level. Other

violations, i.e. FF1 to FF2 and FF5 to FF6, should be reviewed at the SoC level.

Inter-block reporting of CDC violations

Figure 2: Block Specific CDC Violations

5

At the SoC level there can be CDC violations which involve two or more lower-level blocks. These

problems can only be identified while running CDC analysis at the SoC level. Consider the design

shown in Figure 3, there are two synchronizers in this design (shown in gray color).

The first stage of each synchronizer, i.e. F5 and F7, is being driven by combinational logic. Since

we know that combinational logic driving the first stage of a synchronizer has the possibility of a

logic hazard being captured asynchronously by the receiving domain, both of the above are CDC

violations. Designers doing CDC sign-off at the block level may or may not be aware of how their

block is integrated at the SoC level. As a result these violations only become visible when SoC is

integrated.

The implication is that when CDC verification is done at the block level, the hierarchical model

needs to save information about the ports in order to report CDC violations at the SoC level. A

primitive way to do this is via a TCL or text model where basic CDC information related to ports is

saved. The kind of information usually saved pertains to the clock domain on a port, whether it

drives a synchronizer, or whether it is driven from combinational logic. These models are created

either using methodology scripts or EDA tools. These TCL or text models can work for simple

CDC violations, but when violations become complex and involve multiple blocks, these models

start to miss important CDC issues. For example, consider the design in Figure 4. In this design,

multiple synchronized signals (syncout1, syncout2, syncout3) are converging creating the

Figure 3: Inter-block CDC Violations

6

possibility of loss of correlation effects from these signals. If a primitive TCL or text model that just

saves information about the ports is used, the CDC violation will not be reported at the SoC level.

In general these simplistic models miss important CDC issues when reporting a violation not just

needs boundary information but more detailed CDC-specific data from the block level. Ensuring

that all possible CDC violations are reported is one of the uncompromisable requirements for a

hierarchical methodology. Simple TCL/text models can miss issues that need to be resolved for

CDC sign-off.

Constraints consistency between block and top, only where it matters

A hierarchical flow relies on block-level models of CDC analysis. It is, therefore, critical that the

top-level and block-level constraints be consistent. The ability to check the consistency of these

constraints is an essential part of any hierarchical methodology. As a simple example, if two

asynchronous clocks from an SoC feed into a block where the block designer assumed them to

be synchronous, CDC bugs will be missed in the block. Verifying consistency of the constraints

protects against such gaps.

At the same time, even though constraints consistency is critical to ensure that the model saved

at the block level is correct, the process can be noisy and cumbersome if the consistency checks

are simplistic. Typically, an IP is reused across various SoCs and the constraints that propagate

to the IP boundary will be dependent upon the SoC context in which the IP is integrated.

Figure 4: CDC Violations involving multiple blocks

7

Consider the design in Figure 5. Say CDC analysis at Block B was done with in1 not specified

as a constant. When Block B is instantiated at the SoC level, a constant drives in1 because of

SoC constraints. In this case, since Block B CDC analysis has been done with a scenario (i.e.

in1 not constant) that is pessimistic compared to the scenario in which it is instantiated at the

SoC level (i.e. in1 constant), the hierarchical methodology should not report this violation at the

SoC level.

Consider another scenario of hierarchical constraints inconsistency as shown in Figure 6. Clocks

clk1 and clk2 are asynchronous to each other on this design. Say during CDC analysis at

Block B, ports in1 and in2 were specified to be in clock domain clk2. At the SoC level both

in1 and in2 are actually being driven by flops in clock domain clk1. This leads to two CDC

paths at the SoC level: first through in2, which ends in a synchronizer, and second through in1,

which is gated by a synchronizer. Although the clock domains specified on both in1 and in2

ports are incorrect at Block B level, the CDC crossings through these ports are safe at the SoC

level. So in this case also the hierarchical methodology should not report constraints

inconsistency violations at the SoC level.

When a hierarchical inconsistency is reported in a CDC run, the SoC constraints or block-level

constraints need to be fixed, and the analysis should be run again. Modifications in either block-

Figure 5: Inconsistent constraints between block and top

Figure 6: Inconsistent constraints between block and top

8

level or SoC-level constraints can reveal new hierarchical inconsistencies and the same process

then needs to be repeated. (See Figure 7.) This is a major burden on the user if there are many

of these inconsistencies. To avoid this, the reporting of hierarchical consistency checks should be

sophisticated enough to analyze the detailed CDC impact of each kind of inconsistency and be

able to determine whether to report or not report the constraints inconsistency. This can only be

ensured when enough CDC-specific information is saved in the block level CDC runs. TCL or text

based models are too simplistic to be able capture such details resulting in unpredictable iterative

loops, leading to tape-out delays.

CDC configuration consistency between block and top

In addition to constraints consistency, a hierarchical flow also needs to check for CDC

configuration consistency between the block and top levels. For example, block-level CDC

analysis might have been done assuming that two-stage synchronizers are sufficient, but SoC

guidelines might require three stages of synchronization. These kinds of mismatches are also

critical to provide sign-off quality hierarchical analysis.

Figure 7: Simplistic consistency checks leading to unpredictable iterative loops in the hierarchical flow

9

Usability and debug

Since a hierarchical CDC run is based on model information saved at lower block levels, a major

challenge is usability and debug in this flow compared to a flat run. If the information saved at the

block level is limited, it correspondingly does not allow complete debug at the SoC level, and the

productivity advantages of the hierarchical flow are lost. Designer time is one of the most

important resources, and seamless debug in the hierarchical flow is, correspondingly, critical.

Again, the simplistic TCL and text models fail to serve this requirement.

Support for configurable IPs

Many IP blocks used in current SoCs are configurable and can be parameterized differently

according to SoC needs. Also, differently parameterized instances can exist within the same SoC.

For example, consider the design in Figure 8. Depending on whether Block A is instantiated

with Mode = 1 or Mode = 0, FF1 to other flops may or may not be a CDC violation.

A hierarchical flow should, therefore, allow different models for different configurations, and

should even report violations when appropriate models are not used for different configurations.

IV. Summary of Requirements for a Hierarchical Methodology

The previous section explained challenges in CDC verification in the context of a

hierarchical flow. With that as the basis, the following items can be considered to be

Figure 8: Different configuration of the same IP

10

requirements of a hierarchical CDC verification tool and methodology for scalability and

sign-off level confidence:

• Manage the volume of violations via divide and conquer

• Provide performance and productivity gain over a flat CDC run

• Ensure that all possible CDC violations are covered at the block and top levels

• Provide intelligent hierarchical constraints-consistency checking

• Provide a means for hierarchical CDC-configuration-consistency checking

• Provide support of configurable and parameterized IPs

• Debug efficacy equivalent to a flat CDC analysis

As discussed in the previous section, TCL or text based hierarchical models generated

either by current EDA tools or home-grown scripts can support some of above requirements

but not all. Also these models don’t provide usability and debug that is seamless with a flat

CDC run.

V. Hierarchical CDC Verification Done Right with Meridian CDC

Meridian CDC 2017.A, Real Intent’s CDC sign-off solution, enables an efficient sign-off-

quality hierarchical CDC verification. In the Meridian CDC hierarchical flow, every block is

verified as part of CDC sign-off. At the end of block-level CDC verification, a “transparent”

hierarchical model is saved. The model has comprehensive information for complete and

accurate analysis at the top level. Transparent modelling of the blocks in Meridian CDC

facilitates debug in a hierarchical run that is equivalent to the flat run. The transparent model

also allows for hierarchical constraints and CDC configuration consistency checks. It

enables an intelligent hierarchical analysis to determine whether the inconsistencies impact

CDC sign-off or not. This saves unpredictable iterative loops that exist with simplistic

hierarchical models.

Meridian CDC supports the ability to specify different hierarchical models for configurable

IPs. It can also identify when a proper parameterized model is not being used in CDC

verification at the SoC level.

In addition to all the above, Meridian CDC supports an integrated visualization tool. The

iDebug GUI keeps users focused on important issues through an efficient organization of

the findings, and provides links to schematic and source information. For example, iDebug

interprets the debug information provided by Meridian CDC and provides pruned annotated

schematic views that focus on the faulty logic (See Figure 9). With a few mouse clicks,

users are directed to the associated faulty RTL source code. This debug approach allows

for easy investigation deep in the design to quickly isolate the root cause for any warnings

and errors. iDebug provides helpful guidance and suggests actions to enable users to

pinpoint the source of the problems quickly.

11

All the CDC analysis data is stored in a database that can be accessed through the GUI or

command-line interface (CLI). Users can customize the debug methodology to match their

design flows using spreadsheet reports, graphical reports, scripting, and so on.

VI. SUMMARY

With the complexity of modern SoCs, there is a proliferation of internal and external

protocols and aggressive power requirements that lead to an explosion in the number of

asynchronous clocks. Ensuring that this complex SoC works according to specifications,

demands that design and verification teams spend an increasing amount of time on verifying

the correctness of asynchronous boundaries on the chip. CDC sign-off using flat verification

for these complex SoCs is inefficient because of the voluminous amount of violation data it

generates. A comprehensive hierarchical flow that can provide sign-off quality results as

well as divide the volume of CDC data between the SoC and blocks can solve the sign-off

challenge being faced by designers working on these billion gate SoCs.

Meridian CDC 2017.A’s hierarchical flow distinguishes itself by creating transparent models

for hierarchical CDC analysis. This leads to high accuracy, low-noise results, and seamless

SoC debug. Hierarchical flow in Meridian CDC enables intelligent block and SoC level

consistency checks which save unpredictable iterative loops that exist with other tools. The

Meridian CDC hierarchical flow was developed with several partners who have helped

refine the presentation of violations, and to ensure that the tools provides appropriate debug

information for the user to understand the cause and effect of a violation. Meridian CDC

2017.A enables accurate and reliable hierarchical flow with unprecedented performance

and productivity gains for billion gate SoC CDC sign-off.

Figure 9: Intuitive debug in iDebug

12

REFERENCES

[1] http://www.realintent.com/real-intent-products/meridian-cdc/

2017-02-16, v1 Copyright © 2017 Real Intent Inc.

Real Intent, Inc.

990 Almanor Avenue, Suite 220

Sunnyvale, CA 94085

[email protected]

Phone: 408-830-0700

Fax: 408-737-1962 realintent.com