IP Library Granted Patent US 7,835,897
Granted Patent B2
US 7,835,897 · App. 11/557,064 · Granted Nov 16, 2010

Apparatus and method for connecting hardware to a circuit simulation

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,835,897
App. No.
11/557,064
Granted
Nov 16, 2010
Kind
B2
Abstract

A system and method is described for connecting a logic circuit simulation to a hardware peripheral that includes a computer running software for communicating data to and from the hardware peripheral. The software transmits the data received from the hardware peripheral to the device being simulated by the logic circuit simulation. The computer also transmits the data received from the device being simulated by the electronic circuit simulation to the hardware peripheral. This allows the user to test the device being simulated using real hardware for input and output instead of simulated hardware.

Claims (96)

1. A method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data from the hardware peripheral device using peripheral device interface software running on an operating system of a host computer, wherein the hardware peripheral device is operating in real time;

intercepting data being transferred from the peripheral interface software to the operating system;

examining the intercepted data to determine if the data is directed to the electronic device;

if the examination of the intercepted data determines that the data is directed to the electronic device;

storing the intercepted data in a buffer;

reformatting the intercepted data; and

transmitting the reformatted data for use in the simulation of the electronic device,

wherein the simulation comprises a program executing on the host computer; and

if the examination of the intercepted data determines that the data is not directed to the electronic device, sending the data on to the operating system.

2. The method of claim 1 , further comprising changing a size of the buffer at run time.

3. The method of claim 1 , further comprising keeping a record of both the received data and the transmitted data.

4. The method of claim 3 , further comprising recording the throughput of the received data.

5. The method of claim 1 , further comprising modifying the received data to make the data suitable for transmission to the simulation.

6. The method of claim 1 , wherein said receiving data is executed in a first thread and said transmitting the reformatted data is executed in a second thread.

7. The method of claim 1 , wherein said receiving data and said transmitting the reformatted data said are both executed in a single thread.

8. An apparatus for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

the hardware peripheral device attached to a host computer, wherein the hardware peripheral device is configured to operate in real time;

a memory having stored thereon computer-executable instructions that, if executed by the host computer, cause the host computer to perform a method including:

receiving data from the hardware peripheral device;

intercepting data being transferred to an operating system running on the host computer;

examining the intercepted data to determine if the data is directed to the electronic device;

if the examination of the intercepted data determines that the data is directed to the electronic device;

storing the intercepted data in a buffer; and

transmitting the intercepted data for use in the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer; and

if the examination of the intercepted data determines that the data is not directed to the electronic device, sending the data on to the operating system.

9. The apparatus of claim 8 , wherein the computer-executable instructions, if executed by the host computer, further cause the host computer to perform a method including changing a size of the buffer at run time.

10. The apparatus of claim 8 , wherein the computer-executable instructions, if executed by the host computer, further cause the host computer to perform a method including modifying the received data to make the data suitable for transmission to the simulation.

11. The apparatus of claim 8 , wherein the computer-executable instructions, if executed by the host computer, further cause the host computer to perform a method including keeping a record of both the received data and the transmitted data.

12. The apparatus of claim 11 , wherein the computer-executable instructions, if executed by the host computer, further cause the host computer to perform a method including recording the throughput of the transmitted data.

13. A tangible computer-readable medium having stored thereon computer-executable instructions that, if executed by a host computer, cause the host computer to perform a method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data from the hardware peripheral device, wherein the instructions are running on an operating system of the host computer, wherein the hardware peripheral device is attached to the host computer and is operating in real time;

intercepting data being transferred to the operating system;

examining the intercepted data to determine if the data is directed to the electronic device;

if the examination of the intercepted data determines that the data is directed to the electronic device;

storing the intercepted data in a buffer; and

transmitting the intercepted data for use in the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer; and

if the examination of the intercepted data determines that the data is not directed to the electronic device, sending the data on to the operating system.

14. The tangible computer-readable medium of claim 13 , wherein the method further comprises changing a size of the buffer at run time.

15. The tangible computer-readable medium of claim 13 , wherein the method further comprises modifying the received data to make the data suitable for transmission to the simulation.

16. The tangible computer-readable medium of claim 13 , wherein the method further comprises keeping a record of both the received data and the transmitted data.

17. The tangible computer-readable medium of claim 16 , wherein the method further comprises recording the throughput of the received data.

18. A method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data at interface software running on a host computer from the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer, wherein the host computer is running an operating system;

storing the received data in a buffer in memory;

repackaging the stored data if the received data is directed to the hardware peripheral device; and

transmitting the repackaged data to the hardware peripheral device using the interface software without mediation by the operating system, wherein the hardware peripheral device is attached to the host computer and is operating in real time.

19. The method of claim 18 , further comprising changing a size of the buffer at run time.

20. The method of claim 18 , further comprising keeping a record of both the received data and the transmitted data.

21. The method of claim 20 , further comprising recording the throughput of both the received data and the transmitted data.

22. The method of claim 18 , wherein said receiving data is executed in a first thread and said transmitting data is executed in a second thread.

23. The method of claim 18 , wherein said receiving data from the simulation and said transmitting data are executed in a single thread.

