UCR CS122B: Advanced Embedded System Design, Winter 2002

CS122B deals with the exciting and rapidly-growing field of embedded computing systems.

Embedded Systems

Embedded computing systems are found everywhere, including in cellular telephones, pagers, VCRs, camcorders, thermostats, curbside rental-car check-in devices, automated supermarket stockers, computerized inventory control devices, digital thermometers, telephone answering machines, printers, portable video games, TV set-top boxes -- the list goes on. American households may have between 30 to 100 such computing systems. Demand for embedded system designers is large, and is growing rapidly.

EE/CS120B and CS122A introduced the basics of embedded system design, including an introduction to custom single-purpose processor design, programming of general-purpose processors, use of standard single-purpose processors (peripherals), memories, and interfacing. Labs introduced VHDL, synthesis, FPGA, and microcontroller programming. In this course, we will investigate several more advanced topics, including hardware/software tradeoffs, real-time systems, computation models, an introduction to control systems, and low-power design. Labs will focus more on higher end (32-bit processor based) processing systems. Graduate students are welcome to take the course.

Course information

Instructor Frank Vahid (vahid@cs.ucr.edu).
Lecture TR 11:10am-12:30pm in WAT 2240
Lab MW 11:10am-2pm in Surge 173
Textbooks
  • Embedded System Design: A Unified Hardware/Software Introduction, Frank Vahid and Tony Givargis, J. Wiley & Sons, 2002, 1st Ed. ESD Web page. (ESD)
  • Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX by Alan Burns, Andrew J. Wellings, 3rd edition (April 5, 2001) Addison-Wesley Publishing. (RTSPL)
  • All students should have a basic C programming book. A good C book is The C Programming Language, Kernighan and Ritchie, Prentice Hall.
  • We assume students have VHDL experience. A recommended VHDL book is A VHDL Primer, J. Bhasker, Prentice Hall, 1999, 3rd Ed. There's an Online "VHDL-by-Example" tutorial (for synthesis from UCR) that may prove useful, as well as an Online VHDL tutorial from a company. There's also an Online VHDL textbook: VHDL Cookbook
  • Lab Software and Hardware We'll be introducing you to WindRiver's tools for real-time systems development, in particular, the Tornado development environment, and the VxWorks real-time operating system. In a recent study by the magazine Embedded Systems Programming, WindRiver was one of the most commonly-used tools by embedded systems industry developers. We'll also be using TriMedia's processor and development software -- their processor is quite popular for video and audio processing (e.g., in set-top boxes). We'll also use the Synopsys simulation and synthesis tools to explore hardware/software tradeoffs, a VHDL model of an 8051 microprocessor, and instruction-set simulator and profiler tools for various processors.
    TAs Jason Villareal, Susan Cotterell. Office hours during scheduled lab.
    Prerequisite CS 122A (Intermediate Embedded System Design )
    Final exam 03/19/2002 8 to 11 a.m.
    Call # and units 17041, 5 units
    Grade Labs 30%, Homeworks 15%, Midterm (and any quizzes) 30%, Final 25%

    Lecture topics

  • Introduction (Reading: ESD Ch1)
  • Models of computation (Reading: ESD Ch8)
  • Languages versus models of computation
  • State machines model, hierarhical/concurrent state machines
  • Dataflow model
  • Concurrent process model
  • Real-time programming (Reading: ESD Ch8, and RTSPL)
  • Concurrent processes
  • Process communication and synchronization
  • Process implementation, process scheduling
  • Interrupt-based programming, real-time programming examples
  • Exceptions and exception handling, use of interrupts
  • Reliability and fault-tolerance
  • Safety (optional reading on space-shuttle software -- thanks to Ashish Kakkad for recommending this article)
  • Survey of some UCR research topics in embedded systems
  • Loop caching, custom cache configuration
  • Core interfacing (guest lecture: Roman Lysecky) slides
  • Introduction to a common type of embedded system: Control systems (Reading: ESD Ch9)
  • Basic examples
  • PID controllers
  • IC technologies available to embedded system designers (Reading: ESD Ch10, FPGA tutorial)
  • Custom, semi-custom, and programmable
  • Application-specific and embedded processors (Reading: Patterson article, others)
  • Trimedia's approach -- VLIW, function instrinsics
  • Tensillica's approach -- Synthesizing customized processors
  • Proceler's approach -- Partitioning code regions to FPGA during compilation
  • MIPS, ARM, Thumb, others
  • Design methodology (Reading ESD Ch11, others)
  • And the trend towards softer hardware
  • Low power issues (Reading: Mudge article)
  • Overview
  • UCR research summary
  • Miscellaneous

  • Email address: In lab, you'll be asked to provide us with a **UCR** email address. Some announcements, and your scores during the quarter, will be sent to that email address. If you commonly read email from another address (e.g., yahoo or hotmail), then you should still provide us with your UCR address, but you might then create a .forward file in your UCR account for your more common address.
  • Regrade policy: corrections to graded material must be submitted within one week of the distribution of the graded items. Corrections to grades database entries must also be corrected within one week of the grades being posted.
  • Homeworks

  • Homework 1
  • Homework 2
  • Homework 3
  • Labs

    Lab Schedule
    Lab Report Format

    Lab 1: State Machines
    Lab 2: State Machines Continued
    Lab 3: Tornado Tutorial
    Lab 4: Concurrency Issues
    Lab 5: Concurrency Issues Continued
    Lab 6: TriMedia Lab
    Lab 7: Introduction to Instruction Set Simulators
    Lab 8: Introduction to Synopsys
    Lab 9: Power Estimation

    Other links

    Embedded Systems Programming magazine
    Learn-C.com -- writing C for embedded control
    Alliance free Linux-based VHDL tools
    Back to Frank Vahid's home page