Operator-Aware FSM for Circuit Simulation Resource Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for modeling SystemVerilog assertion sequences are inefficient in terms of memory and computational resource usage due to challenges with temporal operators and composite operators, leading to costly simulations and delayed product releases.

Innovation Solution

The approach involves using operator-aware states, transient states, and thread merging in finite state machines (FSMs) to simulate circuit designs, where threads are forked and joined based on composite operators, and transient states allow for zero-delay transitions, reducing resource usage by merging identical threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional methods are used to model SystemVerilog assertion sequences, then the simulation can handle complex temporal operators and composite operators, but memory and computational resource usage increases significantly

Engineering Contradiction:
Improvesimulation accuracyVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the assertion sequence evaluation into multiple finite state machines (FSMs), where each FSM handles a specific portion of the sequence. This segmentation allows complex assertions to be broken down into manageable state transitions, reducing the memory required to track the entire sequence in a single model while maintaining evaluation accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent merges multiple simulation threads that are evaluating identical or equivalent sequence portions into a single shared FSM evaluation. By detecting when multiple threads are pursuing the same assertion path, the system combines their evaluations, eliminating redundant computations and reducing overall memory consumption while preserving simulation reliability.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If traditional methods are used to model SystemVerilog assertion sequences, then the simulation can handle complex temporal operators and composite operators, but computational resource usage and runtime increase

Engineering Contradiction:
Improvesimulation accuracyVSAvoidsimulation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent performs preliminary analysis of the assertion sequence to identify common sub-sequences and equivalent evaluation paths before simulation begins. This pre-processing allows the creation of a shared FSM structure that multiple threads can utilize, avoiding redundant evaluation work during simulation and significantly improving computational efficiency while maintaining accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of creating separate complete FSM copies for each simulation thread, the patent creates a single shared FSM that can be referenced by multiple threads. This eliminates the need to copy entire state machine structures, reducing memory allocation overhead and improving simulation speed while preserving the ability to handle complex temporal and composite operators.

Inventive Principle:
Principle #26Copying

3Ease of operation

If separate FSM instances are created for each simulation thread, then each thread can independently evaluate assertion sequences, but memory consumption increases due to duplicate state machine structures

Engineering Contradiction:
Improvethread independenceVSAvoidmemory consumption
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent creates a universal FSM structure that can serve multiple simulation threads simultaneously. This single FSM is designed to handle evaluation requests from any thread, making it multi-functional. The FSM maintains thread independence through proper state management while eliminating the need for duplicate instances, thereby reducing memory consumption without compromising operational independence.

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

Solution Approach 2:

The patent introduces an intermediary mechanism that manages shared FSM access between multiple threads. This intermediary coordinates thread requests to the shared FSM, ensuring thread-safe operation and maintaining the appearance of independent evaluation while actually utilizing a common resource. This approach reduces memory consumption by eliminating duplicates while preserving thread independence through controlled access.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10726182B1Operator aware finite state machine for circuit design simulation
Publication Date: 2020.07.28 XILINX INC
  • US10726182B1 patent drawing
  • US10726182B1 patent drawing
  • US10726182B1 patent drawing

AI summary

Disclosed approaches involve simulating a circuit design specified in a hardware description language (HDL). During simulation, a thread is started at an edge of a simulation clock signal for evaluation of states of a finite state machine (FSM) that represent a series of events specified in a statement in the HDL. The thread transitions from one state to a next state in the FSM in response to evaluation of the one state. In response to encountering a fork state in the FSM, the thread is forked into two threads during simulation. The fork state represents a composite operator in the statement, and the FSM has a branch from the fork state for each operand of the composite operator. In response to encountering a join state in the FSM by the two threads, the two threads are joined into one thread.