Towards Provably-Correct Hardware Compilation Tools Based on Pass Separation Techniques

  • Steve McKeever
  • Wayne Luk
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2144)


This paper presents a framework for verifying compilation tools based on parametrised hardware libraries expressed in Pebble, a simple declarative language. An approach based on pass separation techniques is described for specifying and verifying Pebble abstraction mechanisms, such as the loop statement. We show how this approach can be used to verify the correctness of the flattening procedure in the Pebble compiler, which also results in a more efficient implementation than a non-verified version. The approach is useful for guiding compiler implementations for Pebble and related languages such as VHDL; it may also form the basis for automating the generation of provably-correct tools for hardware development.


Augmented Reality Main Block Local Wire Structural Operational Semantic Abstraction Mechanism 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    I. Attali, J. Chazarain and S. Gilette, “Incremental evaluation of natural semantics specifications”, Proc. 4th Int. Symp. on Programming Language Implementation and Logic Programming, LNCS 631, Springer, 1992.Google Scholar
  2. 2.
    L.A. Dennis et. al., “The PROSPER toolkit”, Proc. 6th Int. Conf. on Tools and Algorithms for the Construction and Analysis of Systems, LNCS 1785, Springer, 2000.CrossRefGoogle Scholar
  3. 3.
    T. Despeyroux, “Executable specification of static semantics”, Semantics of Data Types, LNCS 173, Springer, 1984.Google Scholar
  4. 4.
    D. Eisenbiegler, C. Blumenroehr and R. Kumar, “Implementation issues about the embedding of existing high level synthesis algorithms in HOL”, Theorem Proving in Higher Order Logics, LNCS 1125, Springer, 1996.Google Scholar
  5. 5.
    C. Hankin, Lambda Calculus, A guide for Computer Scientists, Oxford University Press, 1994.Google Scholar
  6. 6.
    J. He, G. Brown, W. Luk and J.W. O’Leary, “Deriving two-phase modules for a multi-target hardware compiler”, Designing Correct Circuits, Springer Electronic Workshop in Computing, 1996.Google Scholar
  7. 7.
    J. He, I. Page and J.P. Bowen, “Towards a provably correct hardware implementation of occam”, Correct Hardware Design and Verification Methods, LNCS 683, Springer, 1993.Google Scholar
  8. 8.
    C.A.R. Hoare, J. He and A. Sampaio, “Normal form approach to compiler design”, Acta Informatica, Vol. 30, pp. 701–739, 1993.zbMATHCrossRefMathSciNetGoogle Scholar
  9. 9.
    G. Jones and M. Sheeran, “Timeless truths about sequential circuits”, Concurrent Computations: Algorithms, Architectures and Technology, S.K. Tewksbury et. al. (eds.), Plenum Press, 1988.Google Scholar
  10. 10.
    G. Jones and M. Sheeran, “ircuit design in Ruby”, Formal Methods for VLSI Design, J. Staunstrup (ed.), North-Holland, 1990.Google Scholar
  11. 11.
    U. Jørring and W. Scherlis, “Compilers and staging transformations”, Proc. ACM Symp. on Principles of Programming Languages, ACM Press, 1986.Google Scholar
  12. 12.
    W. Luk and S.W. McKeever, “Pebble: a language for parametrised and reconfigurable hardware design”, Field-Programmable Logic and Applications, LNCS 1482, Springer, 1998.Google Scholar
  13. 13.
    W. Luk et. al., “A framework for developing parametrised FPGA libraries”, Field-Programmable Logic and Applications, LNCS 1142, Springer, 1996.Google Scholar
  14. 14.
    W. Luk et. al., “econfigurable computing for augmented reality”, Proc. IEEE Symp. on Field-Programmable Custom Computing Machines, IEEE Computer Society Press, 1999.Google Scholar
  15. 15.
    N. Mansouri and R. Vemuri, “Amethodology for completely automated verification of synthesized RTL designs and its integration with a high-level synthesis tool”, Formal Methods in Computer-Aided Design, LNCS 1522, Springer, 1998.CrossRefGoogle Scholar
  16. 16.
    H.R. Nielson and F. Nielson, Semantics with Applications, John Wiley and Sons, 1992.Google Scholar
  17. 17.
    F. Pfenning and C. Schrmann, “System description: Twelf-a meta-logical framework for deductive systems”, Proc. Int. Conf. on Automated Deduction, LNAI1632, Springer, 1999.Google Scholar
  18. 18.
    M. Sheeran, S. Singh and G. Stalmarck, “Checking safety properties using induction and a SAT-solver”, Proc. Int. Conf. on Formal Methods in CAD, LNCS 1954, Springer, 2000.Google Scholar
  19. 19.
    M. Weinhardt and W Luk, “Pipeline vectorization”, IEEE Trans. CAD, Vol. 20, No. 2, 2001, pp. 234–248.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Steve McKeever
    • 1
  • Wayne Luk
    • 1
  1. 1.Department of ComputingImperial CollegeLondonUK

Personalised recommendations