Catalog Description

Cpr E 588. Embedded Computer Systems. (3-0) Cr. 3. Prereq: 308. Hardware/software systems and codesign. Models of computation for embedded systems. System-level design. Modeling, specification, synthesis, and verification. Hardware/software implementation. Design space exploration. Performance analysis and optimization. Multiprocessor system on chip. Platform-based design. Design methodologies and tools. Case studies and design projects.

Topics Covered

  1. Hardware/software systems and codesign
  2. Models of computation for embedded systems
  3. Behavioral design
  4. Architecture selection
  5. Partitioning, scheduling, and communication
  6. Simulation, synthesis, and verification
  7. Hardware/software implementation
  8. Performance analysis and optimization
  9. Design methodologies and tools
  10. Design examples and case studies

Course Learning Objectives

Students will:

  • learn about system-level design of embedded systems comprised of both hardware and software;
  • investigate topics ranging from system modeling to hardware-software implementation;
  • explore analysis and optimization processes in support of algorithmic and architectural design decisions;
  • gain design experience with case studies using contemporary high-level methods and tools.

The course emphasizes a top-down design methodology driven by bottom-up constraints. At course's completion, each student should be able to:

  • Understand the concepts, issues, and process of system-level design of embedded systems, i.e., hardware-software codesign.
  • Model and specify an embedded system at a high level of abstraction.
  • Use co-simulation to validate system functionality.
  • Analyze the functional and nonfunctional performance of the system early in the design process to support design decisions.
  • Analyze hardware/software tradeoffs, algorithms, and architectures to optimize the system based on requirements and implementation constraints.
  • Describe architectures for control-dominated and data-dominated systems.
  • Understand hardware, software, and interface synthesis.
  • Understand issues in interface design.
  • Use contemporary software tools within a codesign environment.
  • Describe examples of applications and systems developed using a codesign approach.
  • Design a hardware-software system.
  • Appreciate issues in system-on-a-chip design associated with codesign, such as intellectual property, reuse, and verification.