Skip to main content

Language Issues of Compiling Ada to Hardware

  • Conference paper
  • First Online:
  • 317 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2361))

Abstract

A key issue in the implementation of real-time systems is the ability to statically analyse the timing behaviour of the system, to ensure that important timing requirements are met. The increasing complexity of modern processors make the determination of the worst-case execution time of software difficult via analytical means.

This paper discusses the compilation of Ada programs directly to hardware circuits, so removing the need for a processor. The solution is discussed in terms of Ada (specifically a Ravenscar / SPARK subset). The contributions of the paper are twofold. Firstly, the compilation of Ada to hardware (Field-Programmmable Gate Arrays) is described. Secondly, issues with the Ada language are addressed. These relate to processor concepts (eg. interrupts, representation clauses) that are embodied in the language that need to be modified for compilation to hardware.

This work was supported by EPSRC and BAE SYSTEMS

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Ada 95 Reference Manual. Intermetrics, January 1995.

    Google Scholar 

  2. Ada Semantic Interface Specification (ASIS). Technical Report ISO/IEC 15291, IEC, 1999.

    Google Scholar 

  3. M. Bowen. Handel-C Language Reference Manual. Embedded Solutions Limited, 2.1 edition, 1998.

    Google Scholar 

  4. A. Burns and A. Wellings. Real Time Systems and Programming Languages. Addison Wesley, 2nd edition, 1996.

    Google Scholar 

  5. T. J. Callahan, J. R. Hauser, and J. Wawrzynek. The garp architecture and c compiler. IEEE Computer, 33(4):62–69, 2000.

    Google Scholar 

  6. S. Franklid. Manual for VHDL++. Technical report, Dept. Information Technology, DTU Lyngby, 1999.

    Google Scholar 

  7. D. Galloway. The Transmogrifier C Hardware Description Language and Compiler for FPGAs. In FPGAs for Custom Computing Machines, 1995.

    Google Scholar 

  8. C. A. Healy, D. B. Whalley, and M. G. Harmon. Integrating the Timing Analysis of Pipelining and Instruction Caching. In Proceedings of the 16th Symposium on Real-Time Systems, pages 288–297. IEEE, 1995.

    Google Scholar 

  9. S. Holmstrom. SL-A Structural Hardware Design Language. In Proceedings of the 9th International Workshop on Field-Programmable Logic and Applications, volume 1673, pages 371–376. LNCS, Springer-Verlag, 1999.

    Google Scholar 

  10. H. Jensen, K. Larsen, and A. Skou. Scaling up UPPAAL-Automatic verification of real-time systems using compositionality and abstraction. In Proceedings of Formal Techniques in Real-Time and Fault-Tolerant Systems, volume 1926, pages 19–30. LNCS, Springer-Verlag, 2000.

    Chapter  Google Scholar 

  11. Y.-T. S. Li and S. Malik. Performance Analysis of Real-Time Embedded Software. Klewer Academic, 1999.

    Google Scholar 

  12. S.-S. Lim, J. H. Han, J. Kim, and S. L. Min. A Worst Case Timing Analysis Technique for Multiple-Issue Machines. In Proceedings of the 19th IEEE Symposium on Real-Time Systems, pages 334–345, 1998.

    Google Scholar 

  13. W. Luk and S. McKeever. Pebble: A Language for Parametrised and Reconfigurable Hardware Design. In Proceedings of FPL’ 98, volume 1482, pages 9–18. LNCS, Springer-Verlag, 1998.

    Google Scholar 

  14. T. Lundqvist and P. Stenstrom. A method to improve the estimated worst-case performance of data caching. In Proc. of the 6th Int. Con. on Real-Time Computing Systems and Applications (RTCSA’99), pages 255–262, December 1999.

    Google Scholar 

  15. S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, 1997.

    Google Scholar 

  16. I. Page and W. Luk. Compiling Occam into FPGAs. In FPGAs, pages 271–283. Abingdon EE&CS Books, Abingdon, UK, 1991.

    Google Scholar 

  17. C. Y. Park. Predicting Program Execution Times by Analyzing Static and Dynamic Paths. Real-Time Systems, 5(1):31–62, 1993.

    Article  Google Scholar 

  18. P. Puschner and C. Koza. Calculating the Maximum Execution Time of Real-Time Programs. Real-Time Systems, 1(2):159–176, 1989.

    Article  Google Scholar 

  19. VHDL Language Reference Manual. Technical Report 1076-1993, ANSI/IEEE, 1993.

    Google Scholar 

  20. M. Ward and N. C. Audsley. Hardware Compilation of Sequential Ada. In Proceedings of CASES 2001, pages 99–107, 2001.

    Google Scholar 

  21. Xilinx product information: http://www.xilinx.com/products, 2001.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ward, M., Audsley, N.C. (2002). Language Issues of Compiling Ada to Hardware. In: Blieberger, J., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2002. Ada-Europe 2002. Lecture Notes in Computer Science, vol 2361. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48046-3_7

Download citation

  • DOI: https://doi.org/10.1007/3-540-48046-3_7

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-43784-0

  • Online ISBN: 978-3-540-48046-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics