Constrained Random Test Bench for IC Design Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional directed test benches are inefficient in verifying the design of complex integrated circuits due to their reliance on fixed test sequences, which can miss design errors and are time-consuming to generate all possible test sequences, especially when dealing with control paths and interrupt routines.

Innovation Solution

A constrained random test bench architecture using SystemVerilog, incorporating an instruction abstraction layer, priority scheduler, and instruction translators to generate and execute randomized valid control-oriented test sequences, including interrupt handling and noise injection, to simulate complex bus traffic and sensitivity testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a directed test bench is used to verify integrated circuit design, then the test sequences are fixed and easy to control, but the test efficiency decreases and design errors may be missed when the circuit size and complexity increase

Engineering Contradiction:
Improvedesign verification accuracyVSAvoidtest verification efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent transforms the static, fixed test sequences of directed test benches into dynamic randomized test sequences. The test bench randomly generates test vectors while applying constraints to ensure validity, allowing the test patterns to adapt and vary automatically. This dynamic approach increases test coverage and efficiency without sacrificing verification reliability, as the randomization is bounded by constraint conditions that maintain test validity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of test sequence generation from fixed/directed to randomized/constrained. By introducing randomness in test vector generation while maintaining constraint boundaries, the system explores a broader design space more efficiently. The constraints ensure that randomized tests remain valid and targeted, thus improving productivity without compromising the reliability of design verification.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If all possible test sequences are generated using a directed test bench, then comprehensive test coverage is achieved, but the time consumption increases significantly

Engineering Contradiction:
Improvetest coverage completenessVSAvoidtest sequence generation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

Instead of exhaustively generating all possible test sequences (excessive action), the patent uses constrained randomization to generate a sufficient subset of test sequences that achieves comprehensive coverage (partial action). The constraints guide the randomization to focus on critical paths and edge cases, providing adequate test coverage without the prohibitive time cost of exhaustive enumeration.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary analysis to identify critical design elements, control paths, and edge cases before test generation. Constraints are pre-configured based on this analysis to guide the randomization process, ensuring that the most important areas are tested efficiently. This preliminary preparation enables comprehensive coverage with reduced time consumption by avoiding generation of redundant or low-value test sequences.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple functional design units share the same control command bus, then resource utilization is improved, but the bus traffic complexity increases due to multiplexed register access instruction sequences

Engineering Contradiction:
Improvebus sharing capabilityVSAvoidbus traffic management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The test bench implements a universal constrained random engine that can test multiple functional design units sharing the same control command bus. The randomization engine generates test vectors that automatically adapt to different units and their specific requirements, maintaining a single versatile testing mechanism rather than requiring separate directed test sequences for each unit. This reduces the overall complexity of bus traffic management.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces a constraint management layer that acts as an intermediary between the randomization engine and the control command bus. This layer translates high-level constraints into specific bus transaction patterns, managing the multiplexed traffic from multiple functional units. The intermediary handles the complexity of coordinating register access sequences for different units, simplifying the overall system while maintaining comprehensive testing capability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8042086B2Method and apparatus for verifying integrated circuit design using a constrained random test bench
Publication Date: 2011.10.18 ORACLE AMERICAN INC
  • US8042086B2 patent drawing
  • US8042086B2 patent drawing
  • US8042086B2 patent drawing

AI summary

A constrained random test bench methodology employing an instruction abstraction layer. The instruction abstraction layer includes an instruction streamer for generating random test instruction sequences that preserve instruction order dependencies and randomly selecting data values from a valid range of data values. Multiple instruction streamers may be employed to simulate interrupt handlers and other functional design units sharing a control command bus. A priority scheduler sequences the instruction sequences generated by multiple instruction streamers based on a specified priority scheme.