wpe1.jpg (8848 bytes)

EE290A: Advanced Topics in CAD
Component-Based Design of Electronic Systems

Outline
Lectures
Homework
Project
Logistics


Tu. Th. 2:00-3:30pm, Hogan Room (531 Cory Hall)
Kurt Keutzer and Richard Newton

The microelectronics industry is build upon Moore's Law, which changes many aspects of the design of an electronic system at an exponential rate. As such, it has proved impossible for any single approach to the design of single-chip electronic systems to last more than about a decade without requiring a significant change in the way we construct and verify such systems. In 1971, the invention of the microprocessor was one such change. In the early 1980's, the use of regular layout structures and the adoption of physical synthesis (the birth of the ASIC industry) was a major change and in the late 1980's the widespread adoption of logic synthesis fundamentally changed the way in which most designers approached their task.

We need another major change if we are to achieve the full potential of tomorrow's silicon--in fact we are already late!

One of the key ideas both industry and academia is exploring in this direction is that of design re-use. If over than 90% of a design involves the reuse of pre-existing components, then we have increased design productivity by at least order of magnitude. But what does it mean to actually re-use a design?

To begin with, we need a way of capturing, encapsulating and abstracting design components such that there is a significant advantage in the re-use of an existing design. How do we abstract such a component for use in other contexts and preserve as much of the work we have already done in optimizing, verifying, and testing the component? At what levels should we capture the component design and why?

These are a few of the questions we wish to address this Spring semester in our seminar, oriented towards the understanding of what a useful component-based methodology should look like and how to implement it efficiently. The goal is not as much to solve the problem, but to formulate it and identify the key open research issues that need to be addressed.

To that end, we plan to tackle the problem by taking one or more real designs developed here at Berkeley and revisiting them in the context of a component-based approach.

The course will be organized around the three major emphases of component-based design, implementation(hard, firm, and soft), and component-based verification. We will emphasize both the software and hardware aspects of implementation, and their tradeoffs. In many areas, we will invite guest lecturers to present the state-of-the-art and help us sort through the issues. Some of the topics we will be covering include:

  • Introduction

We will begin by introducing the notion of component-based design and by defining a number of the key concepts. We will review an existing design with a view to understanding the types of components used and their interactions. We will explore the issues of function, architecture, and microarchitecture in a component-based approach.

  • Component-based Design

Introduction to levels of abstraction and representations of systems.
Parameterization of components in design.
Encapsulation of behaviors and specification of interfaces
Aspects of the interaction among heterogeneous components

  • Implementation Issues for Components

What are the tradeoffs: Hard versus firm versus soft components.
What is most likely to be the dominant component paradigm—soft, firm or hard?
What are the advantages and disadvantages of an RTL-std cell implementation flow versus a schematic-std cell path? How about compared to a custom design or "compiled" design?

  • Verification of Parameterizable IP

How can we do it and how can we do it efficiently?
How does Design for Verifiability play a role and what are the tradeoffs here?
Verification of IP interfaces

  • Software compilation for Parameterizable Processors

ISA extension identification
Automatic compiler generation from ISA’s
Simulator generation

  • Important Classifications of Component Implementation Styles

Memory
Regular structures
Microcontrollers
DSPs
What are the parameters that characterize IP
What is the quantum for a block of circuitry to be called a "component"?

  • Business issues and legal issues

Grading for the course will be centered about a project that relates to the area of component-based design and an associated class presentation at the end of the semester. During the semester there will be one or more paper-review assignments for presentation to the class as a whole. We anticipate that most of the projects will involve the review and characterization of a particular form of component, in terms of its design issues, implementation, and verification, and metrics associated with each aspect. At the end of the semester, we hope to share a deep understanding of the open issues associated with the implementation of parameterized hardware/software designs in future silicon processes, the EDA tools needed for their implementation and the strengths/weaknesses of existing tools, and the metrics needed to characterize them.