Attacking the semantic gap between application programming languages and configurable hardware

  • Authors:
  • Greg Snider;Barry Shackleford;Richard J. Carter

  • Affiliations:
  • -;-;-

  • Venue:
  • FPGA '01 Proceedings of the 2001 ACM/SIGDA ninth international symposium on Field programmable gate arrays
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

It is difficult to exploit the massive, fine-grained parallelism of configurable hardware with a conventional application program冒ming language such as C, Pascal or Java. The difficulty arises from the mismatch between the synchronous, concurrent processing capability of the hardware and the expressiveness of the lan冒guage-the so-called "semantic gap." We attack this problem by using a programming model matched to the hardware's capabilities that can be implemented in any (unmodified) object-oriented lan冒guage, and building a corresponding compiler. The result is appli冒cation code that can be developed, compiled, debugged and executed on a personal computer using conventional tools (such as Visual C++ or Visual Cafe), and then recompiled without modifi冒cation to the configurable hardware target. A straightforward C++ implementation of the Serpent encryption algorithm compiled with our compiler onto a Virtex XCV1000 FPGA yielded an implemen冒tation that was smaller (3200 vs. 4502 CLBs) and faster (77 MHz vs. 38 MHz) than an independent VHDL implementation with the same degree of pipelining. A tuned version of the source yielded an implementation that ran at 95 MHz.