Correct Hardware Design and Verification Methods

ion and Compositional Techniques From Asymmetry to Full Symmetry: New Techniques for Symmetry Reduction in Model Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 E.Allen Emerson, Richard J. Trefler Automatic Error Correction of Large Circuits Using Boolean Decomposition and Abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 Dirk W. Hoffmann, Thomas Kropf Abstract BDDs: A Technique for Using Abstraction in Model Checking . . . 172 Edmund Clarke, Somesh Jha, Yuan Lu, Dong WangBDDs: A Technique for Using Abstraction in Model Checking . . . 172 Edmund Clarke, Somesh Jha, Yuan Lu, Dong Wang Theorem Proving Related Approaches Formal Synthesis at the Algorithmic Level . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Christian Blumenröhr, Viktor Sabelfeld Xs Are for Trajectory Evaluation, Booleans Are for Theorem Proving . . . . . 202 Mark Aagaard, Thomas Melham, John O’Leary Verification of Infinite State Systems by Compositional Model Checking . . 219 K.L.McMillan Symbolic Simulation/Symbolic Traversal Formal Verification of Designs with Complex Control by Symbolic Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Gerd Ritter, Hans Eveking, Holger Hinrichsen Hints to Accelerate Symbolic Traversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Kavita Ravi, Fabio Somenzi Specification Languages and Methodologies Modeling and Checking Networks of Communicating Real-Time Processes . 265 Jürgen Ruf, Thomas Kropf ”Have I Written Enough Properties?” A Method of Comparison between Specification and Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Sagi Katz, Orna Grumberg, Danny Geist Program Slicing of Hardware Description Languages . . . . . . . . . . . . . . . . . . . . 298 E.Clarke, M.Fujita, S.P.Rajan, T.Reps, S.Shankar, T.Teitelbaum Table of

[1]  G. Hachtel,et al.  Modular Verification of Multipliers , 1996, FMCAD.

[2]  Olivier Coudert,et al.  Automating the diagnosis and the rectification of design errors with PRIAM , 1989, 1989 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[3]  Bill Roscoe Verifying Determinism of Concurrent Systems Which Use Unbounded Arrays , 1998 .

[4]  A. Prasad Sistla,et al.  Automatic verification of finite state concurrent system using temporal logic specifications: a practical approach , 1983, POPL '83.

[5]  Orna Grumberg,et al.  Model checking and modular verification , 1994, TOPL.

[6]  Randal E. Bryant,et al.  Bit-Level Abstraction in the Verfication of Pipelined Microprocessors by Correspondence Checking , 1998, FMCAD.

[7]  Wojtek Kozaczynski,et al.  Automated support for legacy code understanding , 1994, CACM.

[8]  Susan Horwitz,et al.  Identifying the semantic and textual differences between two versions of a program , 1990, PLDI '90.

[9]  David W. Binkley,et al.  Precise executable interprocedural slices , 1993, LOPL.

[10]  Thomas A. Henzinger,et al.  Fair Simulation , 1997, Inf. Comput..

[11]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[12]  Robert W. Brodersen,et al.  A methodology for the design and implementation of communication protocols for embedded wireless systems , 1998 .

[13]  David L. Dill,et al.  Better verification through symmetry , 1996, Formal Methods Syst. Des..

[14]  Thomas Kropf,et al.  Using MTBDDs for discrete timed symbolic model checking , 1997, Proceedings European Design and Test Conference. ED & TC 97.

[15]  David L. Dill,et al.  Formal Verification of Out-of-Order Execution Using Incremental Flushing , 1998, CAV.

[16]  Kathi Fisler,et al.  Bisimulation Minimization in an Automata-Theoretic Verification Framework , 1998, FMCAD.

[17]  Klaus Schneider,et al.  Model Checking on Product Structures , 1998, FMCAD.

[18]  Thomas W. Reps,et al.  Precise interprocedural chopping , 1995, SIGSOFT FSE.

[19]  Michael C. McFarland Formal analysis of correctness of behavioral transformations , 1993, Formal Methods Syst. Des..

[20]  M. K. Srivas,et al.  Applying formal verification to a commercial microprocessor , 1995, Proceedings of ASP-DAC'95/CHDL'95/VLSI'95 with EDA Technofair.

[21]  Miriam Leeser,et al.  Toward a Super Duper Hardware Tactic , 1993, HUG.

