Skip to main content
Log in

An Approach to the Specification and Verification of a Hardware Compilation Scheme

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The use of Field Programmable Gate Arrays (FPGA) to produce custom hardware circuits rapidly using a completely software-based process is becoming increasingly widespread. Specialized Hardware Description Languages (HDL) are used to describe and develop the required circuits. In this paper, we advocate using an even more general purpose programming language, based on Occam, for the automatic compilation of high-level programs to low-level circuits. The parallel constructs of Occam can map directly to hardware as conveniently as to software, with potentially dramatic speed-up of highly parallel algorithms. We demonstrate that the compilation process can be verified using algebraic refinement laws, increasing the confidence in its correctness. Verification is particularly important in high-integrity systems where safety or security is paramount. A prototype compiler has also been produced very directly from the theorems using the logic programming language Prolog.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. F. Balarin, M. Chiodo, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, C. Passerone, A. Sangiovanni-Vincentelli, E. Sentovich, K. Suzuki, and B. Tabbara. Hardware-software Co-design of Embedded Systems: The Polis approach, Kluwer International Series in Engineering and Computer Science, 1997.

  2. G. Berry. The foundations of Esterel. In G. Plotkin, C. Stirling, and M. Tofte, eds., Proof, language and interaction: Essays in honour of Robin Milner, MIT Press, 425-454, 2000.

  3. J. P. Bowen, ed. Towards Verified Systems, Real-Time Safety Critical Systems series, Vol. 2, Elsevier Science, 1994.

  4. J. P. Bowen. The ethics of safety-critical systems. Communcations of the ACM, 43(4):91-97, April 2000.

    Google Scholar 

  5. J. P. Bowen and H. Jifeng. Hardware compilation: Verification and rapid-prototyping. Technical Report RUCS/1999/TR/012/A, Department of Computer Science, The University of Reading, UK, October 1999.

    Google Scholar 

  6. J. P. Bowen, H. Jifeng, and I. Page. Hardware compilation. In [3], Chapter 10, pp. 193-207, 1994.

  7. J. P. Bowen, H. Jifeng, and X. Qiwen. An animatable operational semantics of the Verilog Hardware Description Language. In Shaoying Liu, J. A. McDermid and M. G. Hinchey, eds., Proc. ICFEM2000: 3rd IEEE International Conference on Formal Engineering Methods, York, UK, 4–6 September 2000, pp. 199-207. IEEE Computer Society Press, 2000.

  8. J. P. Bowen and M. G. Hinchey. High-Integrity System Specification and Design, Formal Approaches to Computing and Information Technology (FACIT) series, Springer-Verlag, 1999.

  9. P. T. Breuer, N. Martinez Madrid, J. P. Bowen, R. France, M. Larrondo Petrie, and C. Delgado Kloos, Reasoning about VHDL and VHDL-AMS using denotational semantics. In D. Borrione, ed., DATE'99: Design, Automation & Test in Europe, Munich, Germany, 9–12 March 1999, pages 346-352, ACM, 1999.

  10. Celoxica. Handel-C: Product Information Sheet, Milton Park, Abingdon, Oxfordshire, UK, 2001. URL: http://www.celoxica.com

  11. A. Cerone, A. J. Cowie, and G. J. Milne. The Circal system. In Proc. 6th International Conference on Algebraic Methodologies and Software Technology (AMAST'97), Sydney, Australia, 13–17 December 1997. Lecture Notes in Computer Science, Vol. 1349, pp. 563-564. Springer-Verlag, 1997.

    Google Scholar 

  12. L. Garber and D. Sims. In pursuit of hardware-software codesign. IEEE Computer, 31(6):12-14, June 1998.

    Google Scholar 

  13. H. Jifeng. Provably Correct Systems: Modelling of Communication Languages and Design of Optimized Compilers, McGraw-Hill International Series in Software Engineering, 1995.

  14. H. Jifeng. A common framework for mixed hardware/software systems. In K. Araki, A. Galloway and K. Taguchi, eds., IFM 99: Proceedings of the 1st International Conference on Integrated Formal Methods, York, 28–29 June 1999, pp. 1-15. Springer-Verlag, 1999.

  15. H. Jifeng. A behavioral model for co-design. In J. M. Wing, J. Woodcock and J. Davis, eds., FM'99-Formal Methods, Lecture Notes in Computer Science, Vol. 1709, pp. 1420-1438. Springer-Verlag, 1999.

  16. H. Jifeng and J. P. Bowen. Specification, verification and prototyping of an optimized compiler. Formal Aspects of Computing, 6(6):643-658, 1994.

    Google Scholar 

  17. H. Jifeng, I. Page, and J. P. Bowen. Towards a provably correct hardware implementation of Occam. In G. J. Milne and L. Pierre, eds., Correct Hardware Design and Verification Methods, Lecture Notes in Computer Science, Vol. 683, pp. 214-226. Springer-Verlag, 1993.

  18. M. G. Hinchey and J. P. Bowen, eds. Industrial-Strength Formal Methods in Practice, Formal Approaches to Computing and Information Technology (FACIT) series, Springer-Verlag, 1999.

  19. C. A. R. Hoare. The logic of engineering design. Microprocessing and Microprogramming, 41(8–9): 525-539, 1996.

    Google Scholar 

  20. C. A. R. Hoare and H. Jifeng. Unifying Theories of Programming, Prentice Hall Series in Computer Science, 1998.

  21. C. A. R. Hoare and I. Page. Hardware and software: Closing the gap. Transputer Communications, 69-90, June 1994.

  22. J. Iyoda, A. Sampaio, and L. Silva. ParTS: A partitioning transformation system. In J. M. Wing, J. Woodcock and J. Davis, eds., FM'99-Formal Methods, Lecture Notes in Computer Science, Vol. 1709 pp. 1400-1419. Springer-Verlag, 1999.

  23. G. Milne. CIRCAL and the representation of communication, concurrency and time. ACM Transactions on Programming Languages and Systems, 7(2):270-298, 1985.

    Google Scholar 

  24. I. Page. Constructing hardware-software systems from a single description. Journal of VLSI Signal Processing, 12(1):87-107, 1996.

    Google Scholar 

  25. I. Page and W. Luk. Compiling Occam into Field-Programmable Gate Arrays. In W. Moore and W. Luk, eds., FPGAs, pp. 271-284. Abingdon EE&CS Books, Abingdon, UK, 1991.

    Google Scholar 

  26. A. W. Roscoe and C. A. R. Hoare. Laws of Occam programming. Theoretical Computer Science, 60: 177-229, 1988.

    Google Scholar 

  27. P. Shaw. A Generic Approach to Compiling Occam into Circuits. PhD thesis, Department of Computer Science, University of Strathclyde, UK, December 1994.

    Google Scholar 

  28. P. Shaw and G. Milne. A highly parallel FPGA-based machine and its formal verification. In Proc. FPL92, pp. 162-173, 1992.

  29. J. Staunstrup and W. Wolf, eds. Hardware/Software Co-design: Principles and practice, Kluwer Academic Publishers, 1997.

  30. N. Wirth. Hardware compilation: Translating programs into circuits. IEEE Computer, 31(6):25-31, June 1998.

    Google Scholar 

  31. Xilinx, Inc. Spartan Series FPGAs, San Jose, California, USA, 1999. URL: http://www.xilinx.com/ products/spartan.htm

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Bowen, J.P., Jifeng, H. An Approach to the Specification and Verification of a Hardware Compilation Scheme. The Journal of Supercomputing 19, 23–39 (2001). https://doi.org/10.1023/A:1011184310224

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1011184310224

Navigation