Simulation Driver Context Stack for IP Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current simulation platforms face challenges in efficiently testing and verifying design IP components due to timing and interface differences between workstation processors and simulated design IP, leading to potential dead-loops and hanging issues during driver simulation, which are error-prone and time-consuming.

Innovation Solution

The system modifies the driver source code to create a context stack for rerouting functions that may cause hanging loops, allowing the driver to save and restore context information, enabling the simulation to continue without interruption, and executes the driver on a workstation with access to kernel/OS services for improved interaction with IP components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If the driver is executed on the workstation processor outside the simulation environment, then the driver can access kernel/OS services and communicate with hardware components, but timing differences and interface limitations cause dead-loops and hanging issues during simulation

Engineering Contradiction:
Improvedriver execution capabilityVSAvoidsimulation stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent introduces a simulation environment as an intermediary layer between the driver execution platform (workstation) and the simulated hardware components. This intermediary manages timing synchronization and interface compatibility, allowing the driver to execute on the workstation while preventing dead-loops and hanging issues through controlled interaction protocols.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the execution environment into distinct components: the driver execution layer on the workstation, the simulation environment layer, and the modeled hardware component layer. This segmentation allows each layer to operate independently with well-defined interfaces, resolving timing and communication conflicts between the workstation processor and simulated hardware.

Inventive Principle:
Principle #1Segmentation

2Productivity

If additional modules and interfaces are developed to simulate the driver and interface associated with design IP, then the simulation can be performed, but the development process becomes error-prone and time-consuming

Engineering Contradiction:
Improvesimulation capabilityVSAvoiddriver development time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent creates a universal simulation environment that can handle multiple driver types and hardware interfaces through a standardized framework. This multi-functional platform eliminates the need to develop separate simulation modules for each driver-interface combination, significantly reducing development time and errors while maintaining full simulation capability.

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

Solution Approach 2:

The patent uses virtual copies of hardware components and interfaces within the simulation environment rather than requiring physical hardware or custom-built simulation modules. These virtual models replicate the behavior of actual hardware components, enabling driver testing and verification without time-consuming development of specialized simulation infrastructure.

Inventive Principle:
Principle #26Copying

3Reliability

If the driver is modified to save and restore context information for rerouting functions, then hanging loops are avoided and simulation continues without interruption, but the driver source code complexity increases

Engineering Contradiction:
Improvesimulation continuityVSAvoiddriver code structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements preliminary context saving mechanisms within the driver code at identified hang points. Before potentially problematic function executions, the driver saves its context state, allowing it to restore previous states if hanging loops are detected. This preliminary preparation enables automatic recovery without interrupting simulation flow, though it does increase code complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9208282B1Enabling IP execution on a simulation execution platform
Publication Date: 2015.12.08 CADENCE DESIGN SYST INC
  • US9208282B1 patent drawing
  • US9208282B1 patent drawing
  • US9208282B1 patent drawing

AI summary

In a system and method that simulates a design including a third party IP component, a driver for the IP component is compiled and executed in a workstation implementing the simulation platform for the design. The source code for the driver is modified to allow the simulation to reroute certain functions that would cause the simulator to hang until an event occurs that would unlock the simulation. The rerouting includes storing instruction location, state information, and any other context information needed to restore a paused function. The saved information is stored in a stack that is traversed upon detection of the event.