Patent ID: 7711535
Filing Date: 2010-05-04
Classification: G06F

Abstract:
1. A method in a host machine for validating a design for a system which comprises a software element and first and second hardware components, the software element being for execution on the second hardware component and the first and second hardware components being operable to interact with one another, the method comprising the steps of: simulating operation of the first hardware component in a first software simulation system; simulating the software element and the second hardware component in a second software simulation system; receiving a dynamically variable synchronization parameter, wherein the dynamically variable synchronization parameter may be varied while simulating the software element and the second hardware component in the second software simulation system; running the second software simulation system asynchronously with, and ahead of, the first software simulation system, wherein the second software simulation system advances at most by a number of processor clock cycles set in the dynamically variable synchronization parameter before the first software simulation system advances by a clock cycle, the dynamically variable synchronization parameter limiting a maximum number of processor clock periods of the second simulation per period of a reference clock of the host machine; setting up an inter-process communications protocol connection in the first software simulation system, the inter-process communications protocol being configured to connect to the second software simulation system; controlling the first software simulation system using the second software simulation system that is running ahead of the first software simulation system, a socket allowing for communication between the second software simulation system and the first software simulation system; and analyzing a result from the first and second software simulation systems and validating the design for the system, wherein the first software simulation system and the second software simulation system are implemented in separate processing threads within the host machine providing more rapid simulation of software instructions in the second software simulation system than the simulation of instructions in the first software simulation system.