Automated PCELL Debugging Environment for EDA Workflows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In electronic design automation (EDA), debugging hierarchical parameterized cells (PCELLS) is complex due to dynamic instantiation and intricate interdependencies, requiring manual effort to locate and debug source code issues within vast libraries, which is time-consuming and distracting for designers.

Innovation Solution

A system and method that automatically establish a debugging environment by identifying and displaying source code files related to a selected PCELL, setting breakpoints, and providing an integrated debugging interface to evaluate and remedy problems efficiently, reducing manual effort and distractions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual debugging of hierarchical PCELLS is performed, then developers can diagnose and fix issues, but the process is time-consuming and requires substantial manual effort to locate source code issues within vast libraries

Engineering Contradiction:
Improvedebugging effectivenessVSAvoidtime to locate and debug source code
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by automatically identifying and loading required source code files before the debugging session begins. When a user selects a PCELL for debugging, the system proactively determines which source code files are needed, loads them into memory, and prepares the debugging environment, eliminating the need for manual file location and loading during the debugging process

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The debugging system serves itself by automatically managing the identification, loading, and execution of source code files. The system autonomously determines which source code portions are required for a selected PCELL, retrieves them from the vast library, and sets up the execution environment without requiring developer intervention in these routine tasks

Inventive Principle:
Principle #25Self-service

2Reliability

If manual debugging of hierarchical PCELLS is performed, then developers can diagnose and fix issues, but the process is distracting from the design flow

Engineering Contradiction:
Improvedebugging effectivenessVSAvoidintegration with design flow
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system merges the debugging functionality directly into the EDA workflow by integrating the source code execution engine with the existing design tools. The debugging environment is combined with the layout generation process, allowing developers to debug PCELLs within the context of their design project without switching between separate debugging tools and design environments

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system introduces an intermediary layer in the form of an automated source code execution engine that acts as a mediator between the developer's high-level design intentions and the low-level source code implementation. This intermediary automatically handles the complex tasks of source code identification, loading, and execution, allowing developers to focus on design rather than debugging infrastructure

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If automated debugging environment is established, then manual effort and distractions are reduced, but the system complexity increases due to automatic determination of required source code portions and execution management

Engineering Contradiction:
Improvedebugging efficiencyVSAvoidcomplexity of automated debugging system
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the debugging process into distinct manageable components: source code file identification, source code loading, execution environment setup, and debugging control. Each component is handled by a dedicated module within the execution engine, allowing the complex automated debugging system to be organized into smaller, independent functional units that can be developed and maintained separately

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The source code execution engine is designed as a universal platform that can handle multiple types of source code files, PCELL hierarchies, and execution scenarios through a single integrated architecture. The engine provides multi-functional capabilities including source code identification, loading, execution, and debugging control, reducing overall system complexity by consolidating multiple functions into one unified component

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

Data Source

PatentUS8719745B2Method and system for automatically establishing hierarchical parameterized cell (PCELL) debugging environment
Publication Date: 2014.05.06 CADENCE DESIGN SYST INC
  • US8719745B2 patent drawing
  • US8719745B2 patent drawing
  • US8719745B2 patent drawing

AI summary

A system and method are provided for establishing an automated debugging environment in an Electronic Design Automation (EDA) work flow for the debugging of parameterized cells (PCELLS/PyCELLS) in a layout. A user may merely select a particular PCELL within a hierarchical PCELL and the system and method will determine dependencies thereof. The source code for the selected PCELL and its dependencies may be located and loaded. At least one breakpoint may be set in the source code of the selected PCELL. The source code for the selected PCELL and its dependencies may be executed to be arrested at the set breakpoints. Upon the arrest of execution, a debugging environment may be established and the located source code of the selected PCELL may be displayed along with values for parametric components thereof and progression control tools.