System-level Linking of Synthesised Hardware and Compiled Software Using a Higher-order Type System

Research output: Chapter in Book/Report/Conference proceedingConference contribution


  • Shane Fleming
  • David Thomas
  • George Constantinides
  • Dan Ghica

Colleges, School and Institutes

External organisations

  • Imperial College London


Devices with tightly coupled CPUs and FPGA logic allow for the implementation of heterogeneous applications which combine multiple components written in hardware and software languages, including first-party source code and third-party IP. Flexibility in component relationships is important, so that the system designer can move components between software and hardware as the application design evolves. This paper presents a system-level type system and linker, which allows functions in software and hardware components to be directly linked at link time, without requiring any modification or recompilation of the components. The type system is designed to be language agnostic, and exhibits higher-order features, to enables design patterns such as notifications and callbacks to software from within hardware functions. We demonstrate the system through a number of case studies which link compiled software against synthesised hardware in the Xilinx Zynq platform.


Original languageEnglish
Title of host publicationProceedings of the 2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays (FPGA '15)
Publication statusPublished - 22 Feb 2015
Event2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays - Monterey, California, United Kingdom
Duration: 22 Feb 201524 Feb 2015


Conference2015 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays
CountryUnited Kingdom
CityMonterey, California