Hardware Implementation of OCaml Using a Synchronous Functional Language
Résumé
We present a hardware implementation of the high-level multi-paradigm language OCaml using a declarative language called Eclat. Eclat is tailored for programming reactive hardware applications mixing interaction with physical devices and long-running computations. It is compiled to synthesizable hardware descriptions for configuring Field Programmable Gate Arrays (FPGAs).
We have implemented the OCaml Virtual Machine as an Eclat function to execute complex computations (programmed in OCaml) in reactive applications (programmed in Eclat). This implementation comprises a bytecode interpreter and a runtime system with automatic memory management. The OCaml programmers can customize this runtime by defining external Eclat functions, i.e., hardware accelerators.