Simulation Code Merging for HDL Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing HDL simulators generate large amounts of simulation code and require significant memory due to separate code generation for each instance of a process, leading to inefficient runtime performance.

Innovation Solution

The method involves generating simulation code that can model multiple instances of a process with the same hardware configuration, using a first portion of code to simulate the module and a second portion to execute using respective nets corresponding to each instance, reducing code size and improving memory efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If separate simulation code is generated for each instance of a process, then each instance can be simulated independently, but the size of simulation code and memory requirements increase significantly

Engineering Contradiction:
Improveability to simulate multiple instancesVSAvoidsize of simulation code
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges simulation code for multiple instances of the same process into a single shared code base. Instead of generating separate code for each instance, the system generates one simulation code that can be reused across all instances, significantly reducing code size and memory requirements while maintaining the ability to simulate multiple instances independently

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The simulation code is designed to be universal and multi-functional, capable of simulating any number of process instances through parameterization. The code uses generic variables and structured data to represent different instances, allowing a single code base to handle multiple instances without requiring instance-specific code generation

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

2Reliability

If separate simulation code is generated for each process instance, then instance-specific behavior can be accurately modeled, but runtime performance deteriorates due to larger code execution overhead

Engineering Contradiction:
Improveaccuracy of instance-specific simulationVSAvoidruntime performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By merging simulation code for multiple instances into a single shared code base, the patent reduces the total code volume that must be executed during runtime. This consolidation eliminates redundant code execution overhead while maintaining accurate instance-specific simulation through parameterized variables and structured data representations

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system uses parameter changes to adapt the universal simulation code to different instances. Instead of generating different code for each instance, the code uses parameterized variables and data structures that can be configured at runtime to represent different instance characteristics, maintaining accuracy while reducing execution overhead

Inventive Principle:
Principle #35Parameter changes

3Reliability

If separate code portions are generated for each process instance, then complete simulation coverage is achieved, but memory requirements increase significantly

Engineering Contradiction:
Improvesimulation coverageVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges the simulation code for all process instances into a single shared code base stored in memory. This consolidation maintains complete simulation coverage through parameterized variables and structured data while dramatically reducing the total memory required to store the simulation code, as the same code is shared across all instances rather than stored separately for each

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9135384B1Compilation and simulation of a circuit design
Publication Date: 2015.09.15 XILINX INC
  • US9135384B1 patent drawing
  • US9135384B1 patent drawing
  • US9135384B1 patent drawing

AI summary

In one embodiment, a method for compiling an HDL specification for simulation of a circuit design is provided. Using one or more processors the circuit design is elaborated from the HDL specification. Two or more instances of a module of the elaborated design that have a same hardware configuration are determined. Simulation code that models the circuit design is generated. A first portion of the simulation code is configured to model the module having the hardware configuration. For each of the two or more instances, a second portion of the simulation code is configured to, in response to an indication to simulate the instance, execute the first portion of simulation code using a respective set of nets corresponding to the instance.