Instructor: Alex Doboli, PhD
Credits: 3 credits
Time: Monday, Wednesday, 3:50-5:10PM, Grad Chem 128
Description:
| This course will present state-of-the-art concepts and
techniques for design of embedded systems consisting of hardware
and software components. Discussed topics include system modeling and specification, architectures for embedded systems, performance evaluation, and system synthesis. The course follows the top-down design paradigm based on IP cores. Course requirements include four mini projects focused on system and IP core specification, and implementation of various co-design tools. |
Goal:
| Upon completion of this course, students will possess knowledge on state-of-the-art methodologies and techniques for hardware/software co-design of embedded systems. They will be able to (1) develop system-level specifications using high-level languages i.e. SystemC, (2) develop IP core models in SystemC, and (3) implement algorithms for co-design. |
Prerequisites:
Covered Topics:
| Introduction to Co-Design | Problem description, goals of co-design, co-design steps, existing co-design approaches, and present challenges. |
| System Modeling and Specification | a) Models of computation (Data flow model, Task graphs,
Petri nets, Finite State Machines, Extended Finite State Machines, hierarchical
models).
b) System Specification Languages (SystemC). System C page c) Project 1: IP core modeling in SystemC. |
| Architectures for Embedded Systems | a) Single processor - coprocessor architectures, multiprocessor
architectures, architectures for DSP and multimedia, reconfigurable architecures,
platforms.
The Hitachi SH-DSP 7410 Hardware Manual b) SoC: IP core based architectures, bus standards, networks on chip. c) Sensors and sensor networks. (tentative) d)Project 2: Modeling of an application in SystemC. |
| Performance Modeling | a) System-level performance modeling vs. low-level performance
modeling.
b) Modeling of system latency, energy consumption for hardware and software. c) Estimation of memory requirements. d) Stochastic modeling. (tentative) |
| System-Level Synthesis and Trade-off Analysis | a) Hardware/software partitioning. Task binding.
b) Task scheduling (scheduling under data and control dependencies, static and dynamic scheduling, heuristic and exact scheduling algorithms). c) IP core integration and communication synthesis: hardware and software interface synthesis, bus encoding for low power, bus architecture synthesis. d) Project 3: Literature survey for a co-design topic. e) Project 4: Software development of a co-design task. |
| Hardware IP core synthesis | High-level synthesis: module set allocation, resource binding, operation scheduling, controller synthesis. |
| Software synthesis (tentative) | Embedded software design. Software generation under memory and energy consumption constraints. |
Projects:
Four projects will complement the material discussed in
class. First two projects are on SystemC modeling of an embedded application
and an IP core. Goals are to familiarize students with
SystemC, and to teach them the IP core modeling process. The third project
is on
literature survey on a co-design topic, like hardware/software
partitioning, task scheduling, communication synthesis, performance
evaluation, and so on. Goal is to provide students the
needed background in co-design. Fourth project will be on developing a
software
implementation of the co-design task studied for Project
3. The implementation will be in C++/C. For experiments, Project 4 will
use
the SystemC models built as part of Projects 1 and 2.
Project 1
Project 2
Project 3
Guidlines.
Project 4 (Due: Dec 16 12pm; Defense: Dec 17)
Text Books and other Materials
1) G. De Micheli, R. Ernst, W. Wolf, "Readings in Hardware/Siftware
Co-Design", Morgan Kaufman, 2002.
2) G. De Micheli, "Synthesis and Optimization of Digital
Circuits", McGraw-Hill, 1994.
3) Other published papers will be provided in class.
Grading
Final grade
= 0.2 * report 1 + 0.2 * report 2 + 0.2 * report 3 + 0.4 * final
report