SHIM: A Language for Hardware/Software Integration

Author Stephen A. Edwards

Thumbnail PDF


  • Filesize: 0.61 MB
  • 6 pages

Document Identifiers

Author Details

Stephen A. Edwards

Cite AsGet BibTex

Stephen A. Edwards. SHIM: A Language for Hardware/Software Integration. In Synchronous Programming - SYNCHRON'04. Dagstuhl Seminar Proceedings, Volume 4491, pp. 1-6, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2005)


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. I present 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 re-implementing 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.
  • Hardware/software codesign
  • synchronous
  • asynchronous
  • language design
  • integration


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads
Questions / Remarks / Feedback

Feedback for Dagstuhl Publishing

Thanks for your feedback!

Feedback submitted

Could not send message

Please try again later or send an E-mail