24. A method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data at interface software running on a host computer from the simulation of the electronic device, wherein the simulation comprises a program executing on a host computer, wherein the host computer is running an operating system; and

if the received data is directed to the hardware peripheral device:

storing the received data received in a buffer;

retrieving the data stored in the buffer;

repackaging the retrieved data to make the data suitable for transmission to the hardware peripheral device, wherein the hardware peripheral device is attached to the host computer and is operating in real time; and

transmitting the repackaged data from the simulation to the hardware peripheral device using the interface software without mediation by the operating system.

25. An apparatus for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

the hardware peripheral device attached to a host computer, wherein the hardware peripheral device is operating in real time, wherein an operating system is running on the host computer; and

a memory configured to store computer instructions executable by the host computer such that, if executed, the computer instructions cause the host computer to:

receive data from the simulation of the electronic device; and

if the received data is directed to the hardware peripheral device:

store the received data in a buffer in the memory;

repackage the received data; and

transmit the repackaged data to the hardware peripheral device, wherein the stored computer instructions are executable to transmit the received data to the hardware peripheral device without mediation by the operating system.

26. The apparatus of claim 25 , wherein the computer instructions are further executable by the host computer such that, if executed, the computer instructions cause the host computer to change a size of the buffer at run time.

27. The apparatus of claim 25 , wherein the computer instructions are further executable by the host computer such that, if executed, the computer instructions cause the host computer to keep a record of both the received and the transmitted data.

28. The apparatus of claim 27 , wherein the computer instructions are further executable by the host computer such that, if executed, the computer instructions cause the host computer to record a throughput of the received data and the transmitted data.

29. An apparatus for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

the hardware peripheral device attached to a host computer, wherein the hardware peripheral device is configured to operate in real time; and

a memory configured to store computer instructions executable by the host computer such that, if executed, the computer instructions cause the host computer to:

receive data from the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer; and

if the received data is directed to the hardware peripheral device:

store the received data in a buffer in memory;

retrieve the data stored in the buffer;

repackage the retrieved data to make the data suitable for transmission to the hardware peripheral device; and

transmit the repackaged data to the hardware peripheral device using software running on the host computer without mediation by the operating system.

30. A tangible computer-readable medium having stored thereon computer-executable instructions that, if executed by a host computer, cause the host computer to perform a method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data from the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer; and

if the received data is directed to the hardware peripheral device:

storing the received data in a buffer in memory;

repackaging the stored data; and

transmitting the repackaged data to the hardware peripheral device without mediation by an operating system running on the host computer;

wherein the hardware peripheral device is attached to the host computer and is operating in real time.

31. The tangible computer-readable medium of claim 30 , wherein the method further comprises changing a size of the buffer at run time.

32. The tangible computer-readable medium of claim 30 , wherein the method further comprises keeping a record of both the received data and the transmitted data.

33. The tangible computer-readable medium of claim 32 , wherein the method further comprises recording the throughput of the transmitted data.

34. A tangible computer-readable medium having stored thereon computer-executable instructions that, if executed by a host computer, cause the host computer to perform a method for communicating data between a simulation of an electronic device and a hardware peripheral device, comprising:

receiving data from the simulation of the electronic device, wherein the simulation comprises a program executing on the host computer; and

if the received data is directed to the hardware peripheral device:

storing the received data in a buffer in memory;

retrieving the data stored in the buffer;

repackaging the retrieved data to make the data suitable for transmission to the hardware peripheral device, wherein the hardware peripheral device is attached to the host computer and is operating in real time; and

transmitting the repackaged data from the simulation to the hardware peripheral device using peripheral device interface software running on the host computer without mediation by an operating system running on the host computer.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 056981 FRAME: 0631. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 16, 2022
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED BROADBAND, INC.
Reel/Frame 059907/0563 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 054443 FRAME: 0958. ASSIGNOR(S) HEREBY CONFIRMS THE LICENSE. Recorded Feb 4, 2021
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED BROADBAND, INC.
Reel/Frame 056981/0631 →
LICENSE Recorded Nov 5, 2020
From: COMMWORKS SOLUTIONS, LLC
To: UNWIRED SOLUTIONS, INC.
Reel/Frame 054443/0958 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2020
From: INTELLECTUAL VENTURES ASSETS 130 LLC
To: COMMWORKS SOLUTIONS, LLC
Reel/Frame 051463/0026 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2019
From: OL SECURITY LIMITED LIABILITY COMPANY
To: INTELLECTUAL VENTURES ASSETS 130 LLC
Reel/Frame 050886/0662 →
MERGER Recorded Jan 26, 2016
From: IONIPAS TRANSFER COMPANY, LLC
To: OL SECURITY LIMITED LIABILITY COMPANY
Reel/Frame 037588/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2008
From: ZEIDMAN, ROBERT M.
To: ZEIDMAN TECHNOLOGIES
Reel/Frame 021873/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2008
From: ZEIDMAN, ROBERT M.
To: IONIPAS TRANSFER COMPANY, LLC
Reel/Frame 021763/0445 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2007
From: ZEIDMAN TECHNOLOGIES, INC.
To: ZEIDMAN, ROBERT
Reel/Frame 018942/0467 →