Programming with hardware/software functions
Programmer avec des fonctions hardware et software
Résumé
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.
Domaines
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|