Virtualized Processor Co-Simulation for SoC Firmware Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Simulating large circuits, especially those including central processing units (CPUs), can be time-consuming and produce overwhelming amounts of data, making it difficult to gain insights into errors.

Innovation Solution

The use of system virtualization based co-simulation, where a virtualized processor executes certain firmware instructions and peripheral firmware instructions are sent over a network connection for simulation by hardware description language (HDL) code, reducing the burden on HDL simulators.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If hardware description language code is used to simulate large circuits with CPUs, then simulation accuracy is maintained, but simulation time becomes excessively long (taking many hours or days)

Engineering Contradiction:
Improvesimulation accuracyVSAvoidsimulation time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The circuit simulation is divided into two segments: CPU instructions are simulated using a virtualized processor that executes actual hardware instructions, while only peripheral interactions are simulated using HDL code. This segmentation allows the time-consuming CPU simulation to be handled by the faster virtualized processor rather than the slow HDL simulator.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A virtualized processor acts as an intermediary between the HDL circuit model and the actual firmware instructions. The virtualized processor receives instructions from the HDL simulation, executes them using real processor hardware, and returns results to the HDL simulator, thereby bridging the gap between simulation accuracy and execution speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complete circuit simulation including CPU instructions is performed using HDL, then comprehensive verification is achieved, but data volume becomes overwhelming and error analysis becomes difficult

Engineering Contradiction:
Improveverification completenessVSAvoiddata manageability
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

CPU instruction execution is extracted from the HDL simulation environment and placed in the virtualized processor. Only the peripheral interactions and system-level behavior remain in the HDL simulation, significantly reducing the volume of simulation data while maintaining verification of the critical peripheral interfaces.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If all firmware instructions are executed on the virtualized processor, then execution speed increases, but simulation accuracy for peripheral interactions may be compromised

Engineering Contradiction:
Improveexecution speedVSAvoidsimulation accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

Different execution methods are applied to different parts of the firmware: CPU instructions are executed on the virtualized processor for speed, while peripheral interactions are simulated using HDL code for accuracy. This local differentiation allows each component to be handled by the most appropriate method for its specific requirements.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20250103784A1System and method to develop firmware using system virtualization based co-simulation
Publication Date: 2025.03.27 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20250103784A1 patent drawing
  • US20250103784A1 patent drawing
  • US20250103784A1 patent drawing

AI summary

Embodiments of the present disclosure include techniques for simulating circuits, such as systems-on-a-chip (SoC). In various embodiments, a circuit being simulated may comprise one or more processors. However, simulation of the circuit using a hardware description language (HDL) may use a virtualized processor to execute firmware instructions rather than simulating the processor using HDL. Certain instructions from the virtualized processor may be sent, during simulation, to the HDL simulation for execution.