IP Library Granted Patent US 7,512,850
Granted Patent B2
US 7,512,850 · App. 11/375,370 · Granted Mar 31, 2009

Checkpointing user design states in a configurable IC

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,512,850
App. No.
11/375,370
Granted
Mar 31, 2009
Kind
B2
Abstract

Some embodiments provide a configurable integrated circuit (IC) that has several configurable circuits and several user design state (UDS) circuits. The UDS circuits store user-design state values. The configurable IC also includes a debug network communicatively coupled to the UDS circuits. The debug network is for retrieving the user-design state values of several UDS circuits at various stoppages of the operation of the IC without retrieving configuration data that is used to configure the configurable circuits of the IC. The retrieved user-design state values at each stoppage are used as the checkpointed state of the IC while debugging the IC. In some embodiments, the debug network allows the checkpointing of only certain portions of the configurable IC.

Claims (36)

1. The method of debugging a configurable integrated circuit (IC), the method comprising:

a) iteratively starting and stopping a user-design operation of the IC;

b) at each particular stoppage, retrieving a plurality of user-design state values associated with a user-design state of the IC at the particular stoppage without retrieving configuration data;

c) storing the retrieved user-design state values;

d) encountering an error in the operation of the IC;

e) reloading in the IC the stored user-design state values associated with a stoppage prior to encountering the error; and

f) after reloading the user-design state values, re-starting the operation of the IC and monitoring the operation of the IC to identify a source for the error.

2. The method of claim 1 , wherein the IC comprises a plurality of user-design state circuits that store the user-design state of the IC and a debug network communicatively coupled to the user-design state circuits, wherein retrieving the user-design state values comprises directing the state circuits to output their user-design state values onto the debug network.

3. The method of claim 2 , wherein storing the retrieved user-design state values comprises outputting from the IC the user-design state values that are outputted onto the debug network and storing the user-design state values outputted from the IC in a storage outside of the IC.

4. The method of claim 3 , wherein reloading the stored user-design state values comprises reloading the stored user-design state values into the IC from the storage outside of the IC.

5. The method of claim 2 , wherein retrieving the user-design state values further comprises using the debug network to retrieve the user-design state value stored in each of the user-design state circuits at each particular stoppage of the IC.

6. The method of claim 1 , wherein iteratively stopping the operation of the IC comprises stopping the operation of the IC at particular intervals.

7. The method of claim 1 , wherein iteratively stopping the operation of the IC comprises stopping the operation of the IC after a particular number of operational cycles.

8. The method of claim 1 , wherein storing the retrieved state values comprises storing the state values within the IC.

9. A configurable integrated circuit (IC) comprising:

a) a plurality of user design state (UDS) circuits that store state values; and

b) a debug network communicatively coupled to the UDS circuits, said debug network for retrieving a plurality of user-design state values of a plurality of the UDS circuits at various stoppages of the operation of the IC without retrieving configuration data, wherein the retrieved user-design state values at each stoppage are used as a checkpointed state of the IC while debugging the IC,

wherein during debugging, when an error in the operation of the IC is detected, the debug network is further for loading in the IC a set of stored user-design state values associated with each stoppage prior to encountering the error.

10. The configurable IC of claim 9 , wherein the operation of the IC is iteratively stopped at particular intervals.

11. The configurable IC of claim 9 , wherein the operation of the IC is iteratively stopped after a particular number of operational cycles.

12. A The configurable integrated circuit (IC) comprising:

a) a plurality of user design state (UDS) circuits that store state values; and

b) a debug network communicatively coupled to the UDS circuits, said debug network for retrieving a plurality of user-design state values of a plurality of the UDS circuits at various stoppages of the operation of the IC without retrieving configuration data, wherein the retrieved user-design state values at each stoppage are used as a checkpointed state of the IC while debugging the IC,

wherein the debug network retrieves user-design state values of the plurality of UDS circuits by carrying the address of said UDS circuits and carrying instructions that direct the addressed UDS circuits to output the user-design state values they store.

13. The configurable IC of claim 12 , wherein the debug network outputs from the IC the user-design state values that are retrieved by the debug network so that the user-design state values are stored in a storage outside of the IC.

14. The configurable IC of claim 12 , wherein the operation of the IC is iteratively stopped at particular intervals.

15. The configurable IC of claim 12 , wherein the operation of the IC is iteratively stopped after a particular number of operational cycles.

16. A configurable integrated circuit (IC) comprising:

a plurality of user design state (UDS) circuits that store user-design state values; and

a debug network communicatively coupled to the UDS circuits, said debug network for performing a debugging operation that stops user-design operations of the IC at different times during operation of the IC and retrieves different user-design state values of a plurality of the UDS circuits from only a portion of the IC,

wherein during debugging operations, when an error in the operation of the IC is detected, the debug network is further for loading in the IC a plurality of stored user-design state values associated with a stoppage prior to encountering the error.

17. The configurable integrated circuit (IC) comprising:

a plurality of user design state (UDS) circuits that store user-design state values; and

a debug network communicatively coupled to the UDS circuits, said debug network for performing a debugging operation that stops user-design operations of the IC at different times during operation of the IC and retrieves different user-design state values of a plurality of the UDS circuits from only a portion of the IC,

wherein the debug network retrieves the user-design state values of the plurality of UDS circuits by carrying the address of said UDS circuits and carrying instructions that direct the addressed UDS circuits to output the user-design state values they store.

18. The configurable IC of claim 17 , wherein the debug network outputs from the IC the user-design state values that are retrieved by the debug network so that the user-design state values are stored in a storage outside of the IC.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061827/0686 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2022
From: ALTERA CORPORATION
To: INTEL CORPORATION
Reel/Frame 060778/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2015
From: TABULA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
To: ALTERA CORPORATION
Reel/Frame 036050/0792 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2015
From: TABULA, INC.
To: TABULA (ASSIGNMENT FOR THE BENEFIT OF CREDITORS), LLC
Reel/Frame 035783/0055 →