[22]  Ramayya Kumar,et al.  Formal Synthesis in Circuit Design - A Classification and Survey , 1996, FMCAD.

[23]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[24]  Carl-Johan H. Seger,et al.  Formal verification using parametric representations of Boolean constraints , 1999, DAC '99.

[25]  Paolo Prinetto,et al.  Formal verification of hardware correctness: introduction and survey of current research , 1988, Computer.

[26]  Robin Milner,et al.  Algebraic laws for nondeterminism and concurrency , 1985, JACM.

[27]  David L. Dill,et al.  Efficient validity checking for processor verification , 1995, ICCAD.

[28]  Wolfgang Thomas,et al.  Automata on Infinite Objects , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[29]  Jeffrey J. Joyce,et al.  Linking BDD-Based Symbolic Evaluation to Interactive Theorem-Proving , 1993, 30th ACM/IEEE Design Automation Conference.

[30]  Pierre Wolper,et al.  Reasoning About Infinite Computations , 1994, Inf. Comput..

[31]  Stefan Höreth Implementation of a multiple-domain decision diagram package , 1997, CHARME.

[32]  Steven D. Johnson,et al.  DDD: A System for Mechanized Digital Design Derivation , 1991 .

[33]  A. Prasad Sistla,et al.  Symmetry and model checking , 1993, Formal Methods Syst. Des..

[34]  Keith Brian Gallagher,et al.  Using Program Slicing in Software Maintenance , 1991, IEEE Trans. Software Eng..

[35]  Edmund M. Clarke,et al.  Sequential circuit verification using symbolic model checking , 1991, DAC '90.

[36]  A. Prasad Sistla,et al.  Utilizing Symmetry when Model Checking under Fairness Assumptions: An Automata-theoretic Approach , 1995, CAV.

[37]  Yanhong A. Liu,et al.  Static caching for incremental computation , 1998, TOPL.

[38]  Dhiraj K. Pradhan,et al.  Novel Verification Framework Combining Structural and OBDD Methods in a Synthesis Environment , 1995, 32nd Design Automation Conference.

[39]  Robert K. Brayton,et al.  Reachability analysis using partitioned-ROBDDs , 1997, 1997 Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[40]  R. M. Tomasulo,et al.  An efficient algorithm for exploiting multiple arithmetic units , 1995 .

[41]  Sofiène Tahar,et al.  On the Verification and Reimplementation of an ATM Switch Fabric Using VIS , 1997 .

[42]  Robin Milner,et al.  An Algebraic Definition of Simulation Between Programs , 1971, IJCAI.

[43]  Kenneth L. McMillan The smv system draft , 1992 .

[44]  Ganesh Gopalakrishnan,et al.  Decomposing the Proof of Correctness of pipelined Microprocessors , 1998, CAV.

[45]  Ching-Tsun Chou Predicates, Temporal Logic, and Simulations , 1993, HUG.

[46]  Christian Blumenröhr,et al.  A Formal Approach to Specify and Synthesize at the System Level , 1999, MBMV.

[47]  Thomas W. Reps,et al.  Speeding up slicing , 1994, SIGSOFT '94.

[48]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[49]  Joakim von Wright Mechanising the Temporal Logic of Actions in HOL , 1991, International Conference on Theorem Proving in Higher Order Logics.

[50]  Magdy S. Abadir,et al.  Logic design verification via test generation , 1988, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

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

[52]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[53]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[54]  Ásgeir Th. Eiríksson The Formal Design of 1M-gate ASICs , 1998, FMCAD.

[55]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[56]  Thomas A. Henzinger,et al.  Symbolic model checking for real-time systems , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[57]  Thomas Kropf,et al.  Symbolic model checking for a discrete clocked temporal logic with intervals , 1997, CHARME.

[58]  Dominique Borrione,et al.  Connection error location and correction in combinational circuits , 1997, Proceedings European Design and Test Conference. ED & TC 97.

[59]  Ilan Beer,et al.  RuleBase: an industry-oriented formal verification tool , 1996, DAC '96.

[60]  Pierre G. Paulin,et al.  Force-directed scheduling for the behavioral synthesis of ASICs , 1989, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[61]  Amir Pnueli,et al.  Some Progress in the Symbolic Verification of Timed Automata , 1997, CAV.

