IP Library Granted Patent US 7,266,490
Granted Patent B2
US 7,266,490 · App. 10/158,648 · Granted Sep 4, 2007

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,266,490
App. No.
10/158,648
Granted
Sep 4, 2007
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 (172)

1. A method for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device operating at a higher speed than said simulation, the method comprising:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

2. The method of claim 1 , further comprising storing said received data from said hardware peripheral device in a first buffer in memory.

3. The method of claim 1 , further comprising storing said received data from said simulation in a second buffer in memory.

4. The method of claim 2 , further comprising changing the size of said first buffer at run time.

5. The method of claim 3 , further comprising changing the size of said second buffer at run time.

6. The method of claim 1 , further comprising keeping a record of said data received from said hardware peripheral device, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

7. The method of claim 1 , further comprising recording the throughput of said data.

8. The method of claim 1 , further comprising modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

9. The method of claim 1 , further comprising modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

10. A method for communicating data between a simulation of an electronic device carried out by a program executing on a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the method comprising:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

storing said data received from said hardware peripheral device in a first buffer;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

11. An apparatus for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the apparatus comprising:

a memory;

computer instructions executable by said host computer for:

receiving data from said hardware peripheral device;

transmitting said data received from said hardware peripheral device to said electronic circuit simulation;

receiving data from said electronic circuit simulation; and

transmitting said data received from said electronic circuit simulation to said hardware peripheral device;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

12. The apparatus of claim 11 , further comprising:

a buffer in said memory; and

computer instructions executable by the computer for storing data received from said hardware peripheral device in said buffer.

13. The apparatus of claim 12 , further comprising computer instructions executable by the computer for changing the size of said first buffer at run time.

14. The apparatus of claim 11 further comprising:

a buffer in said memory; and

computer instructions executable by the computer for storing data received from said electronic circuit simulation in said buffer.

15. The apparatus of claim 14 , further comprising computer instructions executable by the computer for changing the size of said second buffer at run time.

16. The apparatus of claim 11 , further comprising computer instructions executable by the computer for modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

17. The apparatus of claim 11 , further comprising computer instructions executable by the computer for modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

18. The apparatus of claim 11 , further comprising computer instructions executable by the computer for keeping a record of said data received from said hardware peripheral, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

19. The apparatus of claim 11 , further comprising computer instructions executable by the computer for recording the throughput of said data.

20. An apparatus for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the apparatus comprising:

a. a computer having a memory;

b. computer instructions executable by said host computer for:

receiving data from said hardware peripheral device using software running on said computer;

storing said data received from said hardware peripheral device in a first buffer in memory;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer in memory;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

21. A computer readable medium having computer instructions executable in a host computer for communicating data between a simulation of an electronic device carried out in a program executing in said host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the instructions performing:

receiving data from said hardware peripheral device;

transmitting said data received from said hardware peripheral to said electronic circuit simulation;

receiving data from said electronic circuit simulation; and

transmitting said data received from said electronic circuit simulation to said hardware peripheral device;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

22. The computer readable medium of claim 21 , further comprising computer instructions for storing data received from said hardware peripheral device in a first buffer.

23. The computer readable medium of claim 22 , further comprising computer instructions for changing the size of said first buffer at run time.

24. The computer readable medium of claim 21 , further comprising computer instructions for storing data received from said electronic circuit simulation in a second buffer.

25. The computer readable medium of claim 24 , further comprising computer instructions for changing the size of said second buffer at run time.

26. The computer readable medium of claim 21 , further comprising computer instructions for modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

27. The computer readable medium of claim 21 , further comprising computer instructions for modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

28. The computer readable medium of claim 21 , further comprising computer instructions for keeping a record of said data received from said hardware peripheral device, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

29. The computer readable medium of claim 21 , further comprising computer instructions for recording the throughput of said data.

30. A computer readable medium having computer instructions for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the instructions performing:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

storing said data received from said hardware peripheral in a first buffer in memory;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer in memory;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation is executed in a third thread, and said transmitting said data received from said simulation is executed in a fourth thread.

31. A method for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device operating at a higher speed than said simulation, the method comprising:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

32. The method of claim 31 , further comprising storing said received data from said hardware peripheral device in a first buffer in memory.

33. The method of claim 31 , further comprising storing said received data from said simulation in a second buffer in memory.

34. The method of claim 32 , further comprising changing the size of said first buffer at run time.

35. The method of claim 33 , further comprising changing the size of said second buffer at run time.

36. The method of claim 31 , further comprising keeping a record of said data received from said hardware peripheral device, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

