UCR CS122A: Embedded System Design, Fall 2001

Course Information   Lecture   Laboratory   Student Presentation   Homework

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). Your grade will be based on lab exercises, homeworks, 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: MW 9:30-10:30AM, or by appointment

Lecture SPR 2343, TR 11:10AM-12:30PM
Lab Location SURGE 173, WF 11:10AM-2PM (sec 021) or TR 6:10-9:00PM (sec 022)
Textbooks Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, Draft copy to be available at the beginning of the quarter from UCR Printing and Reprographics. Accompanying Web page    

The 8051 Microcontroller, by Stewart and Miao, Prentice Hall, Second edition, ISBN 0-13-531948-x. 

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.

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 Roman Lev Lysecky ( rlysecky@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/11/2001 8 to 11 a.m. SPR2343 | Midterm 11/1 in class
Call # and units 16613, 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 introduction. 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, etc.
  • Memories. ROM, EEPROM, FLASH, RAM, NVRAM, etc.
  • Interfacing. Interrupts, DMA, and arbitration.
  • Advanced state machines.
  • IC technology.
  • Design technologies. Synthesis. Verification. Intellectual Property and cores.
  • 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 1 only 1 week to bring it to my attention.  After that, the grading is considered final.

  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4
  • Homework 5
  • Homework 6
  • 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/4).  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 12 will count 3 times more than other regular labs.

     

    LAB SCHEDULE

    Items to bring to first lab

    Lab Report Format
    Tutorial: Using the C51 compiler and the PDS51 Emulation Software
    Tutorial: Xilinx Synthesis

    Additional questions that must be answered in the lab report

    Sample Lab Report

    What we are looking for when grading the reports

    What we are looking for when grading the reports for Lab 12

     

     

    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