Software Object Code Analysis for SoC Verification
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
3Reliability
If software is tightly coupled to hardware subsystems, then functional integration is achieved, but determining and testing complex interactions becomes difficult
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.
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
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.
Data Source
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.


