SYLVESTRE Loic
Team : APR
Arrival date : 10/01/2021
- Sorbonne Université - LIP6
Boîte courrier 169
Couloir 25-26, Étage 3, Bureau 331
4 place Jussieu
75252 PARIS CEDEX 05
FRANCE
Tel: +33 1 44 27 88 04, Loic.Sylvestre (at) nulllip6.fr
https://perso.lip6.fr/Loic.Sylvestre
Supervision : Emmanuel CHAILLOUX
Co-supervision : SEROT Jocelyn (CNRS/UCA/SIGMA)
Safe, expressive and efficient programming of FPGA-based reprogrammable circuits
Widely used for the past twenty years by the digital circuit design community, FPGA-based reconfigurable circuits (Field Programmable Gate Array) are the subject of growing interest from programmers in the broadest sense, particularly for embedded applications with critical performance or safety. By allowing the hardware to be "tailored" to the needs of the software, this type of circuit offers a novel way of bypassing the limitations of conventional processors. In the state of the art, the efficient programming of this type of circuit requires the use of languages dedicated to hardware description (Hardware Description Languages) such as VHDL or Verilog. While these language allow a fine control and an optimal exploitation of the available hardware resources, they are nevertheless characterized by a low level of abstraction, which makes their use delicate by a public not familiar with hardware design. To address these difficulties, a hybrid approach is proposed. The idea is to have the main program, written in a high level host language (functional, imperative, ...), executed by a virtual machine implemented on a "softcore" processor - which gives access to all the expressive power of the host language - and to carry out the translation at the RT (Register Transfer) level - a translation that we will call here hardware "inlining" - only for a certain number of specific functions, duly identified. The identification of these functions, in this context, is the responsibility of the programmer, taking into account his field of application and the objectives pursued. The programmer may thus choose to "inline" certain functions because their execution via the virtual machine on the "softcore" processor is too slow - which corresponds to using the surrounding hardware as a dynamically configurable hardware accelerator - or because, in a critical embedded context for example, he wants to guarantee certain properties linked to the execution of these functions (safety, liveliness, limited execution time, etc.). The formulation of the functions to be "inlined" will not be done directly in the host language but via a dedicated language (DSL, Domain Specific Language). This DSL will, by construction, be susceptible of an efficient and certifiable translation into a description at RT level (we mean that we can prove that the said description produces a circuit whose behavior is identical to that deduced from the formal semantics of the DSL). It must also be directly executable by the host language (either by interpretation or by direct translation into this language). Finally, it must allow the expression of the properties that one wishes to associate to the defined functions. The definition, and the implementation, of this DSL is a key point since it conditions the feasibility of the RTL translation and the efficiency of the code produced, on the one hand, and the nature of the verifiable properties associated with the functions thus described, on the other
2020-2024 Publications
-
2024
- L. Sylvestre, J. SĂ©rot, E. Chailloux : “Hardware Implementation of OCaml Using a Synchronous Functional Language”, Practical Aspects of Declarative Languages, vol. 14512, Lecture Notes in Computer Science, Londres, United Kingdom, pp. 151-168, (Springer Nature Switzerland), (ISBN: 978-3-031-52037-2) (2024)
-
2023
- L. Sylvestre, E. Chailloux, J. SĂ©rot : “Work-in-Progress: mixing computation and interaction on FPGA”, International Conference on Embedded Software (EMSOFT 2023), Hambourg, Germany (2023)
- L. Sylvestre, E. Chailloux, J. SĂ©rot : “Accelerating OCaml Programs on FPGA”, International Journal of Parallel Programming, vol. 51 (Special Issue on High-Level Parallel Programming and Applications (HLPP 2022)), pp. 186–207, (Springer Verlag) (2023)
-
2022
- L. Sylvestre, E. Chailloux, J. SĂ©rot : “Accelerating OCaml programs on FPGA”, 15th International Symposium on High-level Parallel Programming and Applications (HLPP 2022), Porto, Portugal (2022)
- L. Sylvestre, J. SĂ©rot, E. Chailloux : “A Virtual Machine Approach for High-level FPGA Programming”, 2022 IEEE 30th Annual International Symposium on Field-Programmable Custom Computing Machines (FCCM), New York City, United States, (IEEE) (2022)
- L. Sylvestre, J. SĂ©rot, E. Chailloux : “Macle : un langage dĂ©diĂ© Ă l’accĂ©lĂ©ration de programmes OCaml sur circuits FPGA”, JournĂ©es Francophones des Langages Applicatifs, Saint-MĂ©dard-d'Excideuil, France, pp. 93-109 (2022)
-
2020
- L. Sylvestre, E. Chailloux : “ExpĂ©rimentations pĂ©dagogiques en Learn-OCaml”, 31e JournĂ©es Francophones des Langages Applicatifs, Gruissan, France (2020)