Guest Editor's Introduction: Hardware-Software Codesign
Giovanni De Micheli · IEEE Micro · 1994
Stanford lhversity nterest in hardware-software codesign has been growing steadily in recent years. Particularly interesting is the trend toward establishing an integrated design methodology for hardware and software systems that could be supported by computer-aided design tools. Practical CAD environments for codesign in the short term are credible, thanks to the maturing of hardware synthesis and simulation tools. Algorithms and tools for hardware-software codesign thus become new challenges to CAD researchers, who can migrate their domain of activity from the chip to the digital system level, and to CAD vendors who hope to extend their customer base. In an effort to address this challenge, this special issue features contributions selected from the International Workshop on Hardware-Software Codesign, held last October in Cambridge, Massachusetts. First, a tutorial on the state of the art in computer-aided hardware-software codesign orients you to the subject. The tutorial attempts to classify major areas for research in codesign while considering application domains, such as general-purpose computing, digital signal processing, and embedded controllers. It addresses the opportunities presented by novel programmable hardware technologies; such as field-programmable gate arrays, which blur the difference between hardware and software. Eventually, it summarizes recent achievements in the validation and synthesis of mixed systems. Since it would be impossible to address all currently interesting aspects of codesign in one issue, I’ve selected four articles that sample areas with a high demand for CAD methods and research results that have attained reasonable maturity. Hu et al. introduces important codesign problems in the automotive sector; where the use of electronic devices is pervasive and the design aspects involve several system-level considerations. Chiodo et al. explores issues in embedded controller design for automotive applications, with particular emphasis on a rigorous codesign methodology that supports automatic synthesis. optimization, and verification. The authors use a consistent model of hardware and software. that is, one based on an extension to finite-state machine representations. This approach lets us use formal properties and synthesis techniques for finite-state machines in the codesign domain. The third contribution by Chou et al. also addresses embedded system design, but with a different flavor. The authors design mixed systems starting from high-level models in the Verilog HDL language and use high-level synthesis techniques such as scheduling and parttioning. They also discuss the automatic synthesis of device drivers. The last contribution explores a very important issue in system design: providing fast behavioral-level simulation. To achieve this goal, Olukotun et al. describes a simulator that uses a specific hardware platform consisting of a tightly coupled processor and FPGAs. The codesign problem consists of partitioning and scheduling the circuit model (to be simulated) into components to be executed concurrently on the processor and on the FPGAs, for maximal simulation speed.