A Case Study in Hardware-Software Codesign of Distributed Systems — Vehicle Parking Management System = Trong-Yen Lee, * Pao-Ann Hsiung, and Sao-Jie Chen Department of Electrical Engineering, National Taiwan University, Taipei, TAIWAN, R.O.C. * Institute of Information Science, Academia Sinica, Taipei, TAIWAN, R.O.C. = This work was supported by the National Science Council, R.O.C., under grant NSC 88-2215-E-002-037 Abstract Hardware-software codesign of distributed systems is a more challenging task than that of centralized embedded systems. Each phase of codesign, such as copartitioning, cosynthesis, cosimulation, and coverification, must take into account physical restrictions imposed by the distributed nature of such systems. Although codesign of distributed systems is more complex, yet many common parts of the systems can be reused for codesign. For the above two reasons, we have adopted an object-oriented (OO) codesign approach, which allows a natural structural restriction and object design reuse. A parallel approach to hardware-software partitioning is also presented. We illustrate our techniques through a case study on a Vehicle Parking Management System (VPMS). The study shows the benefits of OO codesign and parallel partitioning. Validation is accomplished through prototyping and emulation. Keywords: object-oriented codesign, parallel copartitioning, emulation, distributed embedded systems, case-study. 1. Introduction Distributed systems, such as remote teaching facilities, vehicle parking systems, auditorium air-conditioning, coal-mine signal systems, and others abound in our everyday life and are almost all computerized, that is, they all contain some sort of integrated chips or processors running some software. These systems are difficult to design due to their physical restrictions and varied behavior, which is a result of inherent concurrencies. But, at the same time, we also observe that there are some sorts of symmetricities, however small they may be, among distributed systems. For example, remote teaching facilities may have several similar tracking systems that work concurrently to sense and capture classroom activities for remote displaying. Such existing similarities are one aspect of distributed systems that we can take advantage of for codesign. We define a distributed system as follows. When a system consists of more than one part that must be located at or embedded in different physical locations, it is called a distributed system. The design of distributed systems has always been a challenging task. Codesign of distributed systems must solve not only hardware-software communication issues within a single embedded unit, but also the communication issues between different parts of a distributed system (which may consists of either hardware, or software, or both). Hardware-software copartitioning must take into