Hardware/software co-design

Embedded systems are informally defined as a collection of programmable parts surrounded by ASICs and other standard components, that interact continuously with an environment through sensors and actuators. The programmable parts include micro-controllers and Digital Signal Processors (DSPs). The main problems in their design are the definition of the architecture (choice of processors, hardware/software partitioning, etc.), and the integration of hardware and software.

Our research in this area has been part of the POLIS project, involving the University of California at Berkeley, Magneti Marelli, Cadence Design Systems, Politecnico di Torino and several other organizations. The aim of the project is to develop a complete hardware/software codesign environment for real-time reactive embedded systems.

The key aspects of the methodology and of its supporting tools are:

  • un-biased specification, using extended Finite State Machines that can be (almost) indifferently implemented in HW or SW.
  • support of multiple specification languages (Esterel, graphical state machines, VHDL, Verilog, …).
  • design aids for quick evaluation and optimized synthesis, to guide the (manual) architecture selection and partitioning step.
  • automated generation of interface circuitry and software (device drivers) for the chosen micro-controller configuration.
  • accurate estimation of software cost and performance (memory and cycles) on a range of micro-controllers, without the need to compile and profile it.
  • emphasis on the verifiability (both with simulation and formal techniques) of each design level, from specification to implementation.

POLIS is described in several publications, including:

  • F. Balarin, E. Sentovich, M. Chiodo, P. Giusto, H. Hsieh, B. Tabbara, A. Jurecska, L. Lavagno, C. Passerone, K. Suzuki, and A. Sangiovanni-Vincentelli. Hardware-Software Co-design of Embedded Systems — The POLIS approach. Kluwer Academic Publishers, 1997.
  • M. Chiodo, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, and A. Sangiovanni-Vincentelli. Hardware/software codesign of embedded systems IEEE Micro, 14(4):26–36, August 1994.
  • S. Edwards, L. Lavagno, E.A. Lee, and A. Sangiovanni-Vincentelli. Design of embedded systems: formal models, validation, and synthesis. Proceedings of the IEEE, 85(3):366–390, March 1997.
  • F. Balarin, M. Chiodo, P. Giusto, H. Hsieh, A. Jurecska, L. Lavagno, A. Sangiovanni-Vincentelli, E. Sentovich, and K. Suzuki. Synthesis of software programs for embedded control applications. IEEE Transactions on Computer-Aided Design, June 1999.

The tools that are being developed during the POLIS project are publicly available (in source and executable form) on the POLIS group WEB site. They are one of the key technologies behind the VCC tool that was marketed in the late ’90s and early ’00s by Cadence Design systems.

Several of its ideas, such as a single initial specification that is co-simulated and co-synthesized into a mix of HW and SW, are at the basis of modern tools, such as SDSoc from Xilinx.