Chained Preprocessors for Circuit Simulation Netlists

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing circuit simulators lack advanced programming features in generating netlist code, limiting their ability to process complex circuit descriptions effectively.

Innovation Solution

A method and system that preprocess netlist descriptions by identifying and replacing embedded code segments with preprocessed code segments using a pipeline preprocessor configured for specific programming languages, enabling scripting operations and advanced features like control structures and object-oriented programming.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional netlist code generation methods are used, then the circuit simulator can operate with simple code structures, but it cannot process complex circuit descriptions with advanced programming features

Engineering Contradiction:
Improvecapability to process complex circuit descriptionsVSAvoidcode structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the code processing into distinct phases: identification of embedded code segments, separate preprocessing of these segments using appropriate programming language preprocessors, and integration of preprocessed segments into the final netlist. This segmentation allows the system to handle complex programming features (scripts, control structures, object-oriented code) in isolated segments while maintaining overall system manageability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary preprocessing stage that acts as a mediator between the embedded code segments and the final netlist generation. This intermediary processors convert high-level programming constructs into equivalent netlist code, enabling the circuit simulator to handle complex descriptions without directly processing the complexity itself.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If embedded code segments with scripting operations are incorporated into netlist descriptions, then the ability to describe complex circuits is improved, but the processing complexity and requirements increase

Engineering Contradiction:
Improvescripting operations capabilityVSAvoidprocessing system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal preprocessing framework that can handle multiple programming languages and script types through a common architecture. The system identifies embedded segments, determines their language type, and applies appropriate preprocessing rules, enabling the circuit simulator to process diverse programming constructs (scripts, control structures, object-oriented code) through a single unified interface.

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

Solution Approach 2:

The patent performs preliminary preprocessing of embedded code segments before they are integrated into the final netlist. By converting scripting operations and advanced programming features into equivalent netlist code in advance, the system eliminates the need for the circuit simulator to directly interpret or process complex programming constructs during simulation execution.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If a pipeline preprocessor with multiple programming-language preprocessors is configured, then the netlist description can be processed through multiple stages, but the preprocessing system complexity increases

Engineering Contradiction:
Improvenetlist code generation efficiencyVSAvoidpreprocessor pipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a dynamic preprocessing pipeline where the system adapts its processing stages based on the specific embedded segments encountered in the netlist description. The pipeline configuration is not fixed but adjusts dynamically to match the programming languages and constructs present in the input code, optimizing processing efficiency while managing complexity through conditional activation of preprocessing stages.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8954307B1Chained programming language preprocessors for circuit simulation
Publication Date: 2015.02.10 CADENCE DESIGN SYST INC
  • US8954307B1 patent drawing
  • US8954307B1 patent drawing
  • US8954307B1 patent drawing

AI summary

A netlist description that includes embedded code segments for describing a circuit is preprocessed in order to replace the embedded code segments with corresponding preprocessed code segments, where the preprocessed code segments include netlist code that can be parsed and executed. To perform this preprocessing, programming languages that include scripting operations are identified for the embedded code segments in the netlist description. A pipeline preprocessor that includes preprocessors for the identified programming languages is configured to sequentially process the netlist description and replace the embedded code segments with the corresponding preprocessed code segments.