UCR EE/CS120B: Introduction to Embedded Systems, Fall 2003

 

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 embedded systems. It will introduce you to using 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).

Course information

Instructor Kris Miller, ( kmiller@cs.ucr.edu), Office: SURGE Bldg. 341, Office hours: MW 2:00pm - 3:00pm

Lecture TR 9:40am-11am LSPW 2418
Lab Section 021: MW 6:10pm-10pm SURGE Bldg. 173
Textbooks Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, 2002, Accompanying Web page 

Logic and Computer Design Fundamentals, M. Morris Mano, Charles R. Kime, Prentice Hall, , 2nd Ed. Accompanying Web page

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

TAs Shawn Nematbakhsh( snematbakhsh@cs.ucr.edu), Petko Bakalov( pbakalov@cs.ucr.edu) Office hours: in lab
Prerequisite CS/EE120A (Logic Design)
Mailing list 120B Mailing List:  It is your responsibility to subscribe to the mailing list with a UCR email address. Some announcements, and your scores during the quarter, will be sent to that email address. If you commonly read email from another address (e.g., yahoo or hotmail), then you must still provide us with your UCR address, but you might then create a .forward file in your UCR account for your more common address.
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; likewise, you must achieve at least a C- in both components to achieve a C- or better in the course.

Workload This is a 5-unit course. You should plan to spend 3 hours/week in lecture, 8 hours/week in lab, and 6-8 hours doing individual study (readings, homeworks, programming, lab preparation, etc.). Don't underestimate the individual study time -- be sure to allocate that time into your weekly schedule. 6-8 hours represent the real time required by successful students.

Lecture topics

(LCDF: Logic and Computer Design Fundamentals; ESD: Embedded System Design book); Lecture slides are available from the ESD web site
  • (Students should review Chapters 1-5 in LCDF)
  • Week 1: Introduction to embedded systems (ESD 1)
    HK1
  • Week 2: Custom single-purpose processors: Hardware (ESD 2), Sequential Logic Design (LCDF 4)
    Quiz 1
    HK2
  • Week 3: Custom single-purpose processors (continued)
    General-purpose processors: Software (ESD 3) Quiz 2
  • Week 4: General-purpose processors continued (ESD 3), ASM programming, 8051 overview
    HK3
  • Week 5: Midterm (Thur)
    Standard Single-purpose processors: Peripherals (ESD 4)
  • Week 6: Standard single-purpose processors continued
    Memory (ESD 5) (skip advanced RAMs)
  • Week 7: Memory (cont)
    Quiz 3 HK4
  • Week 8: Interfacing (ESD 6)
  • Week 9: Interfacing (cont)
    Quiz 4
    HK5
    Putting it all together -- a digital camera (ESD 7)
  • Week 10: Digital camera (cont)
    Misc.
  • General course features and policies

    Homeworks

    No late homeworks. Submitted homeworks should be neat and legible -- sloppy or unnecessarily long homework submissions may lose points or may not be graded. You probably want to do a draft of the homework, and then create a neater copy to turn in.

  • Homework 1: Due Tue, Oct 7
  • Homework 2: Due Fri, Oct 17 (solution)
  • Homework 3: Due Tue, Oct 28 (solution)
  • Homework 4: Due Thu, Nov 13 (solution)
  • Homework 5: Due Tue, Dec 2 (solution)
  • Quizzes

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

    Midterm (solution)

    Final

    Final solution

    Lab

        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 policy

  • 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. In-lecture 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 four 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. Points for lab attendance may be included.
  • 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. Use the report form (in text format, not Word, please). Late lab reports will lose points.
  • Lab reports, code and results (preferably zipped) 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. You are welcome to choose your own lab partner. 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.
  • The Xilinx boards are pre-wired. Please do not change any wiring unless specifically instructed by the TA. Students may be held responsible for boards damaged due to misuse.
  • The key to a successful and enjoyable lab experience is to prepare extensively before coming to lab. Xilinx software comes with the Wakerly book, and VHDL simulation software can be purchased inexpensively. You should code most of your VHDL and C before coming to lab. Lab time is for testing things out and experimenting.

     

    LAB SCHEDULE

    Lab Report Format

  • Grades

    Grade as of 12-09-03

    Please look over your grades and report any discrepencies to the instructor.

    Anonymous evaluation form

    Important note on academic dishonesty

    Cheating will be punished severely. For those who don't want others' cheating to cheapen your own hard work and hurt your grade -- there is an anonymous cheating reporting form at: https://www.cs.ucr.edu/cheating/. While students may discuss material generally (and this is encouraged!), ASSIGNMENT SUBMISSIONS MUST REPRESENT INDEPENDENT WORK .

    Other links


    Our VHDL tutorial
    Online 8051 information
    Embedded Systems Programming magazine
    EDN Embedded Microprocessor Benchmark Consortium
    Free Online Dictionary of Computing
    Online VLSI Design Tutorial synthesis tutorial
    History of the transistor
    ASICs textbook by Smith