Customizable Debug Circuitry in Reconfigurable ICs
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing programmable logic devices have inflexible debug and profile circuitry, which is not customizable by users and occupies valuable space in the static region, often being either excessive or insufficient for monitoring dynamic region circuitry.
Innovation Solution
A method to customize and distribute debug/profile circuitry in the dynamic region of a reconfigurable integrated circuit based on user preferences, allowing for tailored monitoring of specific kernel operations and reducing performance overhead by placing monitoring components closer to the monitored hardware.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If debug and profile circuitry is disposed in the static region, then the circuitry is fixed and reliable, but the circuitry occupies valuable space and cannot be customized by users
Solution Approach 1:
The debug and profile circuitry is segmented from the fixed static region and placed into the reconfigurable dynamic region. This allows the monitoring circuitry to be divided into customizable components that can be selectively instantiated based on user needs, reducing space occupation while maintaining functionality.
Solution Approach 2:
The debug circuitry is transformed from a static, fixed configuration to a dynamic, reconfigurable one. By placing the monitoring circuitry in the dynamic region, users can programmatically configure and customize the debug resources according to specific application requirements, enabling adaptability without permanent space commitment.
2Adaptability or versatility
If debug circuitry is placed in the static region, then the circuitry is stable and easy to access, but the amount of circuitry is either too much or too little for monitoring user-defined circuitry
Solution Approach 1:
Instead of providing uniform debug circuitry throughout the static region, the solution places customizable monitoring circuitry in the dynamic region where it can be locally configured to match the specific monitoring needs of user-defined circuitry. This allows different parts of the system to have appropriately tailored debug capabilities.
Solution Approach 2:
The amount and type of debug circuitry can be dynamically adjusted by changing configuration parameters. Users can programmatically control the instantiation and behavior of monitoring circuitry in the dynamic region, allowing the system to adapt the quantity and complexity of debug resources based on specific application requirements.
3Productivity
If fixed debug circuitry is used in the static region, then the system is simple to implement, but performance overhead is high due to distance from monitored hardware
Solution Approach 1:
The dynamic region acts as an intermediary between the static region and the monitored hardware. By placing monitoring circuitry in the dynamic region, it can be positioned closer to the hardware being monitored, reducing the distance and time overhead for data collection while still allowing access to debug functionality.
Data Source
AI summary
Embodiments herein describe reconfigurable integrated circuits (ICs) which include programmable logic that can be configured to perform a user task. In one embodiment, the programmable logic is configured as an accelerator. The user may want to gather debug data or profiling data when executing the accelerator. Rather than using debug/profile circuitry disposed in a static region of the IC, the user can provide preferences to a linker which then dynamically configures debug/profile circuitry in a dynamic region of the IC. That is, based on user preferences, the linker can generate customized debug/profile circuitry for monitoring the performance of the accelerator. In one embodiment, the debug/profile circuitry is implemented in the dynamic region of the IC and is tailored to user preferences rather than relying on static, or fixed, debug/profile circuitry. Moreover, the user can retrieve the debug/profiling data on demand using a call back and a device driver.


