Issue No. 04 - April (2003 vol. 36)
Xiaobo Sharon Hu , University of Notre Dame
Shuvra S. Bhattacharyya , University of Maryland
Jörg Henkel , NEC Laboratories America
Although hardware/software codesign is an old art that has challenged engineers since hardware first existed and some software ran on that hardware, major research efforts in the field were first undertaken in the early 1990s. The emergence of a new generation of synthesis tools for hardware and software provided the primary driving force behind these efforts.
Evolution of Codesign
The term hardware/software codesign refers to the methodology, tools, and practices that support the integration of hardware and software components during system design and development.
Hardware/software codesign originally focused on computer-aided design techniques, such as specification and modeling, partitioning, performance estimation, interface design, cosimulation, and co-verification. However, the discipline has far exceeded its original roots, and it currently has an impact on most aspects of embedded system design.
This integrated design approach has brought new thinking to process scheduling, communication protocols, code generation, and software development environments. It has introduced new approaches to the design of application-specific processors and reconfigurable and customizable architectures.
The complexity of today's embedded systems and the trend of fabricating an entire embedded system—or the majority of it—on a single chip have doomed the custom of separating hardware and software in the early design phase. Hardware/software codesign's philosophy and techniques have permeated numerous application domains, such as wireless and telecommunications, automotive and other consumer electronics, and computer security.
In addition to having become a well-recognized area in the field of electronic design automation, hardware/software codesign also has experienced a certain level of commercial success, with several emerging companies focusing on various aspects of the design paradigm.
Technology advances and increasingly sophisticated embedded applications are propelling an ever-increasing demand for chip capacity that will present greater challenges and opportunities for hardware/software codesign research.
As Daya Nadamuni and Gary Smith describe in the " Electronic System-Level Design: Challenges on the Road Ahead" sidebar, hardware/software codesign is a reality today and a necessity for tomorrow.
In This Issue
The articles in this special issue review the progress made in the past decade and introduce cutting-edge research results in hardware/software codesign.
In "A Decade of Hardware/Software Codesign," Wayne Wolf reviews the past, present, and future of this dynamic field. Wolf succinctly summarizes significant research results achieved in the past 10 years and projects some challenging problems to be solved in the next decade.
The ultimate goal of hardware/software co-design is to provide a rigorous yet flexible environment in which users can develop their own systems. However, the myriad available computation models, tools, and design flows make creating such an environment a great challenge. In "Metropolis: An Integrated Electronic System Design Environment," Felice Balarin and his colleagues propose a novel metamodel that has precise semantics and can support various computation models as well as different simulation, analysis, and synthesis tools. Based on this model, the authors have developed the Metropolis environment, a unified framework for designing complex embedded systems.
Hardware/software cosimulation is an indispensable process in any system development. The ease of use and performance of cosimulation tools have been a major concern ever since the onset of hardware/software codesign research. It has been well accepted that cosimulation in an environment based on C++ is desirable. How to make such an environment user friendly and efficient has been under constant investigation.
In "SystemC Cosimulation and Emulation of Multiprocessor SoC Designs," Luca Benini and his colleagues present a generic C++ cosimulation frame- work based on using the standard GDB remote debugging interface between the instruction set simulator and the wrapper used to link it to the simulation environment. Their effort provides an environment that enhances simulation tool performance.
Many real-time, safety-critical systems require formal verification to guarantee the system's behavior both functionally and timewise. The presence of multiple heterogeneous processing elements in a single system makes verification a daunting task. In "A Formal Approach to MpSoC Performance Verification," Kai Richter and his colleagues illustrate through practical examples the importance of formal verification. They propose using event model interfacing and adaptation techniques to support existing approaches to formal performance verification.
New applications bring new challenges to hardware/software codesign. In "Domain-Specific Co-design for Embedded Security," Patrick Schaumont and Ingrid Verbauwhede discuss how hardware/software codesign concepts help in adding security support to various embedded and networked platforms and how such efforts present new opportunities for enriching the hardware/software codesign area.
We thank all the authors who submitted papers for this special issue. Unfortunately, we could not include many excellent articles due to the page limit and the consideration of content balance for this issue. In addition, we also thank the reviewers for their efforts.
For readers who want to be on the edge of future developments in hardware/software codesign and system-level design, we recommend a new forum, tentatively named CODES/ISSS, which will be offered in October 2003 ( www.ece.uci.edu/~codes/). This conference represents the merger of the former CODES and ISSS, reflecting the widened scope of these two major international symposia on hardware/software codesign and system synthesis.
Jörg Henkel is a senior research staff member at NEC Laboratories America, Princeton, N.J. He received a PhD in electrical engineering from the Technical University of Braunschweig. Contact him at henkel@ nec-labs.com.
Xiaobo Sharon Hu is an associate professor in the Department of Computer Science and Engineering at University of Notre Dame. She received a PhD in electrical engineering from Purdue University. Contact her at firstname.lastname@example.org.
Shuvra S. Bhattacharyya is an associate professor in the Department of Electrical and Computer Engineering and the Institute for Advanced Computer Studies at the University of Maryland. Bhattacharyya received a PhD in electrical engineering and computer sciences from the University of California, Berkeley. Contact him at email@example.com.