skip to main content
10.1145/3299771.3299797acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
short-paper

Formal Verification of Optimizing Transformations during High-level Synthesis

Authors Info & Claims
Published:14 February 2019Publication History

ABSTRACT

Translation validation is the process of proving that the target code is a correct translation of the source program being compiled. In this work, we propose a translation validation method to verify code motion transformations involving loops applied during the scheduling phase of high-level synthesis (HLS). Our method is capable of ignoring false computations during translation validation. In this work, we show that how to generate a counter-trace (cTrace) using the internal information of verifier in the case of non-equivalence reported by a translation validation method. We also show how a Bounded Model Checker (CBMC) can be used to find a counterexample for a given cTrace. Experimental results demonstrate the usefulness of our method.

References

  1. Kunal Banerjee, Chandan Karfa, Dipankar Sarkar, and Chittaranjan A. Mandal. 2014. Verification of Code Motion Techniques Using Value Propagation. IEEE TCAD 33, 8 (Aug 2014), 1180--1193.Google ScholarGoogle Scholar
  2. Ramanuj Chouksey, Chandan Karfa Kunal Banerjee, Pankj Kalita, and Purandar Bhaduri. forthcoming. A Counter-Example Generation Procedure for Path based Equivalence Checkers. IET Softeware (forthcoming).Google ScholarGoogle Scholar
  3. Ramanuj Chouksey, Chandan Karfa, and Purandar Bhaduri. 2017. Translation Validation of Loop Invariant Code Optimizations Involving False Computations. In VDAT. 767--778.Google ScholarGoogle Scholar
  4. Ramanuj Chouksey, Chandan Karfa, and Purandar Bhaduri. 2018. Translation Validation of Code Motion Transformations Involving Loops. IEEE TCAD (2018).Google ScholarGoogle Scholar
  5. Ramanuj Chouksey, Chandan Karfa, and Purandar Bhaduri. forthcoming. Improving Performance of a Path-Based Equivalence Checker using Counter-Examples. In VLSID.Google ScholarGoogle Scholar
  6. Edmund Clarke, Daniel Kroening, and Flavio Lerda. 2004. A Tool for Checking ANSI-C Programs. In Tools and Algorithms for the Construction and Analysis of Systems. Springer, Berlin, Heidelberg, 168--176.Google ScholarGoogle Scholar
  7. Leonardo Mendonça de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Tools and Algorithms for the Construction and Analysis of Systems, TACAS 2008 (LNCS), Vol. 4963. Springer, Berlin, Heidelberg, 337--340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Robert W Floyd. 1967. Assigning meanings to programs. Mathematical aspects of computer science 19, 1 (1967), 19--32.Google ScholarGoogle Scholar
  9. Daniel D. Gajski, Nikil D. Dutt, Allen C.-H. Wu, and Steve Y.-L. Lin. 1992. High-level Synthesis: Introduction to Chip and System Design. Kluwer Academic Publishers, Norwell, MA, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. S. Gupta, N. Dutt, R. Gupta, and A. Nicolau. 2003. SPARK: A high-level synthesis framework for applying parallelizing compiler transformations. In Proceedings, VLSID. IEEE, 461--466. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Chandan Karfa, Chittaranjan A. Mandal, and Dipankar Sarkar. 2012. Formal verification of code motion techniques using dataflow-driven equivalence checking. ACM TODAES 17, 3 (Jul 2012), 30. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Chandan Karfa, Dipankar Sarkar, Chitta Mandal, and P. Kumar. 2008. An Equivalence-Checking Method for Scheduling Verification in High-Level Synthesis. IEEE TCAD 27, 3 (Mar 2008), 556--569. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Youngsik Kim, Shekhar Kopuri, and Nazanin Mansouri. 2004. Automated Formal Verification of Scheduling Process Using Finite State Machines with Datapath (FSMD). In ISQED 2004. IEEE Computer Society, 110--115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Chris Lattner and Vikram Adve. 2004. LLVM: A compilation framework for lifelong program analysis & transformation. In CGO 2004. IEEE, 129--142. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Formal Verification of Optimizing Transformations during High-level Synthesis

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in
    • Published in

      cover image ACM Other conferences
      ISEC '19: Proceedings of the 12th Innovations in Software Engineering Conference (formerly known as India Software Engineering Conference)
      February 2019
      238 pages
      ISBN:9781450362153
      DOI:10.1145/3299771

      Copyright © 2019 ACM

      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 14 February 2019

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • short-paper
      • Research
      • Refereed limited

      Acceptance Rates

      Overall Acceptance Rate76of315submissions,24%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader