UCR CS122A: Embedded System Design, Fall 2000

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 will 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). In addition to lab excercises, homeworks, and exams, you'll have the opportunity to develop your own embedded system as a project. Graduate students are welcome to take the course.

Course information

Instructor Frank Vahid, (vahid@cs.ucr.edu). Office hours TBA, Bourns A207
Lecture OLMH 1132 (changed from Hmnss 1404), TR 9:40-11:00
Lab Bourns B262, MT 6:10-9:00PM
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.

I recommend that students purchase the Aldec VHDL simulator student edition. It's an easy to use yet powerful VHDL simulator written for windows, and I think a great deal.

You might also consider getting the Xilinx Student Edition Software and FPGA Board
( Purchase information)

TA Greg Stitt ( gstitt@cs.ucr.edu) Office hours: in lab
Ann Gordon-Ross ( ann@cs.ucr.edu) Office hours: in lab
Prerequisite CS/EE120B (Digital systems)
Final exam 12/14/2000 8 to 11 a.m.
Call # and units 11687, 5 units.
Grade Labs 30%, Homeworks 15%, Midterm/Quizzes 30%, Final 25%

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.
  • Homeworks

  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4 (Due: Wednesday, Nov 29)
  • 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). There is also a final project in the course.

    Labs may be done with one partner. Projects may be done with one or two partners, with points being divided among partners (so more partners means a complex project should be done).

    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 your final project.

    LAB SCHEDULE

    Items to bring to first lab

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

    Lab 1 -- Implementing a simple counter using the 8051
    Lab 2 -- Implementing a calculator using a keypad and an LCD
    Lab 3 -- Serial communication
    Lab 4 -- A/D converter
    Lab 5 -- Introduction to VHDL Simulation and Synthesis
    Lab 6 -- VHDL: Designing a calculator and downloading it unto an XS40 board
    Lab 7 -- Music Generator
    Lab 8 -- Controlling A Stepper Motor

    Guidelines to the Class Projects
    List of Class Projects
    Student Writeups of Class Projects

    Other links

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

    Back to Frank Vahid's home page