Design Space Exploration for a Picture-in-Picture system using the Metropolis Development Environment

(Proposal for a demo/poster at the DAC 2004 University Booth)

Background

The Metropolis Project aims to develop an environment for complex electronic-system design that supports simulation, formal analysis, and synthesis. This project involves researchers, faculty and students from UC Berkeley, Cadence Berkeley Labs, UC Riverside, and Politecnico di Torino, among others. The Metropolis project is supported primarily by the Gigascale Systems Research Center and the Center for Hybrid and Embedded Software Systems. The lead faculty member is Prof. Alberto Sangiovanni-Vincentelli.

Introduction

Due to the tremendous increase in design complexity during the past few years, the electronic design automation community has been forced to design at higher levels of abstraction. Other challenges include continued scaling, higher power consumption, IP integration, shorter design cycles and heterogeneous designs. Unfortunately, an ad-hoc adaptation of existing design flows will not tackle these problems successfully. Even though new languages and interchange formats are important, an overall design methodology - a design science - is key. Through the Metropolis [1] project, we aim to provide a concrete example of the platform-based design methodology [2] we advocate.

In the platform-based design approach, the separation of concerns between different aspects of the design allows for component reuse and easier integration, while enabling faster design space exploration. The three main types of orthogonal aspects are:

Functionality and Architecture: These two facets of the design are usually handled by separate groups within a company. Typically, a single architectural platform may serve many different functional models. A functional model contains both computation and communication elements.

Computation and Communication: Computation is usually design-specific while communication is standardized. Having a clearly defined separation between these two aspects of a functional description allows different communication schemes to be utilized easily. This separation also enables design space exploration and encourages component reuse.

Behavior and Performance: Performance indices are usually back-annotated from estimated system performance whereas behavior is dictated by system specifications. Since different design groups usually work on these two portions of a design, this separation is useful. Also, changes in physical implementation platforms usually manifest themselves as performance changes, so this separation also provides for more implementation flexibility.

These aspects, along with a clear semantic foundation, are the main features of the Metropolis Development Environment.

Demo

The first major industrial example that we have chosen to showcase the capabilities of the Metropolis environment is the Picture-in-Picture system example originally obtained from Philips Research. This design takes as input a multiplexed MPEG input stream and does the necessary decoding, resizing, and encoding necessary to display a PiP output MPEG stream. The functional model can either use point-to-point FIFO or a shared memory block to carry out internal communication. The design runs on an abstract architecture which models the performance provided by the Xilinx Virtex II FPGA.

Our demo will demonstrate how Metropolis allows the designer to easily substitute communication schemes and architectures without making significant modifications to the design. This enables quick design space exploration.

Outline:

  1. Describe the methodology of Platform-Based design behind the Metropolis Development Environment

  2. Show how the Metropolis framework is put together, with backend tools.

  3. Introduce the PiP design in the Metropolis Metamodel language.

  4. Describe the two communication schemes that can be used: FIFO and shared memory.

  5. Show how multiple refined versions of the architecture are created, with different scheduling algorithms and components.

  6. Explain how performance numbers are annotated to these architectures.

  7. Map the functional description to the architecture, and try different combinations to explore the design space.

  8. Show the SystemC output trace and view the generated PiP MPEG output.

References

[1] F. Balarin, Y. Watanabe, H. Hsieh, L. Lavagno, A. Sangiovanni-Vincentelli, "Metropolis: An Integrated Electronic System Design Environment," IEEE Computer, April 2003.

[2] Alberto Sangiovanni Vincentelli. "Defining platform-based design," EE Design, February 2002.