Industrial Strength Formal Using Abstractions
Ashish Darbari, Iain Singleton

TL;DR
This paper introduces an abstraction-based methodology for formal verification of concurrent systems, enabling efficient detection of bugs and proof of correctness across diverse design types and application domains.
Contribution
The paper presents a novel abstraction and invariant-based approach for verifying ordering and arbitration in complex, multi-domain concurrent system designs.
Findings
Verified over 100 FIFO types with a single assertion
Adapted FIFO verification to multiple arbiter types
Successfully verified multi-clocked synchronizers and networking designs
Abstract
Verification of concurrent systems with thousands of multiple threads and transactions is a challenging problem not just for simulation or emulation but also for formal. To get designs to work correctly and provide optimal PPA the designers often use complex optimizations requiring sharing of multiple resources amongst active threads and transactions using FIFOs, stallers, pipelining, out-of-order scheduling, and complex layered arbitration. This is true of most non-trivial designs irrespective of a specific application domain such as CPU, GPU or communication. At the outset a lot of these application domains look diverse and complex; however at some level of detail all of these employ common design principles of sequencing, load balancing, arbitration and hazard prevention. We present in this paper a key abstraction based methodology for verifying ordering correctness and arbitration…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Manufacturing Process and Optimization · Petri Nets in System Modeling
