License: Creative Commons Attribution 4.0 International license (CC BY 4.0)
When quoting this document, please refer to the following
DOI: 10.4230/DagSemProc.04491.5
URN: urn:nbn:de:0030-drops-1580
URL: http://dagstuhl.sunsite.rwth-aachen.de/volltexte/2005/158/
Go to the corresponding Portal |
Edwards, Stephen A.
SHIM: A Language for Hardware/Software Integration
Abstract
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.
BibTeX - Entry
@InProceedings{edwards:DagSemProc.04491.5,
author = {Edwards, Stephen A.},
title = {{SHIM: A Language for Hardware/Software Integration}},
booktitle = {Synchronous Programming - SYNCHRON'04},
pages = {1--6},
series = {Dagstuhl Seminar Proceedings (DagSemProc)},
ISSN = {1862-4405},
year = {2005},
volume = {4491},
editor = {Stephen A. Edwards and Nicolas Halbwachs and Reinhard v. Hanxleden and Thomas Stauner},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/opus/volltexte/2005/158},
URN = {urn:nbn:de:0030-drops-1580},
doi = {10.4230/DagSemProc.04491.5},
annote = {Keywords: Hardware/software codesign , synchronous , asynchronous , language design , integration}
}
Keywords: |
|
Hardware/software codesign , synchronous , asynchronous , language design , integration |
Collection: |
|
04491 - Synchronous Programming - SYNCHRON'04 |
Issue Date: |
|
2005 |
Date of publication: |
|
30.06.2005 |