Sequential Implication for Nonoverlapping Transaction Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing assertion languages, such as System Verilog Assertions (SVA), lack a dedicated construct to describe nonoverlapping transactions, leading to incorrect error detection or the need for error-prone manual checkers when verifying circuit designs.
Innovation Solution
The use of sequential implications converted to deterministic finite automata on finite words, which automatically enforce nonoverlapping transactions by modifying state transitions and adding gating conditions, allowing for efficient verification in software simulations and hardware emulations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If existing assertion languages (e.g., SVA) are used to verify circuit designs, then verification capability is provided, but incorrect error detection occurs or error-prone manual checkers are required for nonoverlapping transactions
Solution Approach 1:
The verification task is segmented into two distinct implication types: suffix implication for general sequence properties and sequential implication for nonoverlapping transaction properties. This segmentation allows each type to be handled by specialized constructs, improving reliability without requiring complex manual checkers.
Solution Approach 2:
A new sequential implication construct acts as an intermediary between the verification goal and the assertion language. This construct automatically enforces nonoverlapping transaction constraints through its syntax and semantics, eliminating the need for error-prone manual checkers while maintaining ease of use.
2Reliability
If manual checkers are used to enforce nonoverlapping transactions, then verification coverage is improved, but error-prone manual construction and increased complexity occur
Solution Approach 1:
The sequential implication construct is self-service in that it automatically enforces nonoverlapping transaction constraints through its own syntax and evaluation rules. The construct monitors transaction overlap status and prevents incorrect error detection without requiring external manual checkers, thereby improving ease of operation while maintaining verification coverage.
3Adaptability or versatility
If suffix implications are used to describe transactions, then sequence properties can be verified, but incorrect error detection occurs for nonoverlapping transactions
Solution Approach 1:
The implication operators are segmented into two distinct types: suffix implication (|->) for general sequence properties and sequential implication (|=>) for nonoverlapping transactions. Each operator has specialized semantics that ensure correct behavior for its intended use case, eliminating the incorrect error detection that occurs when suffix implication is misapplied to nonoverlapping transactions.
Solution Approach 2:
The sequential implication construct changes the evaluation parameters by introducing a state machine that tracks transaction overlap status. This parameter change enables the construct to distinguish between acceptable and unacceptable transaction sequences, thereby improving error detection accuracy for nonoverlapping transactions while maintaining versatility.
Data Source
AI summary
An assertion for a sequential implication for a circuit design is received. The sequential implication defines a nonoverlapping transaction in which new transactions are not allowed while an existing transaction is still pending. The assertion is converted to a deterministic finite automaton on finite words in a machine-readable form, which is made available to verify the operation of the circuit design.