37. The method of claim 31 , further comprising recording the throughput of said data.

38. The method of claim 31 , further comprising modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

39. The method of claim 31 , further comprising modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

40. An apparatus for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the apparatus comprising:

a. a memory;

b. computer instructions executable by said host computer for:

receiving data from said hardware peripheral device;

transmitting said data received from said hardware peripheral device to said electronic circuit simulation;

receiving data from said electronic circuit simulation; and

transmitting said data received from said electronic circuit simulation to said hardware peripheral device;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

41. The apparatus of claim 40 , further comprising:

a. a buffer in said memory; and

b. computer instructions executable by the computer for storing data received from said hardware peripheral device in said buffer.

42. The apparatus of claim 41 , further comprising computer instructions executable by the computer for changing the size of said first buffer at run tune.

43. The apparatus of claim 40 further comprising:

a. a buffer in said memory; and

b. computer instructions executable by the computer for storing data received from said electronic circuit simulation in said buffer.

44. The apparatus of claim 43 , further comprising computer instructions executable by the computer for changing the size of said second buffer at run time.

45. The apparatus of claim 40 , further comprising computer instructions executable by the computer for modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

46. The apparatus of claim 40 , further comprising computer instructions executable by the computer for modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

47. The apparatus of claim 40 , further comprising computer instructions executable by the computer for keeping a record of said data received from said hardware peripheral, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

48. The apparatus of claim 40 , further comprising computer instructions executable by the computer for recording the throughput of said data.

49. A computer readable medium having computer instructions executable in a host computer for communicating data between a simulation of an electronic device carried out in a program executing in said host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the instructions performing:

receiving data from said hardware peripheral device;

transmitting said data received from said hardware peripheral to said electronic circuit simulation;

receiving data from said electronic circuit simulation; and

transmitting said data received from said electronic circuit simulation to said hardware peripheral device;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

50. The computer readable medium of claim 49 , further comprising computer instructions for storing data received from said hardware peripheral device in a first buffer.

51. The computer readable medium of claim 50 , further comprising computer instructions for changing the size of said first buffer at run time.

52. The computer readable medium of claim 49 , further comprising computer instructions for storing data received from said electronic circuit simulation in a second buffer.

53. The computer readable medium of claim 52 , further comprising computer instructions for changing the size of said second buffer at run time.

54. The computer readable medium of claim 49 , further comprising computer instructions for modifying said received data from said simulation to make said data suitable for transmission to said hardware peripheral device.

55. The computer readable medium of claim 49 , further comprising computer instructions for modifying said received data from said hardware peripheral device to make said data suitable for transmission to said simulation.

56. The computer readable medium of claim 49 , further comprising computer instructions for keeping a record of said data received from said hardware peripheral device, said data transmitted to said simulation, said data received from said simulation, and said data transmitted to said hardware peripheral device.

57. The computer readable medium of claim 49 , further comprising computer instructions for recording the throughput of said data.

58. A method for communicating data between a simulation of an electronic device carried out by a program executing on a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the method comprising:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

storing said data received from said hardware peripheral device in a first buffer;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

59. An apparatus for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the apparatus comprising:

a. a computer having a memory; and

b. computer instructions executable by said host computer for:

receiving data from said hardware peripheral device using software running on said computer;

storing said data received from said hardware peripheral device in a first buffer in memory;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer in memory;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

60. A computer readable medium having computer instructions for communicating data between a simulation of an electronic device carried out by a program executing in a host computer and a hardware peripheral device attached to said host computer, said hardware peripheral device running at a higher speed than said simulation, the instructions performing:

receiving data from said hardware peripheral device using peripheral device interface software running on said computer;

storing said data received from said hardware peripheral in a first buffer in memory;

retrieving said data stored in said first buffer;

modifying said retrieved data to make said data suitable for transmission to said simulation;

transmitting said data received from said hardware peripheral device to said simulation through a programming language interface;

receiving data from said simulation through said programming language interface;

storing said data received from said simulation in a second buffer in memory;

retrieving said data stored in said second buffer;

modifying said retrieved data to make said data suitable for transmission to said hardware peripheral device; and

transmitting said received data from said simulation to said hardware peripheral device using peripheral device interface software running on said host computer;

wherein said receiving data from said hardware peripheral device is executed in a first thread, said transmitting said data received from said hardware peripheral device is executed in a second thread, said receiving data from said simulation and said transmitting said data received from said simulation are executed in a third thread.

Assignments (6)
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 051407/0106 →
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 →