UCR CS122A: Embedded System Design

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 T Th 1:30-2:30, Bourns A207
Lecture TR 9:40-11:00, SPTH 1222
Lab WF 3:10-6, BRNHL B252
Textbooks Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, Draft copy, available online:   ch0.pdf   ch1.pdf   ch2.pdf   ch3.pdf   ch4.pdf   ch5.pdf   ch6.pdf   ch8.pdf
Accompanying Web page

Philips 8051 databooks will be made available; online 8051 information can be found at 8052.com . A good 8051 book is The 8051 Family of Microcontrollers, Barnett, Prentice Hall, ISBN 0-02-306281-9.

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.

All students should have a basic VHDL book. An Online VHDL textbook is available. There's also a nice Online VHDL tutorial.

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 interested in embedded systems field 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 options) ( purchase info)

TA Roman Lysecky, (rlysecky@cs.ucr.edu) Office hours: in lab
Prerequisite CS/EE120B (Digital systems)
Final exam 12/11/1999 11:30a-2:30p
Call # and units 17055, 5 units.
Grade Labs 40%, Homeworks 15%, Midterm/Quizzes 25%, Final 20%

Lecture topics

1.
Embedded systems introduction: Processor technologies, implementation technologies, and design technologies.
2.
General-purpose processors and the 8051, development environment.
3.
Single-purpose processors: Standard peripheral processors (timers/counters, UARTs, A2D, D2A, PWM, etc.) and designing custom processors (combinational logic design, sequential logic design, custom processor design).
4.
Putting the pieces together: Memories (ROM, RAM, compositions), Interfacing (serial/parallel, interrupt-driven, parallel), Arbiters. Common interfacing prototocols (PCI, ISA, I2C, CAN).
5.
Describing behavior: sequential program, state machines, dataflow.
6.
Implementation technologies: Custom VLSI, standard cell and gate array, programmable logic devices (including FPGA's).
7.
Design technologies: Synthesis (of custom processors using VHDL, Synopsys FPGA Express and Xilinx FPGA's), Verification (simulation and test), and Intellectual Property.

Lab

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). One of the labs will be a ``competition'' in which all students must design a system to solve the same problem - should be fun. 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 for C51 -- 8051 C compiler
Tutorial for PDS51 -- 8051 In-Circuit Emulator
Tutorial for the XS40 Board

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 -- Robot Lab
Lab 7 -- VHDL: Designing a calculator and downloading it unto an XS40 board
Lab 8 -- Controlling A Stepper Motor

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

Other links

Links of interest that 122A students found on the web for homework 1
New DRAM being developed using only two transistors per cell
Dhrystone 2.1 site for source
SEE "ACCOMPANYING WEB PAGE" link for the textbook above for fast access to the dhrystone source
Embedded Systems Programming magazine
EDN Embedded Microprocessor Benchmark Consortium
Free Online Dictionary of Computing
SPEC benchmark home page
Online VLSI Design Tutorial
Intel's How Chips Are Made page
8051 information
VHDL synthesis tutorial
History of the transistor
ASICs textbook by Smith

Back to Frank Vahid's home page