Report Number: CSL-TR-92-548
Institution: Stanford University, Computer Systems Laboratory
Title: System synthesis via hardware-software co-design
Author: Gupta, Rajesh K.
Author: DeMicheli, Giovanni
Date: October 1992
Abstract: Synthesis of circuits containing application-specific as well
as re-programmable components such as off-the-shelf
microprocessors provides a promising approach to realization
of complex systems using a minimal amount of
application-specific hardware while still meeting the
required performance constraints. We formulate the synthesis
problem of complex behavioral descriptions with performance
constraints as a hardware-software co-design problem. The
target system architecture consists of a software component
as a program running on a re-programmable processor assisted
by application-specific hardware components. System synthesis
is performed by first partitioning the input system
description into hardware and software portions and then by
implementing each of them separately. We consider the problem
of identifying potential hardware and software components of
a system described in a high-level modeling language.
Partitioning approaches are presented based on decoupling of
data and control flow, and based on
communication/synchronization requirements of the resulting
system design.
Synchronization between various elements of a mixed
system design is one of the key issues that any synthesis
system must address. We present software and interface
synchronization schemes that facilitate communication between
system components. We explore the relationship between the
non-determinism in the system models and the associated
synchronization schemes needed in system implementations.
The synthesis of dedicated hardware is achieved by hardware
synthesis tools, while the software component is generated
using software compiling techniques. We present tools to
perform synthesis of a system description into hardware and
software components. The resulting software component is
assumed to be implemented for the DLX machine, a load/store
microprocessor. We present design of an ethernet based
network coprocessor to demonstrate the feasibility of mixed
system synthesis.
http://i.stanford.edu/pub/cstr/reports/csl/tr/92/548/CSL-TR-92-548.pdf