Waveform Reading via Segmented Time Slices and Stitching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large stimulus files generated by hardware emulators during semiconductor wafer verification pose challenges due to high runtime and memory footprint, making it difficult for analysis tools to read and process the waveforms efficiently.

Innovation Solution

A memory-efficient and scalable approach is implemented by segmenting the stimulus file into time slices, where each slice is read independently by worker processes and stitched together using partial waveform heads and tails, reducing memory requirements and data transfer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the stimulus file is read as a whole by a single process, then the waveform data can be processed completely, but the memory footprint and runtime become excessively large

Engineering Contradiction:
Improvewaveform processing efficiencyVSAvoidmemory footprint
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The stimulus file is divided into multiple time slices, with each slice representing a portion of the waveform data. Worker processes independently read and process these segmented time slices, converting them to partial waveforms that are then stitched together. This segmentation reduces the memory footprint by processing smaller chunks of data at a time while maintaining complete waveform processing capability.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If the stimulus file is segmented into time slices and processed by multiple worker processes, then memory footprint is reduced, but additional stitching operations are required

Engineering Contradiction:
Improvememory footprintVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

Head and tail records serve as intermediary elements that facilitate the stitching of partial waveforms. Each time slice generates a partial waveform with head and tail records containing metadata about temporal boundaries. These intermediary records enable the master process to efficiently stitch partial waveforms together without requiring complex synchronization or data structure management, thus reducing processing complexity despite the segmented approach.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If all waveform data is loaded into memory at once, then random access to any part of the waveform is efficient, but the memory capacity required becomes prohibitive

Engineering Contradiction:
Improvedata access speedVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The waveform data is segmented into time slices that are processed and stored as separate partial waveforms. This segmentation allows the system to access specific time periods of the waveform without loading the entire waveform into memory, significantly reducing memory capacity requirements while maintaining reasonable access speeds through direct reading of specific time slice files.

Inventive Principle:
Principle #1Segmentation

4Reliability

If the stimulus file is processed in its entirety, then complete waveform analysis is achieved, but the runtime becomes excessively long

Engineering Contradiction:
Improvewaveform analysis completenessVSAvoidprocessing runtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The stimulus file processing is segmented into multiple independent time slice processing tasks that can be executed concurrently by multiple worker processes. Each worker process independently converts its assigned time slice to a partial waveform, and these operations can run in parallel. The master process then stitches the partial waveforms together to produce the complete waveform, significantly reducing total processing runtime while maintaining analysis completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The parallel processing of multiple time slices by multiple worker processes enables continuous utilization of computing resources. Instead of sequentially processing the entire stimulus file, the system maintains continuous useful action across multiple processes working simultaneously on different portions of the data, thereby reducing overall processing runtime.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12106157B1Memory efficient and scalable approach to stimulus (waveform) reading
Publication Date: 2024.10.01 SYNOPSYS INC
  • US12106157B1 patent drawing
  • US12106157B1 patent drawing
  • US12106157B1 patent drawing

AI summary

Embodiments relate to reading signals from a stimulus file produced by an emulator into a data store. A method includes executing, by a set of one or more worker processes, reading tasks. Each reading task is executable independent of other reading tasks. Each reading task includes reading a time slice of a signal from a stimulus file produced by a hardware emulator, and pushing a partial waveform corresponding to the time slice to a data store. The partial waveform includes a head and a tail that each has a smaller data size than an entirety of the partial waveform. The method further includes executing stitching tasks. The stitching tasks include pulling the heads and tails of the partial waveform from the data store, modifying the heads and tails to indicate a temporal order of the partial waveforms, and pushing the modified heads and tails back to the data store.