IP Library Granted Patent US 9,767,237
Granted Patent B2
US 9,767,237 · App. 14/941,460 · Granted Sep 19, 2017

Target capture and replay in emulation

Inventors: Krishnamurthy Suresh (Noida, IN); Satish Kumar Agarwal (Giridih, IN); Sanjay Gupta (Noida, IN); Charles W. Selvidge (Oakland, CA)
Assignee: Mentor Graphics Corporation
G06F17/5027
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 9,767,237
App. No.
14/941,460
Granted
Sep 19, 2017
Kind
B2
Abstract

An emulation process is performed with an emulator coupled to one or more targets. During a part or a whole of the emulation process, input signals to the emulator from the one or more targets are being captured, streamed out of the emulator and stored in one or more processor-readable media. The part or the whole of the emulation process is then repeated with the emulator decoupled to the one or more targets. During the repeating, the input signals stored in the one or more processor-readable media are being streamed back to the emulator. The streaming in both of the capture and replay modes may be through interfaces designed for small packets of data and fast streaming speed.

Claims (56)

1. A method comprising:

performing, using an emulator that is coupled to one or more targets and that is associated with a clock for infrastructure of the emulator and a clock for a circuit design under test by the emulator, a part of an emulation process;

during the performing of the part of the emulation process:

capturing, while running the clock for the infrastructure of the emulator and the clock for the circuit design, one or more input signals that are being communicated to the emulator from the one or more targets,

communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals out of the emulator, and

storing the one or more input signals in one or more processor-readable media;

decoupling the emulator from the one or more targets;

repeating, after the decoupling, the part of the emulation process; and

during the repeating of the part of the emulation process, communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals to the emulator from the one or more processor-readable media.

2. The method recited in claim 1 , wherein the one or more processor-readable media are in a workstation.

3. The method recited in claim 1 , wherein communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals out of the emulator is performed via one or more interfaces designed for packets of data between 500 bits and 2000 bits and designed for a streaming speed between 2 and 3 gigabits per second.

4. The method recited in claim 3 , wherein communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals to the emulator from the one or more processor-readable media is performed via the one or more interfaces designed for a packet of data between 500 bits and 2000 bits and designed for a streaming speed between 2 and 3 gigabits per second.

5. The method recited in claim 1 , wherein the one or more targets comprises dynamic target.

6. The method recited in claim 1 , further comprising:

slowing, while communicating the one or more input signals out of the emulator, the clock for the circuit design based on adaptive clock management.

7. The method recited in claim 6 , further comprising:

temporarily suspending the clock for the circuit design based on the adaptive clock management.

8. The method recited in claim 1 , further comprising:

capturing, communicating out of the emulator, and storing one or more reference output signals during the performing of the part of the emulation process.

9. The method recited in claim 8 , further comprising:

comparing one or more output signals with the reference output signals during the repeating of the part of the emulation process.

10. The method recited in claim 1 , further comprising:

fetching, during the repeating of the part of the emulation process, data from the emulator while the clock for the infrastructure of the emulator and the clock for the circuit design are stopped.

11. An emulator comprising:

a clock for infrastructure of the emulator;

a clock for a circuit design under test by the emulator; and

circuitry configured to perform a method comprising:

performing, when the emulator is coupled to one or more targets, a part of an emulation process;

during the performing of the part of the emulation process:

capturing, while running the clock for the infrastructure of the emulator and the clock for the circuit design, one or more input signals that are being communicated to the emulator from the one or more targets,

communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals out of the emulator, and

causing the one or more input signals to be stored in one or more processor-readable media;

decoupling the emulator from the one or more targets;

repeating, after the decoupling, the part of the emulation; and

during the repeating of the part of the emulation process, communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals to the emulator from the one or more processor-readable media.

12. The emulator recited in claim 11 , wherein the one or more processor-readable media are in workstation in communication with the emulator.

13. The emulator recited in claim 11 , wherein communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals out of the emulator is performed via one or more interfaces to the workstation designed for a packet of data between 500 bits and 2000 bits and designed for a streaming speed between 2 and 3 gigabits per second.

14. The emulator recited in claim 13 , wherein communicating, while running the clock for the infrastructure of the emulator and the clock for the circuit design, the one or more input signals to the emulator from the one or more processor-readable media is performed via the one or more interfaces designed for a packet of data between 500 bits and 200 bits and designed for a streaming speed between 2 and 3 gigabits per second.

15. A method comprising:

performing, using an emulator that is coupled to one or more targets and that is associated with a clock for infrastructure of the emulator and a clock for a circuit design under test by the emulator, a part of an emulation process;

during the performing of the part of the emulation process:

capturing, while the clock for the infrastructure of the emulator is running and the clock for the circuit design is stopped, one or more input signals that are being communicated to the emulator from the one or more targets,

communicating, while the clock for the infrastructure of the emulator is running and the clock for the circuit design is stopped, the one or more input signals out of the emulator, and

storing the one or more input signals in one or more processor-readable media;

decoupling the emulator from the one or more targets;

repeating, after the decoupling, the part of the emulation process; and

during the repeating of the part of the emulation process, communicating, while the clock for the infrastructure of the emulator is running and the clock for the circuit design is stopped, the one or more input signals to the emulator from the one or more processor-readable media.

16. The method recited in claim 15 , wherein communicating, while the clock for the infrastructure of the emulator is running and the clock for the circuit design is stopped, the one or more input signals out of the emulator is performed via one or more interfaces designed for packets of data between 500 bits and 2000 bits and designed for a streaming speed between 2 and 3 gigabits per second.

17. The method recited in claim 16 , wherein communicating, while the clock for the infrastructure of the emulator is running and the clock for the circuit design is stopped, the one or more input signals to the emulator from the one or more processor-readable media is performed via the one or more interfaces designed for a packet of data between 500 bits and 2000 bits and designed for a streaming speed between 2 and 3 gigabits per second.

18. The method recited in claim 15 , further comprising:

slowing, while communicating the one or more input signals out of the emulator, the clock for the circuit design based on adaptive clock management.

19. The method recited in claim 18 , further comprising:

stopping the clock for the circuit design by temporarily suspending the clock for the circuit design based on the adaptive clock management.

20. The method recited in claim 15 , further comprising:

capturing, communicating out of the emulator, and storing one or more reference output signals during the performing of the part of the emulation process; and

comparing one or more output signals with the one or more reference output signals during the repeating of the part of the emulation process.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Jun 28, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056688/0930 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 17, 2015
From: SELVIDGE, CHARLES W.; SURESH, KRISHNAMURTHY; AGARWAL, SATISH KUMAR; GUPTA, SANJAY
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 037053/0197 →
Continuity (1)
Related Publication 20170140082A1 · May 18, 2017