UCR CS122A: Embedded System Design, Fall 2002

Course Information   Lecture   Laboratory   Student Presentation   Homework

 

Announcement: Extra office hour on Monday 12/9 1PM-2PM

 

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

Why 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. In 1997, the average U.S. household had over 10 embedded computers, not to mention the automobile, which have 35 or more by the year 2000. Demand for embedded system designers is large, and is growing rapidly.

In CS122A, you'll learn how to develop and program embedded systems. We'll cover C programming of embedded microcontrollers, the function and use of common peripherals, and the programming and simulation (using VHDL) of custom single-purpose processors (custom digital hardware). We will also investigate several more advanced topics, including hardware/software tradeoffs, real-time systems, computation models, an introduction to control systems, and low-power design (if time permit). Labs will focus more on higher end (32-bit processor based) processing systems. Your grade will be based on lab exercises, homework, in-class presentations, and exams. Graduate students are welcome to take the course.

Course information

Instructor Harry Hsieh, (harry@cs.ucr.edu), SURGE 329

Office hours: TuTh 11AM-noon, or by appointment

Lecture SPR 2339, TR 9:40AM-11AM
Lab Location SURGE 173, TuTh  6:10PM-9PM
Textbooks Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, 2002, Accompanying Web page    

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.

RECOMMENDED: VHDL Design Representation and Synthesis, Gray Armstrong, Prentice Hall, Second edition, ISBN 0130216704, OR another VHDL book covering synthesis. All students should have a basic C programming book. A good C book is The C Programming Language, Kernighan and Ritchie, Prentice Hall, ISBN 0-13-110362-8.  A 8051 microcontroller book may be helpful for the lab.  A good one is The 8051 Microcontroller, by Stewart and Miao, Prentice Hall, Second edition, ISBN 0-13-531948-x. 

Software We'll be using the Keil 8051 C compiler, Philips 8051 emulators/software, the Aldec VHDL simulator, and Xilinx/Synopsys Foundation Express.

You may want to consider purchasing Aldec VHDL simulator student edition. It's an easy to use yet powerful VHDL simulator written for windows. You might also consider getting the Xilinx Student Edition Software and FPGA Board

TA Jason Villarreal ( villarre@cs.ucr.edu) Office hours: in lab
Susan Cotterell ( susanc@cs.ucr.edu) Office hours: in lab
Prerequisite CS/EE120B (Digital systems)
Exams Final 12/10/2002 8 to 11 a.m. SPR2339 | Midterm TBA
Call # and units 11842, 5 units.
Grade Labs 30%, Homeworks 10%, Midterm/Quizzes/Presentations 35%, Final 25%

Extra credit questions may be available for Midterm, Quizzes, and Final.

Lecture topics

  • Embedded systems: 
  • Design challenges. Moore's law. Processor technologies, implementation technologies, and design technologies.  Custom single-purpose processors: hardware design.  General-purpose processors: software.  Standard single-purpose processors: peripherals. Timers/counters, UARTs, A2D, D2A, PWM.  Memories: ROM, EEPROM, FLASH, RAM, NVRAM.  Interfacing: Interrupts, DMA, and arbitration.
  • Models of computation
  • Languages versus models of computation
  • State machines model, hierarhical/concurrent state machines
  • Dataflow model
  • Concurrent process model
  • IC technologies available to embedded system designer
  • Custom, semi-custom, and programmable
  • Design methodology
  • And the trend towards softer hardware
  • Real-time programming
  • 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
  • Lecture Schedule, Slides, and Handouts

    Homeworks

        No late homework will be accepted.  If you have any question about the grading of your homework after it is returned, you have only 1 week to bring it to my attention.  After that, the grading is considered final.

  • Homework 1 due Thursday, 10/3
  • Homework 2 due Thursday, 10/10 (Problem 10 modified on 10/7)
  • Homework 3 due Thursday, 10/17
  • Homework 4 due Thursday, 10/24 (Problem 1 and 2 modified on 10/21)
  • Homework 5 due Thursday, 11/21
  • Homework 6 due Thursday, 12/5
  • Student presentation

    You will be required to make a 10 minute oral presentation in class about an article related to computer engineering.  You will need to sign up for an article AND a time slot no later than the second class (10/1).  While your own presentation will be graded, the material covered in the presentations may show up only as extra credit questions on quizzes and exams.  Presenters should try to cover the relevant and interesting points of the article.  In addition, presenters are expected to do a little research outside the article and add it to the presentation.  Questions from the audience are encouraged.  

    Presentation Schedule and List of Articles

    Lab

    The following is subject to change.
    You will have several assigned labs dealing with writing programs for an embedded general-purpose processor (an 8051 microcontroller), and synthesizing custom single-purpose processors (using Synopsys FPGA Express and Xilinx FPGA's).

    Labs should be done with one partner.  

    While lecture and lab material obviously overlap, the two aspects of the course are quite independent, with lectures dealing with general theory and principles, and lab dealing specifically with a couple of selected processors and tools. Exams will focus on lecture material, but will include some amount of lab material.

    You should plan to stay in every lab for the full three hours, starting from the very first day. If you finish a lab early, then you should start on the next one (each comes with a good description), so that you will have even more time to work on later labs which are more difficult.

     

    LAB SCHEDULE

    Items to bring to first lab

    Additional Questions for the lab report

    Lab Report Format

    Lab Report Format for the class project

    Sample Lab Report

    What we are looking for when grading the reports

    Other links

    Online VHDL tutorial
    Online 8051 information
    Embedded Systems Programming magazine
    EDN Embedded Microprocessor Benchmark Consortium
    Free Online Dictionary of Computing
    Online VLSI Design Tutorial
    VHDL synthesis tutorial
    History of the transistor
    ASICs textbook by Smith
    Jan Madsen's course on embedded systems, using the same book