TECHNICAL FIELD

This disclosure relates to tracing the status of a programmable device such as a programmable integrated circuit (IC).

BACKGROUND

Integrated circuits (ICs) can be implemented to perform a variety of functions. Some ICs can be programmed to perform specified functions. One example of an IC that can be programmed is a field programmable gate array (FPGA). An FPGA includes programmable logic that is often implemented as an array of programmable tiles. These programmable tiles may include, for example, input/output blocks (IOBs), configurable logic blocks (CLBs), dedicated random access memory blocks (BRAM), multipliers, and digital signal processing blocks (DSPs).

Other varieties of programmable ICs may include additional resources that may be used in conjunction with the programmable logic. Examples of these additional resources may include, but are not limited to, hardwired circuits such as processors, memory controllers, and transceivers that, while hardwired unlike programmable logic, still may be programmed to operate in one of a plurality of different operating states or modes.

The extensive programmability of modern devices coupled with the fact that these devices may be continually reconfigured (e.g., completely reconfigured) and/or continually partially reconfigured over time, means that knowing the particular operating state of the device at any given point in time may not be feasible. This makes activities such as debugging, application development for the device, and device management difficult.

SUMMARY

In one aspect, a method can include, in response to loading a device image for a programmable device, determining, using a processing unit on the programmable device, trace data for the device image, storing, by the processing unit, the trace data for the device image in a memory, and, in response to unloading the device image, recording the unloading of the device image in the trace data in the memory.

In another aspect, a device can include a plurality of programmable circuit resources and a processor configured to program the programmable circuit resources. The processor can initiate executable operations including, in response to loading a device image for the device, determining trace data for the device image, wherein the device image includes programming data for one or more of the plurality of programmable circuit resources, storing the trace data for the device image in a memory, and, in response to unloading the device image, recording the unloading of the device image in the trace data in the memory.

This Summary section is provided merely to introduce certain concepts and not to identify any key or essential features of the claimed subject matter. Other features of the inventive arrangements will be apparent from the accompanying drawings and from the following detailed description.

