Removing concurrency for rapid functional verification

VLSI systems are commonly specified using sequential executable functional specifications, but implemented in a highly concurrent manner. Alhough the methods to transform between the sequential specification and concurrent implementation have been well-studied, there are still substantial difficulties in verifying that the concurrent implementation corresponds to the sequential specification after low-level optimization. The majority of methods for doing this verification have focused on strong semantic models for reasoning about systems and their specifications, but these models can add significant unnecessary complexity. In this paper, we explore a weak but effective method for reasoning about implementation relations. We show how a sequential embedding of a concurrent program can be generated, and how that embedding can be used to dramatically reduce the reachable state space of the verification problem while maintaining the semantic model of interest.

[1]  Stephen Longfield,et al.  A Low Power Asynchronous GPS Baseband Processor , 2012, 2012 IEEE 18th International Symposium on Asynchronous Circuits and Systems.

[2]  Vishal Gupta,et al.  Performance estimation and slack matching for pipelined asynchronous architectures with choice , 2008, ICCAD 2008.

[3]  John Teifel,et al.  Static tokens: using dataflow to automate concurrent pipeline synthesis , 2004, 10th International Symposium on Asynchronous Circuits and Systems, 2004. Proceedings..

[4]  Pierre Wolper,et al.  Partial-Order Methods for Temporal Verification , 1993, CONCUR.

[5]  Ahmed K. Elmagarmid,et al.  A survey of distributed deadlock detection algorithms , 1986, SGMD.

[6]  Alain J. Martin,et al.  Projection: A Synthesis Technique for Concurrent Systems , 1999, ASYNC.

[7]  John Teifel,et al.  Automated synthesis for asynchronous FPGAs , 2005, FPGA '05.

[8]  Joseph Y. Halpern,et al.  Model Checking vs. Theorem Proving: A Manifesto , 1991, KR.

[9]  Peter A. Beerel,et al.  Proteus: An ASIC Flow for GHz Asynchronous Designs , 2011, IEEE Design & Test of Computers.

[10]  Arash Saifhashemi,et al.  Verilog HDL, powered by PLI: a suitable framework for describing and modeling asynchronous circuits at all levels of abstraction , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[11]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[12]  Alain J. Martin,et al.  Quasi-Delay-Insensitive Circuits are Turing-Complete , 1995 .

[13]  Edmund M. Clarke,et al.  Model Checking , 1999, Handbook of Automated Reasoning.

[14]  Harry Foster Why the design productivity gap never happened , 2013, 2013 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[15]  John Teifel,et al.  A high-performance asynchronous FPGA: test results , 2005, 13th Annual IEEE Symposium on Field-Programmable Custom Computing Machines (FCCM'05).

[16]  Edward A. Lee,et al.  THE TOKEN FLOW MODEL , 2011 .

[17]  L. Ceze,et al.  The Deterministic Execution Hammer : How Well Does it Actually Pound Nails ? , 2011 .

[18]  Alain J. Martin The Probe: An Addition to Communication Primitives , 1985, Inf. Process. Lett..

[19]  MengChu Zhou,et al.  A Survey and Comparison of Petri Net-Based Deadlock Prevention Policies for Flexible Manufacturing Systems , 2008, IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews).

[20]  Orna Grumberg,et al.  Bounded Model Checking of Concurrent Programs , 2005, CAV.

[21]  Shin Nakajima,et al.  The SPIN Model Checker : Primer and Reference Manual , 2004 .

[22]  E. Clarke,et al.  Symbolic model checking using SAT procedures instead of BDDs , 1999, Proceedings 1999 Design Automation Conference (Cat. No. 99CH36361).

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

[24]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[25]  James C. Corbett,et al.  Evaluating Deadlock Detection Methods for Concurrent Software , 1996, IEEE Trans. Software Eng..

[26]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools (2nd Edition) , 2006 .

[27]  Marcel Rene Van der Goot Semantics of VLSI synthesis , 1996 .

[28]  Alain J. Martin,et al.  Slack Elasticity in Concurrent Computing , 1998, MPC.

[29]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[30]  Paul I. Pénzes,et al.  The design of an asynchronous MIPS R3000 microprocessor , 1997, Proceedings Seventeenth Conference on Advanced Research in VLSI.