Programming with hardware/software functions - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Reports (Research Report) Year : 2015

Programming with hardware/software functions

Programmer avec des fonctions hardware et software


FPGAs support the implementation of a wide range of functionalities, from general-purpose processors (Softcores) to dedicated hardware accelerators (Intellectual Properties). This blurs the traditional line between software and hardware, since in many cases a functionality can be achieved either by executing code on a softcore or by running an IP. In this paper we focus on programming parallel architectures where IPs are interconnected using softcores. We propose a programming language, called HiHope, which exploits this kind of architecture. HiHope includes constructs for switching at runtime between hardware functions (implemented by IPs) and software functions in a transparent way. It also contains constructs for executing parallel functions (either hardware or software ones) and for redefining functions dynamically. We show how HiHope programs can be compiled for execution on master-slave parallel architectures based on the HoMade processor, a softcore processor designed as an IP integrator.
Fichier principal
Vignette du fichier
RR-8835.pdf (580.65 Ko) Télécharger le fichier
Origin : Files produced by the author(s)

Dates and versions

hal-01248163 , version 1 (23-12-2015)


  • HAL Id : hal-01248163 , version 1


Julien Forget, Frédéric Guyomarch, Vlad Rusu. Programming with hardware/software functions. [Research Report] RR-8835, INRIA Lille Nord Europe. 2015, pp.18. ⟨hal-01248163⟩
641 View
326 Download


Gmail Facebook X LinkedIn More