From visual to logical formalisms for SoC validation

In current SoCs, key infrastructure capabilities are distributed across many components and involve tight software, firmware, and hardware interaction. Examples include resets, power management, security, and more. The architectural complexity of these features often results in specification errors that when found quite late in the product life cycle are very costly to fix. This means that we have to find ways to analyze the architectural specification and not only the implementation. To address these issues, we describe a framework called iPave that supports the following capabilities: (1) A common, formal system-level specification serving as a contract between different design teams; (2) Specification analysis with focus on cross-component assumptions and dependencies; and (3) A method to reuse the specification as a global checker to assure that the implementation is compliant with the specification across all validation platforms (simulation, emulation, silicon). At the front end of this framework we have an intuitive visual formalism, iFlow, which makes it easy for architects to specify system-level protocols, while at the back end we have a new logical formalism, called Logic Sequence Diagrams (LSDs), which enables formal compliance checking across different validation platforms.

[1]  Sharad Malik,et al.  Automating Hazard Checking in Transaction-Level Microarchitecture Models , 2007 .

[2]  Christian Haubelt,et al.  Integrating Hardware/Firmware Verification Efforts Using SystemC High-Level Models , 2010, MBMV.

[3]  Brian Bailey,et al.  ESL Design and Verification: A Prescription for Electronic System Level Methodology , 2007 .

[4]  Moshe Y. Vardi,et al.  LTL Satisfiability Checking , 2007, SPIN.

[5]  Bertrand Meyer,et al.  Applying 'design by contract' , 1992, Computer.

[6]  Klaus Schneider,et al.  Verification of Reactive Systems: Formal Methods and Algorithms , 2003 .

[7]  Stephan Merz,et al.  Model Checking , 2000 .

[8]  Amir Pnueli,et al.  On the Formal Semantics of Statecharts (Extended Abstract) , 1987, LICS.

[9]  Moshe Y. Vardi Alternating Automata and Program Verification , 1995, Computer Science Today.

[10]  David Harel,et al.  LSCs: Breathing Life into Message Sequence Charts , 1999, Formal Methods Syst. Des..

[11]  Moshe Y. Vardi,et al.  Validation of SoC firmware-hardware flows: Challenges and solution directions , 2014, 2014 51st ACM/EDAC/IEEE Design Automation Conference (DAC).

[12]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[13]  Leslie Lamport,et al.  High-Level Specifications: Lessons from Industry , 2002, FMCO.

[14]  MeyerBertrand,et al.  Design by Contract , 1997 .

[15]  Helmut Veith,et al.  Progress on the State Explosion Problem in Model Checking , 2001, Informatics.

[16]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[17]  Amnon Naamad,et al.  The STATEMATE semantics of statecharts , 1996, TSEM.

[18]  Daniel Kroening,et al.  Formal co-validation of low-level hardware/software interfaces , 2013, 2013 Formal Methods in Computer-Aided Design.

[19]  Adrian Giurca,et al.  Towards a BPMN Semantics Using UML Models , 2008, Business Process Management Workshops.

[20]  Jeremy Gibbons,et al.  A Process Semantics for BPMN , 2008, ICFEM.

[21]  Mark R. Tuttle,et al.  Protocol verification using flows: An industrial experience , 2009, 2009 Formal Methods in Computer-Aided Design.

[22]  Remco M. Dijkman,et al.  Semantics and analysis of business process models in BPMN , 2008, Inf. Softw. Technol..

[23]  Edsger W. Dijkstra,et al.  Cooperating sequential processes , 2002 .

[24]  Patrick McDermott,et al.  Workflow Modeling: Tools for Process Improvement and Application Development , 2001 .

[25]  Ekkart Rudolph,et al.  Tutorial on Message Sequence Charts , 1996, Comput. Networks ISDN Syst..

[26]  Harry Foster,et al.  Principles of verifiable RTL design - a functional coding style supporting verification processes in Verilog , 2000 .

[27]  Amir Pnueli,et al.  What is in a Step: On the Semantics of Statecharts , 1991, TACS.

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

[29]  Thorsten Grotker,et al.  System Design with SystemC , 2002 .

[30]  Sharad Malik,et al.  Automating Hazard Checking in Transaction-Level Microarchitecture Models , 2007, Formal Methods in Computer Aided Design (FMCAD'07).

[31]  Moshe Y. Vardi Formal Techniques for SystemC Verification; Position Paper , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[32]  David Harel,et al.  On visual formalisms , 1988, CACM.

[33]  Jin Yang,et al.  Security of SoC firmware load protocols , 2014, 2014 IEEE International Symposium on Hardware-Oriented Security and Trust (HOST).

[34]  Dana Fisman,et al.  A Framework for Inherent Vacuity , 2009, Haifa Verification Conference.

[35]  Magdy S. Abadir,et al.  Guest Editorial: Test and Verification Challenges for Future Microprocessors and SoC Designs , 2013, J. Electron. Test..

[36]  Kathi Fisler Extending Formal Reasoning with Support for Hardware Diagrams , 1994, TPCD.

[37]  Stephen A. White,et al.  BPMN modeling and reference guide : understanding and using BPMN : develop rigorous yet understandable graphical representations of business processes , 2008 .

[38]  Michel Diaz,et al.  Petri Nets: Fundamental Models, Verification and Applications , 2009 .

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

[40]  Klaus Schneider Verification of Reactive Systems , 2004, Texts in Theoretical Computer Science.

[41]  David Harel,et al.  LSC'S: BREATHING LIFE INTO MESSAGE SEQUENCE CHARTS , 2022 .