Software Object Code Analysis for SoC Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional SoC verification tools inadequately account for and test embedded software, leading to subtle issues and failures due to unaddressed corner cases between hardware and software, particularly in complex consumer electronics.

Innovation Solution

Analyzing software object code to generate and set up test information and environments, identifying relevant information for verification, and creating verification testbenches to expose hidden corner cases and improve co-verification processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional SoC verification tools are used, then hardware verification can be achieved with reasonable confidence, but embedded software verification is inadequate leading to subtle issues and failures

Engineering Contradiction:
Improvesoftware verification reliabilityVSAvoidverification accuracy
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The patent introduces an intermediary component that translates high-level software verification requirements into low-level test cases executable by conventional hardware verification tools. This intermediary layer enables software verification capabilities without requiring complete replacement of existing verification toolchains, thus improving software verification reliability while maintaining compatibility with existing infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The verification process is segmented into distinct components: software model creation, test case generation, and execution. This segmentation allows each component to be optimized independently, with the software model capturing essential behaviors and the generated test cases focusing on specific verification objectives, thereby improving overall verification accuracy.

Inventive Principle:
Principle #1Segmentation

2Productivity

If manual testing and debugging is performed, then verification can be done with individual skill dependency, but the process becomes cumbersome and time-consuming

Engineering Contradiction:
Improveverification efficiencyVSAvoidtesting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system enables self-service verification by automatically generating test cases from software models and executing them without requiring manual intervention. The verification process serves itself by creating the necessary test infrastructure and running validations autonomously, dramatically improving verification efficiency while reducing the time loss associated with manual testing.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Software models are created in advance that encapsulate expected behaviors and requirements. These preliminary models serve as the basis for automatic test case generation, eliminating the need for time-consuming manual test design and execution while maintaining thorough verification coverage.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If software is tightly coupled to hardware subsystems, then functional integration is achieved, but determining and testing complex interactions becomes difficult

Engineering Contradiction:
Improvesystem integration reliabilityVSAvoidverification complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts essential software behaviors and interactions into a separate software model that can be verified independently of the full hardware system. This extraction allows complex software-hardware interactions to be tested in isolation through generated test cases, reducing verification complexity while maintaining integration reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

4Manufacturing precision

If conventional verification approaches are used, then standard testing can be performed, but hidden corner cases between hardware and software are not exposed

Engineering Contradiction:
Improvedesign qualityVSAvoidcorner case detection
Core Design Contradiction:
Manufacturing precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The verification system incorporates feedback mechanisms where test results are analyzed and used to refine the software model and generate additional test cases. This feedback loop ensures that hidden corner cases are detected and addressed, improving design quality by systematically exposing and correcting edge-case failures that conventional verification would miss.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8402438B1Method and system for generating verification information and tests for software
Publication Date: 2013.03.19 CADENCE DESIGN SYST INC
  • US8402438B1 patent drawing
  • US8402438B1 patent drawing
  • US8402438B1 patent drawing

AI summary

Disclosed is a process, system, and computer program product for generating a verification test or verification environment for testing and verifying software or mixed software/hardware. Object code is analyzed to generate and setup test information and environments. The object code is analyzed to identify information about the software important or relevant for the verification process. Based upon the information generated from the object code, one or more verification environments or tests can be generated for testing and verifying the software or mixed hardware/software.