Output-Based Clock Gating Verification Using Comparison Points

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Output-based clock gating in integrated circuits breaks combinational equivalence, making it challenging to verify functional identity between the original and clock-gated designs, especially due to the introduction of Observability Don't Care (ODC)-based clock gating conditions that complicate equivalence checking.

Innovation Solution

A method and apparatus for verifying functional equivalency between an integrated circuit design and its clock-gated counterpart using a test bench that identifies specific comparison points and injects faulty values at predetermined locations and times, leveraging ODC-based clock gating conditions to ensure that the clock-gated design matches the original design at these points.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If output-based clock gating is applied to reduce dynamic switching power, then power consumption is reduced, but combinational equivalence between original and clock-gated designs is broken

Engineering Contradiction:
Improvedynamic switching powerVSAvoidcombinational equivalence
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent applies preliminary action by performing equivalence checking at intermediate comparison points within the combinational logic before the final output, rather than only at the end. This allows verification to be established progressively through the logic path, ensuring equivalence is maintained despite clock gating modifications. The comparison points are strategically placed to capture state values before they diverge due to clock enables.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces intermediary comparison points as mediators between the original and clock-gated designs. These comparison points serve as intermediate verification checkpoints where state values are compared to ensure equivalence. The intermediaries allow the verification process to bridge the gap created by clock gating without requiring direct comparison of all final outputs.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If clock enables are added to create a clock-gated design, then dynamic switching power is reduced, but verification complexity increases

Engineering Contradiction:
Improvedynamic switching powerVSAvoidverification complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the verification process into multiple segments, each focused on a specific comparison point within the combinational logic. Rather than attempting to verify the entire design at once, the method breaks down the verification into manageable segments that can be checked independently. This segmentation reduces the apparent complexity by making the verification process modular and systematic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by performing equivalence checking at selected comparison points rather than attempting to verify every possible output and intermediate signal. The method identifies critical comparison points where verification is most needed and focuses efforts there, rather than applying exhaustive verification to the entire design. This partial approach reduces verification complexity while maintaining adequate assurance of equivalence.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If ODC-based clock gating conditions are propagated upstream, then more clock gating opportunities are identified, but the number of unaffected comparison points for verification decreases

Engineering Contradiction:
Improveclock gating coverageVSAvoidverification coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies local quality by recognizing that different regions of the design have different qualities regarding clock gating applicability. Instead of uniformly applying clock gating throughout the entire design, the method identifies specific local regions where clock gating can be applied without compromising verification. Comparison points are strategically placed in local regions that remain unaffected by ODC propagation, ensuring verification coverage is maintained in those specific locations.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent applies dimensionality change by moving the verification perspective from a single-output focus to a multi-dimensional approach that includes intermediate comparison points within the combinational logic. This adds a new dimension to verification by checking equivalence at multiple stages along the logic path, not just at the final output. This dimensional shift allows verification to succeed even when ODC propagation affects final outputs.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS8423935B1Method and apparatus for verifying output-based clock gating
Publication Date: 2013.04.16 XILINX INC
  • US8423935B1 patent drawing
  • US8423935B1 patent drawing
  • US8423935B1 patent drawing

AI summary

One embodiment of a method for verifying functional equivalency between a design of an integrated circuit and a corresponding clock-gated design utilizing output-based clock gating includes selecting a first one of a first plurality of internal state elements in the design and a corresponding first one of a second plurality of internal state elements in the clock-gated design, wherein an input to the first one of the first plurality of internal state elements serves as a first comparison point and an input to the corresponding first one of the second plurality of internal state elements serves as a second comparison point, and the design is to be compared against the clock-gated design at the first comparison point and the second comparison point and generating a test bench that identifies the first comparison point and the second comparison point as a set of comparison points.