SHIM: A Language for Hardware/Software Integration

Edwards, Stephen A.

Virtually every system designed today is an amalgam of hardware and software. Unfortunately, software and circuits that communicate across the hardware/software boundary are tedious and error-prone to create. This suggests a more automatic way to synthesize them. This paper presents the SHIM language, which combines imperative C-like semantics for software and RTL-like semantics for hardware to allow a unified description of hardware/ software systems. Hardware processes and software functions communicate through shared variables, hardware for which is automatically synthesized by the SHIM compiler, which generates C and synthesizable VHDL. I demonstrate the effectiveness of the language by reimplementing an I2C bus controller. The SHIM source is half the size of an equivalent manual implementation, slightly faster, and has a smaller memory footprint. Partial and complete hardware implementations in SHIM are also presented, showing that SHIM is succinct and effective.



Also Published In

Synchronous Programming - SYNCHRON'04
Internat. Begegnungs- und Forschungszentrum für Informatik

More About This Work

Academic Units
Computer Science
Dagstuhl Seminar Proceedings, 4491
Published Here
March 8, 2012