As programmable hardware technology gathers momentum, the partitioning of applications into hardware and software will prove to be an increasingly important research area. Co-design technologies that achieve this partitioning typically adopt a strategy in which a high level specification is used to synthesise both hardware and software. This paper proposes an alternative approach by which equivalencies between hardware and software components are defined, thereby providing a common interface between them. This allows logic to be moved between hardware and software while retaining the functional properties of the application. An investigation is carried out to derive equivalencies between software elements of the Java language and hardware components by appropriate wrapping of the latter. By developing a framework that captures these equivalencies, this paper shows how hardware/software partitioning of a system can be relegated to a late stage of system development and include both application and virtual machine logic.

BibTex Entry

@inproceedings{Borg2006b,
 address = {New York, NY, USA},
 author = {Andrew Borg and Rui Gao and Neil Audsley},
 booktitle = {JTRES '06: Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems},
 doi = {http://doi.acm.org/10.1145/1167999.1168010},
 isbn = {1-59593-544-4},
 location = {Paris, France},
 pages = {58--67},
 publisher = {ACM Press},
 title = {A co-design strategy for embedded Java applications based on a hardware interface with invocation semantics},
 year = {2006}
}