Collapsed Parse Tree for HDL Simulation Memory Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The increasing complexity and size of high-level circuit designs in hardware descriptive languages (HDLs) lead to significant memory requirements during the elaboration process for synthesis or simulation, which is inefficient and resource-intensive.

Innovation Solution

A process is implemented where multiple instances of a module in a circuit design are represented by a single representative parse node in the parse tree, with instance-specific data structures and memory allocation, reducing the need for extensive memory usage by collapsing the parse tree and using reference pointers to instance-specific data structures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional elaboration processes are used for HDL designs, then complete functional simulation can be achieved, but memory requirements increase significantly

Engineering Contradiction:
Improvefunctional simulation accuracyVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The parse tree is segmented into representative nodes that group multiple identical module instances together. Instead of creating separate parse tree entries for each instance, the patent segments them into unified representative nodes with instance-specific data structures, reducing memory consumption while preserving functional simulation accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Representative parse nodes serve multiple functions: they represent entire groups of identical module instances, store shared module information, and maintain references to instance-specific data structures. This multi-functionality eliminates redundant storage and reduces overall memory requirements during elaboration.

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

2Ease of operation

If multiple instances of modules are represented individually in the parse tree, then detailed instance tracking is enabled, but memory consumption increases

Engineering Contradiction:
Improveinstance tracking capabilityVSAvoidmemory consumption
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

Instance tracking is segmented between representative nodes (for shared module information) and instance-specific data structures (for individual instance details). This segmentation maintains complete instance tracking capability while avoiding redundant storage of identical module information across multiple instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instance-specific data structures act as intermediaries between representative parse nodes and individual module instances. These intermediary structures enable detailed instance tracking and connectivity information storage without requiring separate full parse tree entries for each instance, thus reducing overall memory consumption.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If full parse trees are created for each module instance, then complete connectivity information is stored, but elaboration memory requirements become prohibitive

Engineering Contradiction:
Improveconnectivity information completenessVSAvoidelaboration memory
Core Design Contradiction:
Loss of informationVSQuantity of substance

Solution Approach 1:

Connectivity information is extracted from the representative parse nodes and stored in separate instance-specific data structures. This extraction removes redundant connectivity information from multiple identical instances while preserving complete connectivity data in the instance-specific structures, reducing elaboration memory requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

Instead of creating full parse tree copies for each instance, the patent creates lightweight instance-specific data structures that contain only the necessary instance-specific connectivity information. These copied structures reference the shared representative node, maintaining information completeness while dramatically reducing memory usage.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8447581B1Generating simulation code from a specification of a circuit design
Publication Date: 2013.05.21 XILINX INC
  • US8447581B1 patent drawing
  • US8447581B1 patent drawing
  • US8447581B1 patent drawing

AI summary

During the elaboration and synthesis of a circuit design, a parse tree generally must be fully expanded to access memory resources and data of individual module instances in order to perform optimizations that will result in better runtime performance of generated simulation code. The present invention reduces memory requirements in generating simulation or emulation executable code by implementing a collapsed parse tree, where multiple instances of a module in a HDL design are represented by a single representative node in the parse tree.