UCR CS122A: Embedded System Design, Fall 2003

Course Information   Lecture   Laboratory   Student Presentation   Homework

Announcement: Extra Office hour Monday 11/8: 11-12AM, 1-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 reliability issues. 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 SPR2360, TR 9:40AM-11AM
Lab Location SURGE 173, MW 11:10AM-2PM (section 021) TuTh  6:10PM-9PM (section 022)
Textbooks REQUIRED:

Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, 2002, Accompanying Web page    

Recommended (NOT required):

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.

VHDL Design Representation and Synthesis, Gray Armstrong, Prentice Hall, Second edition, ISBN 0130216704, OR another VHDL book covering synthesis.

A basic C programming book. A good C book is The C Programming Language, Kernighan and Ritchie, Prentice Hall, ISBN 0-13-110362-8, OR any other basic C programming book.  

The 8051 Microcontroller, by Stewart and Miao, Prentice Hall, Second edition, ISBN 0-13-531948-x, OR any other 8051 microcontroller book

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

Recommended software (NOT required):  

Aldec VHDL simulator student edition. A VHDL simulator written for windows.

 Xilinx Student Edition Software and FPGA Board, and accompanying software.

TA Greg Stitt (gstitt@cs.ucr.edu) Office hours: in lab
Ann Gordon-Ross (ann@cs.ucr.edu) Office hours: in lab
Lan Ye (lye@cs.ucr.edu) Office hours: in lab
Prerequisite CS/EE120B (Digital systems)
Exams Final 12/9/2003 8 to 11 a.m. SPR2360 | Midterm TBA
Call # and units 11994, 5 units.
Grade Labs 25%, Homeworks 10%, Midterm 20%, Quizzes 10%, Presentations 5%, Final 30%

You must pass the exams (midterm/quizzes/final) as well as the laboratories to pass the course.

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
  • Hybrid models (Esterel & SystemC)
  • 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
  • Process implementation, process scheduling
  • Reliability and fault-tolerance
  • 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. (Note: you may work in group, but you MUST turn in your own write-up.  Obtaining answers from your classmate or any outside source will be considered as academic misconduct).

  • Homework 1  Due 10/14. Prob 6 Modified 10/7.
  • Homework 2  Due 10/23. Prob 2 Corrected 10/17.
  • Homework 3  Due 11/13 
  • Homework 4  Due 11/25
  • Homework 5  Due 12/4
  • 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 (9/30).  Your own presentation will be graded.  The material covered in the presentations will not show up on quizzes or 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.  I have read the article, so I can tell whether or not you put in some research, or it is just a straight recitation of the facts from the paper.  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).  You will also have fun dealing with DVD processing (Trimedia) and a genuine Platform FPGA (Trisend).

    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 (85%), but will include some amount of lab material (15%).  But it may be the hardest part so pay attention in lab!!!

    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.

    An electronic copy of the lab report (i.e. web turn-in's) need to be submitted, as well as a paper copy, at the time of the demo for the lab to be completed.  

    (Note: While working in group of 2, you still must write your own lab report.  You and your partner may jointly write the code and be jointly responsible for it.  All aspects of the lab should be done by you and your partner.  Obtaining information from outside source, especially if it is without citation, will be considered as academic misconduct.)

     

    LAB SCHEDULE

    Items to bring to first lab

    Additional Questions for the lab report

    Lab Report Format

    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