Assertion Ranking Using RTL Source Code Analysis

We present a systematic and efficient ranking method to quantify the goodness of an assertion. We model dependencies among design variables as a directed graph called a <italic>variable dependency graph</italic>. We define <italic>assertion importance</italic> and <italic>assertion complexity metrics</italic> and use the dependency graph to algorithmically compute those two metrics. We repurpose an assertion coverage algorithm from the literature to form a statement-coverage-based ranking as our baseline. We compare our assertion ranking both qualitatively and quantitatively to this baseline. We demonstrate that our ranking is computationally more efficient than statement-coverage-based ranking and takes up to <inline-formula> <tex-math notation="LaTeX">$4366\times $ </tex-math></inline-formula> less computation time. We identify the potential design intents that each ranking prioritizes. We also discuss at length the effect of those prioritizations on the rank agreement and the bug detection ability of the top-ranked assertions according to the two rankings. Finally, we provide a comprehensive ranking for a set of assertions by combining our ranking and the statement-coverage-based ranking.

[1]  Ashish Tiwari,et al.  A Technique for Invariant Generation , 2001, TACAS.

[2]  Shobha Vasudevan,et al.  A figure of merit for assertions in verification , 2019, ASP-DAC.

[3]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[4]  William G. Griswold,et al.  Dynamically discovering likely program invariants to support program evolution , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[5]  Harry D. Foster Trends in functional verification: A 2014 industry study , 2015, 2015 52nd ACM/EDAC/IEEE Design Automation Conference (DAC).

[6]  Harry D. Foster,et al.  Assertion-Based Design , 2010 .

[7]  Dong Wang,et al.  Automatic assume guarantee analysis for assertion-based formal verification , 2005, Proceedings of the ASP-DAC 2005. Asia and South Pacific Design Automation Conference, 2005..

[8]  Harry Foster,et al.  Applied Assertion-Based Verification: An Industry Perspective , 2009, Found. Trends Electron. Des. Autom..

[9]  Corina S. Pasareanu,et al.  Verification of Java Programs Using Symbolic Execution and Invariant Generation , 2004, SPIN.

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

[11]  Moni Naor,et al.  Rank aggregation methods for the Web , 2001, WWW '01.

[12]  Shobha Vasudevan,et al.  Automatic Generation of System Level Assertions from Transaction Level Models , 2013, J. Electron. Test..

[13]  Rajeev Motwani,et al.  The PageRank Citation Ranking : Bringing Order to the Web , 1999, WWW 1999.

[14]  Nicolas de Condorcet Essai Sur L'Application de L'Analyse a la Probabilite Des Decisions Rendues a la Pluralite Des Voix , 2009 .

[15]  David Evans,et al.  Dynamically inferring temporal properties , 2004, PASTE.

[16]  Sharad Malik,et al.  Complementary use of runtime validation and model checking , 2005, ICCAD-2005. IEEE/ACM International Conference on Computer-Aided Design, 2005..

[17]  Görschwin Fey,et al.  Property mining using dynamic dependency graphs , 2017, 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC).

[18]  Shobha Vasudevan,et al.  Mining Hardware Assertions With Guidance From Static Analysis , 2013, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[19]  Shobha Vasudevan,et al.  Code coverage of assertions using RTL source code analysis , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[20]  Sergey Brin,et al.  The Anatomy of a Large-Scale Hypertextual Web Search Engine , 1998, Comput. Networks.

[21]  Zeljko Zilic,et al.  Assertion Checkers in Verification, Silicon Debug and In-Field Diagnosis , 2007, 8th International Symposium on Quality Electronic Design (ISQED'07).