Automated EDA Debugging via Callback Function Location

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In electronic design automation (EDA), debugging complex circuit designs is time-consuming and inefficient due to the need for manual location and insertion of break points in vast source code files across different languages, making it difficult for developers to identify and rectify errors in parameter-related callback functions.

Innovation Solution

A system and method that automatically locates source code files and callback functions related to a selected parameter, sets breakpoints, and provides an integrated debugging environment, using a data store, user interface, callback-function locator module, and debugging interface to streamline the debugging process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual debugging methods are used in EDA environments, then developers can locate and debug callback functions, but the process is time-consuming and inefficient due to vast source code files across different languages

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidtime to locate and debug callback functions
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces an intermediary system that acts as a bridge between the developer and the vast codebase. This intermediary automatically locates callback functions by monitoring parameter modifications, translating high-level parameter selections into specific code locations without requiring manual search through heterogeneous source files

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The debugging system provides self-service by automatically performing tasks that would otherwise require manual intervention. The system autonomously monitors parameter changes, identifies affected callback functions, and navigates to relevant code sections, enabling the debugging process to serve itself without constant developer intervention

Inventive Principle:
Principle #25Self-service

2Reliability

If developers manually search through vast libraries of heterogeneous source code files to locate callback functions, then they can identify errors, but the complexity and time required increases significantly

Engineering Contradiction:
Improveerror identification accuracyVSAvoidcomplexity of debugging process
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-establishing monitoring mechanisms for parameter modifications before debugging begins. Callback functions are pre-identified and tracked based on their parameter dependencies, so when debugging is needed, the system already has the information required to quickly locate relevant code without manual analysis

Inventive Principle:
Principle #10Preliminary action

3Productivity

If automated debugging tools are implemented, then debugging speed increases, but the system complexity and automation requirements increase

Engineering Contradiction:
Improvedebugging speedVSAvoidautomation level required
Core Design Contradiction:
ProductivityVSExtent of automation

Solution Approach 1:

The debugging system is designed with multi-functionality to handle diverse debugging scenarios through a unified interface. It can monitor parameter modifications, locate callback functions, navigate to source code, and manage breakpoints across different languages and file types, reducing the need for separate automated tools for each debugging task

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9336123B1Method and system for automatically establishing a component description format (CDF) debugging environment
Publication Date: 2016.05.10 CADENCE DESIGN SYST INC
  • US9336123B1 patent drawing
  • US9336123B1 patent drawing
  • US9336123B1 patent drawing

AI summary

A system and method are provided for establishing an automated debugging environment in an Electronic Design Automation (EDA) work flow. A user interface is provided for interfacing with a user by displaying a list of debuggable parameters, accepting a selection thereof from a user, and automatically locating both the callback function which sets the selected parameter, and the source code file which contains the callback function. Additionally, it is determined whether the callback function sets solely the selected parameter, or several different parameters, and an automatic breakpoint is set accordingly to break only responsive to the selected parameter. On execution of the modified callback function, execution will be arrested by the automatically-set intelligent breakpoint and a debugging user interface will be generated and provided to the user with a display of the relevant source code, callback function, parameter names and values, system state, and the like. Upon completion of the debugging process, the automatically-set breakpoint will be removed or modified to remove the automatically-set portion of the breakpoint.