<?xml version="1.0" encoding="UTF-8"?>
<OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">
  <responseDate>2026-07-23T05:04:59Z</responseDate>
  <request identifier="158" metadataPrefix="oai_dc" verb="GetRecord">https://drops.dagstuhl.de/oai</request>
  <GetRecord>
    <record>
      <header>
        <identifier>oai:drops-oai.dagstuhl.de:158</identifier>
        <datestamp>2024-03-06T11:06:05Z</datestamp>
        <setSpec>ddc:004</setSpec>
        <setSpec>open_access</setSpec>
      </header>
      <metadata>
        <oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">
          <dc:title>SHIM: A Language for Hardware/Software Integration</dc:title>
          <dc:creator>Edwards, Stephen A.</dc:creator>
          <dc:subject>Hardware/software codesign</dc:subject>
          <dc:subject>synchronous</dc:subject>
          <dc:subject>asynchronous</dc:subject>
          <dc:subject>language design</dc:subject>
          <dc:subject>integration</dc:subject>
          <dc:description>Virtually every system designed today is an amalgam of hardware and&#13;
software.  Unfortunately, software and circuits that communicate&#13;
across the hardware/software boundary are tedious and error-prone to&#13;
create.  This suggests a more automatic way to synthesize them.&#13;
                                                                                &#13;
I present the SHIM language, which combines imperative&#13;
C-like semantics for software and RTL-like semantics for hardware to&#13;
allow a unified description of hardware/software systems.  Hardware&#13;
processes and software functions communicate through shared variables,&#13;
hardware for which is automatically synthesized by the SHIM&#13;
compiler, which generates C and synthesizable VHDL.&#13;
                                                                                &#13;
I demonstrate the effectiveness of the language by re-implementing&#13;
an I2C bus controller.  The SHIM source is half the size of an&#13;
equivalent manual implementation, slightly faster, and has a smaller&#13;
memory footprint.  Partial and complete hardware implementations in&#13;
SHIM are also presented, showing that SHIM is succinct and&#13;
effective.</dc:description>
          <dc:publisher>Schloss Dagstuhl – Leibniz-Zentrum für Informatik</dc:publisher>
          <dc:contributor>Stephen A. Edwards</dc:contributor>
          <dc:date>2005</dc:date>
          <dc:relation>Is Part Of Dagstuhl Seminar Proceedings, Volume 4491, Synchronous Programming - SYNCHRON'04 (2005)</dc:relation>
          <dc:type>InProceedings</dc:type>
          <dc:type>Text</dc:type>
          <dc:type>doc-type:ResearchArticle</dc:type>
          <dc:type>publishedVersion</dc:type>
          <dc:format>application/pdf</dc:format>
          <dc:identifier>doi:10.4230/DagSemProc.04491.5</dc:identifier>
          <dc:identifier>urn:nbn:de:0030-drops-1580</dc:identifier>
          <dc:identifier>https://drops.dagstuhl.de/entities/document/10.4230/DagSemProc.04491.5</dc:identifier>
          <dc:language>eng</dc:language>
          <dc:rights>https://creativecommons.org/licenses/by/4.0/legalcode</dc:rights>
        </oai_dc:dc>
      </metadata>
    </record>
  </GetRecord>
</OAI-PMH>
