UCR CS122B

Advance Embedded and Real-Time Systems

Winter 2007

Course Information   Lecture   Laboratory   Student Presentation   Homework

 

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 CS122B, you'll learn how to develop and program embedded systems. We'll cover a variety of topics including method and technology of design, how to deal with hardware/software/firmware, trouble-shooting embedded systems, real-time programming, synchronization and atomic actions, scheduling, low-power design, and software testing.  In the laboratory you will deal hands-on with Real-Time operating systesms like Windriver's Tornado and real-time Linux, advance specification/simulation environment like SystemC, advance Application Specific Instruction Processors like Tensilica and Trimedia processors.  Your grade will be based on lab exercises, homework, in-class presentations, and exams. Graduate students are welcome to take the course.

Course information

Instructor

Harry Hsieh, (harry@cs.ucr.edu), Enginerring Building Unit II, room 339

Office hours: TuTh 10AM-11AM, or by appointment

Lecture

SPTH 1222, TR 11:10AM-12:30PM

Lab

Location Engr2 136, MW 6:10PM-9PM

Lab attendance is mandatory.  You are expected to stay in the lab for the entire lab session, working ahead to the next lab if you finished with the current one..  Part of your lab grade is based on attendance and participation.

Textbooks

REQUIRED: None.  Lecture notes and hand-outs will be available throughout the quarter.

Recommended (NOT required):

Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, 2002, Accompanying Web page  .  

Real Time Systems and Programming Languages: Ada 95, Real-Time Java and Real-Time C/POSIX by Alan Burns, Andrew J. Wellings, 3rd edition (April 5, 2001) Addison-Wesley Publishing.

Embedded System Design by Peter Marwedel, Kluwer Academic Publishers, 2003,  ISBN 1-4020-7690-8.

TA

Eric Cheung (chuncheung@cs.ucr.edu) Office hours: in lab

Prerequisite

CS012 AND CS122A

Exams

Midterms TBA; Final 03/19/2007 11:30AM-2:30PM

Call # and units

12308, 5 units.

Grade

Labs 40%, Homeworks 5%, Presentations 5%, In-Class Midterms 25%, Final 25%

Letter grades are assigned according to the usual 90/80/70/60 rule:  90% and above correspond to an A, 80% and above to a B, 70% and above to a C, 60% and above to a D, and less than 60% to an F.  +/- grades will be given.  Curving may be done on individual items only if it helps the class.  You are NOT competing against one another -- you can all earn A's  (and that has happened in the past), so work together and help each other to succeed.

To ensure minimum competency in both the principle and practice, students must pass each both Quizzes+Final portion and the Labs+Homework portion to pass the course.

Lecture topics 

  • Embedded System Specification
    • StateChart
    • PetriNet
    • Process Network and Synchronous Data Flow
  • Real-Time Programming
    • Concurrent Programming
    • Synchronization and Communication
    • Scheduling
  • Embedded System Optimization
    • Data Layout
    • Low Power Design
    • Hardware/Software Co-Deign through dynamic programming
  • Embedded System Verification
    • Fault tolerance computing
    • Formal Verification
  • System level design
    • Architecture Synthesis
    • Hardware Resource Scheduling

           

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 only 1 week to bring it to my attention.  After that, the grading is considered final. (Note: you may work in group, but you MUST turn in your own write-up.  Obtaining answers from your classmate or any outside source will be considered as academic misconduct).

·  Homework 1 due Thursday 1/25, before class

·  Homework 2 due Friday 2/16, midnight

·  Homework 3 due Friday 3/9, midnight

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.  Your own presentation will be graded.  The material covered in the presentations will not show up on quizzes or exams except as extra credits.  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.  I have read the article, so I can tell whether or not you put in some research, or it is just a straight recitation of the facts from the paper.  Questions from the audience are encouraged.  

Presentation Schedule and List of Articles

Lab

 You will also have fun dealing with DVD processing (Trimedia) and a genuine Platform FPGA (Microblaze).  We will also deal with the single most popular embedded real-time OS (Tornado/VxWorks) and a state-of-the-art system level language (SystemC) and exciting flexible instruction set application specific instruction processor (Tensilica).  For the first time for this class, we will also get our hands on a formal verifier to prove that our design works as advertised.

Labs should be done with one partner.  It is high encouraged that one personal windows-based labtop is available for each group.  This is so that you can have flexibility of working on some of the lab outside.

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 specific designs and tools.  Exam will cover both the lecture and lab, with slight emphasis on the lecture material.

You should plan to stay in every lab for the full three hours, starting from the very first lab. 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.

An electronic copy of the lab report (i.e. web turn-in's) need to be submitted, at the time of the demo for the lab to be completed.  

(Note: While working in group of 2, you still must write your own lab report.  You and your partner may jointly write the code and be jointly responsible for it.  All aspects of the lab should be done by you and your partner.  Obtaining information from outside source, especially if it is without citation, will be considered as academic misconduct.)

 

LAB SCHEDULE

Lab Report Format

Sample Lab Report

What we are looking for when grading the reports

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

 

Doc1

Doc2