UCR EE/CS120B: Introduction to Embedded Systems, Winter 2005

Course Information

Lecture

Laboratory

Homework

Previous CS/EE120Bs

Grades

EE/CS120B introduces 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 EE/CS120B, you'll learn how to develop and program basic embedded systems. It will introduce you to a unified view of hardware and software design, mapping desired functionality to a collection of single-purpose processors (digital hardware and peripherals) and general-purpose processors (microprocessors). Students will gain experience building real digital systems using VHDL, synthesis and FPGAs (Xilinx), and programming embedded microprocessors (Intel 8051 8-bit microcontroller). The follow-up courses of CS122A and CS122B introduce you to more advanced designs and methods.

Course information

Instructor Brian Grattan, ( bgrattan@cs.ucr.edu), Office: SURGE Bldg. 340
Lecture MWF 4:10-5PM Sproul 2355
Lab SURGE Bldg. 173
Textbooks REQUIRED:
Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, 2002, Book web page
The Students Guide to VHDL, Peter Ashenden, Morgan Kaufmann, 1st Edition, ISBN 1558605207.

RECOMMENDED:
Some free references include: UCR's Online VHDL tutorial, Accolade's VHDL Reference Guide and Hamburg VHDL archive which include Peter Ashenden's popular VHDL Cookbook.
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.
An 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 Symphony VHDL Simulator, and Xilinx ISE.

You may want to consider downloading Symphony EDA simulator. It's an easy to use yet powerful VHDL simulator written for Windows or Linux. You might also consider getting the Xilinx WebPACK. You will need to register with Xilinx to download it.

TAs Shawn Nematbakhsh (snematbakhsh@cs.ucr.edu), Wei Wu (wwu@cs.ucr.edu), Som Neema (sneema@cs.ucr.edu), Piyush Satapathy(piyush@cs.ucr.edu)
Prerequisite CS/EE120A (Logic Design) CS 61
Mailing list 120B Mailing List: It is your responsibility to subscribe to the mailing list. Some announcements may made only over the mailing list. It is a good idea to use a UCR e-mail address. If you commonly read email from another address (e.g., yahoo or hotmail), you might then create a .forward file (containing your other email address) in your UCR account to forward the emails.
Grade Lab component 40% (lab assignments, lab attendance, in-lab exams), Lecture component 60% (homeworks 10%, quizzes 10%, Midterm 20%, Final 20%)

Note:  To ensure minimum competency in both the principles and practice, you must pass both components to pass the course.

Grades will be assigned using a conventional grading scale: 100-90 A, 89-80 B, 79-70 C, 69-60 D, 59-0 F. +/- grades will be given. Students are NOT competing against one another, but rather against the scale -- all students can get good grades if all do well. We may adjust ("curve") an individual assessment item if such adjusting HELPS the class. Our goal is to help as many of you as possible to do well.

Lecture topics

(ESD: Embedded System Design book); Lecture slides are available from the ESD web site
  • Week 1: Introduction to embedded systems (ESD 1)
  • Week 2: Custom single-purpose processors: Hardware (ESD 2), Sequential Logic Design (LCDF 4)
  • Week 3: Custom single-purpose processors (continued)
  • Week 4: General-purpose processors continued (ESD 3), ASM programming, 8051 overview
  • Week 5: Midterm
    Standard Single-purpose processors: Peripherals (ESD 4)
  • Week 6: Standard single-purpose processors continued
    Memory (ESD 5) (skip advanced RAMs)
  • Week 7: Memory (cont)
  • Week 8: Interfacing (ESD 6)
  • Week 9: Interfacing (cont)
    Putting it all together -- a digital camera (ESD 7)
  • Week 10: Digital camera (cont)
    Misc.
  • FINAL: Wednesday, March 16th, 11:30AM - 2:30PM; Location: SPR 2355

    Lecture Slides:

  • Lecture Slides Directory

    General course features and policies

    Homeworks

    Quizzes

  • Quiz 1 solutions
  • Quiz 2 solutions
  • Quiz 3 solutions
  • Quiz 4 solutions
  • Quiz 5 solutions
  • Midterm

  • Midterm Solutions
  • Final

  • Final Solutions

  • Check ILearn (www.ilearn.ucr.edu) for your grade.

    Lab
    LAB SCHEDULE

    Lab topics

  • Introduction to VHDL and simulation
  • Introduction to synthesis and FPGAs ( Xilinx )
  • Synthesis of digital components, datapaths, and simple custom processors
  • Introduction to an embedded microprocessor: The Intel 8051
  • Hardware/software tradeoffs
  • Lab features and policies

  • Labs should be done with one partner.  
  • Each lab assignment's grade will typically consist 100 points: 30 points for your lab demo (simulation and board), 50 points for your code and/or schematic (must be well organized and commented), and 20 points for your lab report.
  • Lab reports are due at the time of the demo.  You are to print out report, code, schematic, and result and hand your TA a hardcopy at the time of the demo.
  • Lab reports, code and results should also be turned in through the web at the time of the demo.
  • The TA's may not be available for help 15 minutes before the end of each lab. This time is reserved for checking out completed labs.
  • You will be working in groups of two. Groups of three will not be allowed.
  • The TA's will check out the Xilinx boards and other equipment to each group when required. Boards are only available during scheduled lab. Student must check the boards back in when done, and must be sure to sign the check in sheet. Students should also be sure the TA records the score of your lab demo.
  • You are required to go to the lab section you are registered in. If you wish to change your lab section, this must be pre-approved by the TA.
  • The key to a successful and enjoyable lab experience is to prepare extensively before coming to lab. Xilinx software is free from www.xilinx.com and VHDL simulation software can be downloaded from www.symphonyeda.com. You should code most of your VHDL and C before coming to lab. Lab time is for testing things out and experimenting.
  • You are responsible for any damage done to the board while you have it checked out

  • Grades

    Grades are available to students through ILearn (www.ilearn.ucr.edu).

    Anonymous evaluation form

    Other links


    Digilent Incorporated The makers of the boards we use in class.
    Our VHDL tutorial
    Online 8051 information
    Embedded Systems Programming magazine
    EDN Embedded Microprocessor Benchmark Consortium
    Free Online Dictionary of Computing