[62]  Masahiro Tomita,et al.  An algorithm for locating logic design errors , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[63]  Thomas A. Henzinger,et al.  Reactive Modules , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[64]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[65]  Randal E. Bryant,et al.  Formal verification by symbolic evaluation of partially-ordered trajectories , 1995, Formal Methods Syst. Des..

[66]  Claus Lewerentz,et al.  Formal Development of Reactive Systems: Case Study Production Cell , 1995 .

[67]  Aarti Gupta,et al.  Formal hardware verification methods: A survey , 1992, Formal Methods Syst. Des..

[68]  Edmund M. Clarke,et al.  Model checking, abstraction, and compositional verification , 1993 .

[69]  Steven D. Johnson,et al.  Studies of the Single Pulser in Various Reasoning Systems , 1994, TPCD.

[70]  Somesh Jha,et al.  Exploiting symmetry in temporal logic model checking , 1993, Formal Methods Syst. Des..

[71]  Armin Biere,et al.  Combining Symbolic Model Checking with Uninterpreted Functions for Out-of-Order Processor Verification , 1998, FMCAD.

[72]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[73]  Masahiro Fujita,et al.  Spectral Transforms for Large Boolean Functions with Applications to Technology Mapping , 1993, 30th ACM/IEEE Design Automation Conference.

[74]  Mats Larsson An Engineering Approach to Formal Digital System Design , 1994, TPHOLs.

[75]  Yanhong A. Liu,et al.  CACHET: an interactive, incremental-attribution-based program transformation system for deriving incremental programs , 1995, Proceedings 1995 10th Knowledge-Based Software Engineering Conference.

[76]  E. Clarke,et al.  Real-time symbolic model checking for discrete time models , 1994 .

[77]  Randal E. Bryant,et al.  Formal Verification of Digital Circuits Using Symbolic Ternary System Models , 1990, CAV.

[78]  David W. Binkley,et al.  Program slicing , 2008, 2008 Frontiers of Software Maintenance.

[79]  Robert E. Tarjan,et al.  Three Partition Refinement Algorithms , 1987, SIAM J. Comput..

[80]  Kenneth L. McMillan,et al.  Verification of an Implementation of Tomasulo's Algorithm by Compositional Model Checking , 1998, CAV.

[81]  Carl-Johan H. Seger,et al.  Symbolic Trajectory Evaluation , 1997, Formal Hardware Verification.

[82]  Robert K. Brayton,et al.  Structural Symmetry and Model Checking , 1998, CAV.

[83]  Luciano Lavagno,et al.  Disjunctive partitioning and partial iterative squaring: an effective approach for symbolic traversal of large circuits , 1997, DAC.

[84]  Jerry R. Burch,et al.  Mechanically Checking a Lemma Used in an Automatic Verification Tool , 1996, FMCAD.

[85]  Dominique Borrione,et al.  A method for automatic design error location and correction in combinational logic circuits , 1996, J. Electron. Test..

[86]  Detlef Schmid,et al.  On the efficiency of formal synthesis-experimental results , 1999, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[87]  Somesh Jha,et al.  Equivalence checking using abstract BDDs , 1997, Proceedings International Conference on Computer Design VLSI in Computers and Processors.

[88]  Krzysztof Kuchcinski,et al.  Automated transformation of algorithms into register-transfer level implementations , 1994, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[89]  Jian Shen,et al.  On Combining Formal and Informal Verification , 1997, CAV.

[90]  Edmund M. Clarke,et al.  Model checking and abstraction , 1994, TOPL.

[91]  Yanhong A. Liu,et al.  Systematic Derivation of Incremental Programs , 1995, Sci. Comput. Program..

[92]  David L. Dill,et al.  Validation with guided search of the state space , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[93]  David Binkley,et al.  Using semantic differencing to reduce the cost of regression testing , 1992, Proceedings Conference on Software Maintenance 1992.

[94]  Belhassen Zouari,et al.  Symbolic Reachability Graph and Partial Symmetries , 1995, Application and Theory of Petri Nets.

[95]  Wolfgang Rosenstiel,et al.  A scalable methodology for cost estimation in a transformational high-level design space exploration environment , 1998, Proceedings Design, Automation and Test in Europe.

[96]  Gjalt G. de Jong An Automata Theoretic Approach to Temporal Logic , 1991, CAV.

[97]  Robert K. Brayton,et al.  Automatic Datapath Abstraction In Hardware Systems , 1995, CAV.

