Patent ID: 7480609

Claim:
A system comprising: a first computer host including a first hardware emulator mounted on a first expansion board; a second computer host including a second hardware emulator mounted on a second expansion board; and an emulation controller coupled to control the first hardware emulator and the second hardware emulator; wherein the first hardware emulator is configured to emulate a first portion of a system under test, and the second hardware emulator is configured to emulate a second portion of the system under test, and wherein the first and second hardware emulators are configured to coordinate an emulation of the system under test using one or more messages; wherein the first hardware emulator includes a first field programmable gate array (FPGA) device; wherein the second hardware emulator includes a second field programmable gate array (FPGA) device; and wherein the emulation controller is configured to: distribute the first portion of the system under test to the first hardware emulator by issuing commands that cause the first FPGA device to be programmed to emulate the first portion under test; distribute the second portion of the system under test to the second hardware emulator by issuing additional commands that cause the second FPGA device to emulate the second portion under test; and monitor a state of the first and second hardware emulators during the emulation of the system under test; wherein the first and second hardware emulators are further configured to emulate the first and second portions, respectively, of the system under test in a series of emulation timesteps, wherein each emulation timestep includes a zero time phase emulation and real time phase emulation, wherein during the zero time phase emulation, a state of an emulation of the respective portion of the system under test is frozen while input signals of the emulation of the respective portion are changed and output signals of the emulation of the respective portion are sampled, and wherein during the real time phase emulation, the state of the emulation of the respective portion of the system under test is iteratively changed in response to sampling output signals of the emulation of the respective portion and driving input signals of the emulation of the respective portion, and wherein the first and second hardware emulators are each configured to generate a corresponding completion message in response to completing the zero time phase emulation; wherein the emulation controller is configured to cause the first and second hardware emulators to each initiate the real time phase emulation in response to receiving the completion messages from both the first hardware emulator and the second hardware emulator.