IP Library › Granted Patent US 7,577,930
Granted Patent B2
US 7,577,930 · App. 11/165,862 · Granted Aug 18, 2009

Method and apparatus for analyzing integrated circuit operations

Assignee: Apple Inc.
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,577,930
App. No.
11/165,862
Granted
Aug 18, 2009
Kind
B2
Abstract

A method and apparatus for viewing and/or analyzing the operations and logical states of an integrated circuit. The logical state of various flip-flops within the ASIC may be determined at a specified time. The embodiment may store these flip-flop states in a computer-readable data structure, such as a file or database. By repeating this process and incrementing or decrementing the time with each repetition, a more complete picture of the ASIC's operation may be captured. Additionally, the embodiment may graphically display the flip-flop states, for example as a graph or waveform.

Claims (55)

1. A method for outputting the operations of an integrated circuit, comprising the operations of:

reaching a trigger event occurring at a trigger time;

waiting a number of clock cycles after the occurrence of the trigger event;

reading a state of a last flip-flop of a set of flip-flops in a chain; and

determining if an additional read of the state of the last flip-flop is to be performed;

in response to determining no additional read of the state of the last-flip flop is to be performed, storing as data every state of the last flip-flop since a first read of the state of the last flip-flop;

linking each state of the last flip-flop stored as data to a unique one of the set of flip-flops in the chain; and

wherein the data is stored by a computer system in a waveform database that is computer-readable.

2. The method of claim 1 , further comprising the operation of storing the state of the last flip-flop in a computer-readable medium.

3. The method of claim 1 , further comprising the operation of freezing the state of all of the set of flip-flops after the operation of waiting a number of clock cycles after the occurrence of the trigger event.

4. The method of claim 3 , further comprising the operation of incrementing a state from a next-to-last flip-flop in the chain to the last flip-flop in the chain.

5. The method of claim 4 , wherein the operation of incrementing a state comprises:

discarding the state of the last flip-flop; and

passing the state of the next-to-last flip-flop to the last flip-flop.

6. The method of claim 5 , further comprising the operation of:

in response to determining an additional read of the state of the last flip-flop is to be performed, performing operations a), b), c), and d) again.

7. The method of claim 6 , further comprising the operation of:

using the waveform database that is computer-readable to generate a graphical output, the graphical output displaying a graph of the state of all flip-flops in the chain at a time equal to the trigger time plus the number of clock cycles.

8. The method of claim 1 , further comprising:

determining whether an additional viewing of the operations of the integrated circuit is to be performed;

in the event an additional viewing of the operations of the integrated circuit is to be performed, incrementing the number of clock cycles by one; and

performing operations a), b), c), and d) again.

9. The method of claim 8 , wherein the operation of incrementing a state comprises:

discarding the state of the last flip-flop; and

passing the state of the next-to-last flip-flop to the last flip-flop.

10. The method of claim 9 , further comprising the operation of:

in response to determining an additional read of the state of the last flip-flop is to be performed, performing operations a), b), c), and d) a second time.

11. A computer-readable medium containing instructions which, when executed, perform the method of claim 10 .

12. An apparatus configured to perform the method of claim 10 .

13. The method of claim 10 , further comprising the operations of:

in response to determining no additional read of the state of the last-flip flop is to be performed, storing as data every state of the last flip-flop since a first read of the state of the last flip-flop; and

linking each state of the last flip-flop stored as first data to a unique one of the set of flip-flops in the chain.

14. The method of claim 13 , further comprising the operations of:

in response to incrementing the number of cycles and determining for a second time no additional read of the state of the last-flip flop is to be performed, storing as second data every state of the last flip-flop since a first read of the state of the last flip-flop and prior to incrementing the number of cycles; and

linking each state of the last flip-flop stored as second data to a unique one of the set of flip-flops in the chain.

15. The method of claim 14 , further comprising the operation of creating a graphical display from the first and second data.

16. The method of claim 15 , wherein the graphical display comprises:

a first frame corresponding to the first data; and

a second frame corresponding to the second data.

17. The method of claim 16 , wherein the graphical display is non-static.

18. The method of claim 1 , further comprising performing operations a) and b) during operation of the integrated circuit.

19. The method of claim 1 , further comprising performing operations a), b), c), and d) in an operating environment of the integrated circuit.

20. The method of claim 1 , wherein the integrated circuit is an application-specific integrated circuit.

21. The method of claim 20 , wherein:

the integrated circuit comprises a logic block; and

operations a), b), c), and d) are executed on the logic block.

22. A method for outputting the operations of an integrated circuit, comprising the operations of:

reaching a trigger event occurring at a trigger time;

waiting a number of clock cycles after the occurrence of the trigger event;

freezing a state of each of a set of flip-flops;

reading the state of a last flip-flop of the set of flip-flops;

determining an additional read of the state of the last flip-flop is to be performed;

in response to determining no additional read of the state of the last-flip flop is to be performed, storing as data every state of the last flip-flop since a first read of the state of the last flip-flop;

linking each state of the last flip-flop stored as data to a unique one of the set of flip-flops in the chain; and

wherein the data is stored by a computer system in a waveform database that is computer-readable.

Assignments (2)
CHANGE OF NAME Recorded Apr 24, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019204/0010 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2005
From: BAILEY, ROBERT L.; HOWARD, BRIAN D.
To: APPLE COMPUTER, INC.
Reel/Frame 016736/0438 →
Continuity (1)
Related Publication 20060290400A1 · Dec 28, 2006