Hybrid verification of a hardware modular reduction engine

Wide-operand modular math functions pose an enormous challenge for verification. We present a novel method to verify a modular reduction engine implemented as a finite state machine (FSM), leveraging a combination of model checking and theorem proving. As a first step of the verification, preconditions and post-conditions for each state transition of the FSM are identified. Next the implications from the pre-conditions to the post-conditions are verified using a model checker. The last step entails combining all the implications in a theorem prover to derive the overall correctness proof. We carried out this verification using a hybrid formal verification platform comprising the ACL2 theorem prover and IBM's model checker SixthSense, along with numerous techniques to cope with the complexities of this verification task. To our knowledge, this is the first published method for the exhaustive verification of an RTL-implementation of a wide-operand industrial modular reduction engine.

[1]  Mark Aagaard,et al.  Divider Circuit Verification with Model Checking and Theorem Proving , 2000, TPHOLs.

[2]  Jason Baumgartner,et al.  Transformation-Based Verification Using Generalized Retiming , 2001, CAV.

[3]  J. Strother Moore,et al.  An Industrial Strength Theorem Prover for a Logic Based on Common Lisp , 1997, IEEE Trans. Software Eng..

[4]  Anna Slobodov Challenges for formal verification in industrial setting , 2006 .

[5]  Robert K. Brayton,et al.  DAG-aware AIG rewriting: a fresh look at combinational logic synthesis , 2006, 2006 43rd ACM/IEEE Design Automation Conference.

[6]  David L. Dill,et al.  Automatic Formal Verification of Block Cipher Implementations , 2008, 2008 Formal Methods in Computer-Aided Design.

[7]  Jun Sawada,et al.  Automatic verification of estimate functions with polynomials of bounded functions , 2010, Formal Methods in Computer Aided Design.

[8]  D. Borrione,et al.  Formal verification of VHDL using VHDL-like ACL2 models , 2001 .

[9]  Jason Baumgartner,et al.  Scalable Automated Verification via Expert-System Guided Transformations , 2004, FMCAD.

[10]  Magnus Carlsson,et al.  Hardware/software co-verification of cryptographic algorithms using Cryptol , 2009, 2009 Formal Methods in Computer-Aided Design.

[11]  C. Seger,et al.  Formally Verifying IEEE Compliance of Floating-Point Hardware , 2022 .

[12]  C. A. J. van Eijk,et al.  Sequential equivalence checking without state space traversal , 1998, DATE.

[13]  David M. Russinoff A Mechanically Checked Proof of IEEE Compliance of the Floating Point Multiplication, Division and Square Root Algorithms of the AMD-K7™ Processor , 1998, LMS J. Comput. Math..

[14]  Alfred Menezes,et al.  Handbook of Applied Cryptography , 2018 .

[15]  Natarajan Shankar,et al.  An Integration of Model Checking with Automated Proof Checking , 1995, CAV.

[16]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[17]  Jason Baumgartner,et al.  Enhanced verification by temporal decomposition , 2009, 2009 Formal Methods in Computer-Aided Design.

[18]  Warren A. Hunt,et al.  Formalization of the DE2 Language , 2005, CHARME.

[19]  Jun Sawada,et al.  ACL2SIX: A Hint used to Integrate a Theorem Prover and an Automated Verification Tool , 2006, 2006 Formal Methods in Computer Aided Design.

[20]  Per Bjesse,et al.  Automatic generalized phase abstraction for formal verification , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[21]  Panagiotis Manolios,et al.  Computer-Aided Reasoning: An Approach , 2011 .

[22]  Anna Slobodová Challenges for Formal Verification in Industrial Setting , 2006, FMICS/PDMC.

[23]  Anna Slobodová Formal Verification of Hardware Support for Advanced Encryption Standard , 2008, 2008 Formal Methods in Computer-Aided Design.