[98]  Yanhong A. Liu,et al.  Principled strength reduction , 1997, Algorithmic Languages and Calculi.

[99]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[100]  Costas Terzides Transformational Design , 2001 .

[101]  Kenneth L. McMillan,et al.  Symbolic model checking: an approach to the state explosion problem , 1992 .

[102]  Yanhong A. Liu,et al.  Incremental Computation: A Semantics-Based Systematic Transformational Approach , 1995 .

[103]  Orna Kupferman,et al.  Freedom, weakness, and determinism: from linear-time to branching-time , 1998, Proceedings. Thirteenth Annual IEEE Symposium on Logic in Computer Science (Cat. No.98CB36226).

[104]  Hiroto Yasuura,et al.  Program Slicing on VHDL Descriptions and Its Evaluation (Special Section on VLSI Design and CAD Algorithms) , 1998 .

[105]  E. Allen Emerson,et al.  Temporal and Modal Logic , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[106]  Alan J. Hu Formal hardware verification with BDDs: an introduction , 1997, 1997 IEEE Pacific Rim Conference on Communications, Computers and Signal Processing, PACRIM. 10 Years Networking the Pacific Rim, 1987-1997.

[107]  Daniel Jackson,et al.  A new model of program dependences for reverse engineering , 1994, SIGSOFT '94.

[108]  Gianpiero Cabodi,et al.  Improved reachability analysis of large finite state machines , 1996, Proceedings of International Conference on Computer Aided Design.

[109]  E. Allen Emerson,et al.  Model Checking Real-Time Properties of Symmetric Systems , 1998, MFCS.

[110]  Robert K. Brayton,et al.  Verification Using Uninterpreted Functions and Finite Instantiations , 1996, FMCAD.

[111]  Kavita Ravi,et al.  High-density reachability analysis , 1995, ICCAD.

[112]  Timothy Kam,et al.  Coverage estimation for symbolic model checking , 1999, DAC '99.

[113]  A. Prasad Sistla Symmetry Reductions in Model-Checking , 2003, VMCAI.

[114]  Mark Longley,et al.  Formal Synthesis of Digital Systems , 1989 .

[115]  Carl Pixley,et al.  Design Constraints in Symbolic Model Checking , 1998, CAV.

[116]  Masahiro Fujita,et al.  Program Slicing of Hardware Description Languages , 1999, CHARME.

[117]  Hans Eveking,et al.  Formal synthesis for pipeline design , 1999 .

[118]  Yanhong A. Liu,et al.  A systematic incrementalization technique and its application to hardware design , 2003, International Journal on Software Tools for Technology Transfer.

[119]  K. Schneider,et al.  A HOL Conversion for Translating Linear Time Temporal Logic to ω-Automata ? , 1999 .

[120]  Elaine J. Weyuker,et al.  Analyzing Partition Testing Strategies , 1991, IEEE Trans. Software Eng..

[121]  Fumiyasu Hirose,et al.  CTL model checking based on forward state traversal , 1996, Proceedings of International Conference on Computer Aided Design.

[122]  Ilan Beer,et al.  Efficient Model Checking by Automated Ordering of Transition Relation Partitions , 1994, CAV.

[123]  Ching-Tsun Chou,et al.  The Mathematical Foundation fo Symbolic Trajectory Evaluation , 1999, CAV.

[124]  Robert K. Brayton,et al.  Retiming and resynthesis: optimizing sequential networks with combinational techniques , 1991, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[125]  Kavita Ravi,et al.  Efficient fixpoint computation for invariant checking , 1999, Proceedings 1999 IEEE International Conference on Computer Design: VLSI in Computers and Processors (Cat. No.99CB37040).

[126]  Pierre Wolper,et al.  Expressing interesting properties of programs in propositional temporal logic , 1986, POPL '86.

[127]  Joseph Sifakis,et al.  Property preserving abstractions for the verification of concurrent systems , 1995, Formal Methods Syst. Des..

[128]  Nicolas Halbwachs,et al.  Minimal Model Generation , 1990, CAV.

[129]  Thomas W. Reps,et al.  Program Specialization via Program Slicing , 1996, Dagstuhl Seminar on Partial Evaluation.

[130]  David L. Dill,et al.  Reducing Manual Abstraction in Formal Verification of Out-of-Order Execution , 1998, FMCAD.

