Many electronic systems, such as modems, digital cellular phones, disk drives, multimedia systems, video conferencing systems, and robotics, perform a combination of signal processing, communications, and control algorithms. The signal processing algorithms might be mapped into software for digital signal processors, or onto dedicated or configurable hardware. The communication and control algorithms might be mapped into software for microcontrollers, or onto dedicated or configurable hardware. The systems are heterogeneous in that they contain a variety of algorithms implemented by a variety of software and hardware technologies.
For example, Nortern Telecom (now known as Nortel) developed an embedded wireless subsystem to work with their Meridian 1 PBX switch. The embedded system consists of a controller board with the Motorola 68040 general-purpose processor and the Wind River Systems VxWorks real-time operating system. The engineers develop software for the custom board in C++ which they cross-compile using the Centerline C++ compiler on a Sun workstation. Once the code is in its final form, the compiled code is burned into a Flash EPROM on the board, and the board is deployed into a public exchange (PBX) telecommunications switch.
Companies desire to shorten design cycles, improve quality, and reduce cost of their systems. When systems are heterogeneous, no one single design method is applicable to the entire system. If a group design subsystems using their own methods and implementation technologies, the group cannot evaluate the impact of the subsystem on the system behavior and cost. Successful system design approaches integrate application-specific design methods and implementation technologies in a formal, consistent, extensible framework. A formal, consistent framework enables the entire system to be specified, simulated, and synthesized, which improves product quality. To reduce the design cycle, the framework can take advantage of application-specific design methods to validate specifications, perform fast simulation, and generate efficient implementations. Extensibility allows new algorithms, tools, languages, and devices to be added to the framework so that previous working designs can be rapidly retargeted to new technologies.
Many aspects of system design are currently covered in the ECE curriculum. Students benefit from annual course offerings on formal design methods, hardware/software codesign, embedded control systems, logic design, logic synthesis, digital simulation, system design metrics, and engineering programming languages. The Embedded Software Systems course is intended to help complete the student's training in system-level design. The first part of the course covers dataflow models of computation. Dataflow models capture the data-intensive computations common in signal processing algorithms. Because dataflow models have formal mathematical properties, important questions about the model's behavior can often be answered, e.g. will the model execute in finite memory and finite time? We will discuss the synthesis of software from dataflow models for uniprocessor and multiprocessor architectures, especially for those involving digital signal processors. The second part of the course focuses on modeling of control functions by using hierarchical finite state machines and synchronous/reactive languages. These control models also have formal mathematical properties, so many important questions about their behavior can also be asked, e.g. which states can be reached from given initial conditions? Next, we will discuss the synthesis of software for microcontrollers and distributed systems from these models of computations. For both dataflow and control models, the course will discuss the generation of mixed hardware/software implementations. The class concludes by discussing heterogeneous systems formed by mixing control and dataflow models.
The topics covered in the course reflect recent trends in the electronic design automation (EDA) industry. From the middle of the 1980s to the early 1990s, the EDA CAD tool vendors focused primarily on the automation of hardware designs, such as application-specific integrated circuits. During that time, they pushed the level of design abstraction from transistor-level layout to gate level layout to functional layout. At the highest level of functional layout, block libraries contained digital filters, Fast Fourier transforms, modulators, and so forth. As system designs became dominated more and more by software, these companies bought software engineering CAD tool vendors. Between 1992 and 1994, the big three EDA CAD tool vendors--- Mentor Graphics, Synopsys, and Cadence--- bought application-specific software engineering CAD tool vendors in order to raise the level of design even further to the system level. Mentor Graphics bought EDC which made the DSP Station; Synopsys bought Cadis which made COSSAP; and Cadence bought Comdisco which made the Signal Processing Worksystem (SPW). Ironically, Mentor Graphics has spun off the DSP Station to a new company. The DSP Station, COSSAP, and SPW implemented different flavors of dataflow modeling. Integration of the CAD tools from two different companies to form a system-level design tool will take time, but the big three are pushing ahead to raise the level of abstraction in design.