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
- Hardware/software systems and codesign
- Models of computation for embedded systems
- Behavioral design
- Architecture selection
- Partitioning, scheduling, and communication
- Simulation, synthesis, and verification
- Hardware/software implementation
- Performance analysis and optimization
- Design methodologies and tools
- 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.