Hardware compilation of sequential ada

Normal implementations of real-time systems on conventional processors are becoming much more difficult to prove correct to their timing specification. This is due to the complexity of modern processors (e.g. the worst case execution time of a program becomes hard to calculate in the presence of CPU speed up features such as caches and pipelines).Field Programmable Gate Arrays (FPGAs) provide a way to ease this problem by providing an implementation medium that has a simple timing model. However there is no support for real-time languages on FPGAs.This paper describes a compiler for a sequential subset of Ada95, concentrating upon compilation of subprograms and statements. It is shown how the resulting circuits give simple timing analysis. Extensions to the current compiler are explored to give support for a larger range of types and a predictable subset of the Ada95 concurrency model.

[1]  Alan Burns,et al.  The Ravenscar tasking profile for high integrity real-time programs , 1998 .

[2]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[3]  David A. Patterson,et al.  Computer Organization & Design: The Hardware/Software Interface , 1993 .

[4]  Per Stenström,et al.  A method to improve the estimated worst-case performance of data caching , 1999, Proceedings Sixth International Conference on Real-Time Computing Systems and Applications. RTCSA'99 (Cat. No.PR00306).

[5]  David B. Whalley,et al.  Integrating the timing analysis of pipelining and instruction caching , 1995, Proceedings 16th IEEE Real-Time Systems Symposium.

[6]  James B. Bladen,et al.  Ada semantic interface specification (ASIS) , 1991, TRI-Ada '91.

[7]  Samuel Holmström SL - A Structural Hardware Design Language , 1999, FPL.

[8]  B. A. Wichmann High Integrity Ada , 1997, SAFECOMP.

[9]  Alan Burns,et al.  The Ravenscar tasking profile for high integrity real-time programs , 1998, SIGAda '98.

[10]  M. F. Bowen Handel-c language reference manual , 1998 .

[11]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[12]  John Wawrzynek,et al.  The Garp Architecture and C Compiler , 2000, Computer.

[13]  Steve McKeever,et al.  Pebble: A Language for Parametrised and Reconfigurable Hardware Design , 1998, FPL.

[14]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[15]  Sharad Malik,et al.  Performance analysis of real-time embedded software , 1997 .

[16]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[17]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[18]  David R. Galloway The Transmogrifier C hardware description language and compiler for FPGAs , 1995, Proceedings IEEE Symposium on FPGAs for Custom Computing Machines.

[19]  Sang Lyul Min,et al.  A worst case timing analysis technique for multiple-issue machines , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[20]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[21]  John Barnes,et al.  High Integrity Ada: The Spark Approach , 1997 .