[131]  D. Brand Verification of large synthesized designs , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[132]  Hendrik Pieter Barendregt,et al.  Functional Programming and Lambda Calculus , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[133]  Luc J. M. Claesen,et al.  Symbolic multi-level verification of refinement , 1999, Proceedings Ninth Great Lakes Symposium on VLSI.

[134]  Vaughan R. Pratt,et al.  Computational aspects of the Pentium affair , 1995 .

[135]  Michael P. Fourman,et al.  Integration of Formal Methods with System Design , 1991, VLSI.

[136]  Raul Camposano Behavior-Preserving Transformations for High-Level Synthesis , 1989, Hardware Specification, Verification and Synthesis.

[137]  Kotaro Hirano,et al.  Rectification of Multiple Logic Design Errors in Multiple Output Circuits , 1994, 31st Design Automation Conference.

[138]  A. Prasad Sistla,et al.  On-the-Fly Model Checking Under Fairness that Exploits Symmetry , 1999, Formal Methods Syst. Des..

[139]  J. Strother Moore,et al.  Symbolic Simulation: An ACL2 Approach , 1998, FMCAD.

[140]  Jens Brandt,et al.  Theorem Proving in Higher Order Logics , 1997, Lecture Notes in Computer Science.

[141]  Edmund M. Clarke,et al.  Another Look at LTL Model Checking , 1994, CAV.

[142]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[143]  Ibrahim N. Hajj,et al.  Correcting multiple design errors in digital VLSI circuits , 1999, ISCAS'99. Proceedings of the 1999 IEEE International Symposium on Circuits and Systems VLSI (Cat. No.99CH36349).

[144]  Jørgen Staunstrup Specification and Verification of Concurrent Programs , 1979 .

[145]  Daniel Brand,et al.  Incremental synthesis , 1994, ICCAD '94.

[146]  Shinji Kimura Residue BDD and Its Application to the Verification of Arithmetic Circuits , 1995, 32nd Design Automation Conference.

[147]  Zohar Manna,et al.  Temporal Verification of Reactive Systems , 1995, Springer New York.

[148]  Robert K. Brayton,et al.  Implicit state enumeration of finite state machines using BDD's , 1990, 1990 IEEE International Conference on Computer-Aided Design. Digest of Technical Papers.

[149]  Ekkart Kindler,et al.  Proving correctness of distributed algorithms using high-level Petri nets-a case study , 1998, Proceedings 1998 International Conference on Application of Concurrency to System Design.

[150]  K. Schneider CTL and equivalent sublanguages of CTL , 1997 .

[151]  Thomas W. Reps,et al.  Program analysis via graph reachability , 1997, Inf. Softw. Technol..

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

[153]  Robin Sharp,et al.  The T-Ruby Design System , 1997, Formal Methods Syst. Des..

[154]  Susan Horwitz,et al.  Incremental program testing using program dependence graphs , 1993, POPL '93.

[155]  Shi-Yu Huang,et al.  Error correction based on verification techniques , 1996, DAC '96.

[156]  R. I. Bahar,et al.  Algebraic decision diagrams and their applications , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[157]  Ramayya Kumar,et al.  An Automata Theory Dedicated towards Formal Circuit Synthesis , 1995, TPHOLs.

[158]  F. Brglez,et al.  A neutral netlist of 10 combinational benchmark circuits and a target translator in FORTRAN , 1985 .

[159]  R. Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, Proceedings of 1993 International Conference on Computer Aided Design (ICCAD).

[160]  Robert P. Kurshan,et al.  Computer-Aided Verification of Coordinating Processes: The Automata-Theoretic Approach , 2014 .

[161]  David Park,et al.  Concurrency and Automata on Infinite Sequences , 1981, Theoretical Computer Science.

[162]  Ibrahim N. Hajj,et al.  Diagnosis and Correction of Logic Design Errors in Digital Circuits , 1993, 30th ACM/IEEE Design Automation Conference.

[163]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1988, SIGP.

[164]  Ramayya Kumar,et al.  Implementation Issues About the Embedding of Existing High Level Synthesis Algorithms in HOL , 1996, TPHOLs.

[165]  Thomas W. Reps,et al.  Integrating non-intering versions of programs , 1988, POPL '88.

[166]  Somesh Jha,et al.  Verification of the Futurebus+ cache coherence protocol , 1993, Formal Methods Syst. Des..