University of California, Santa Barbara
Department of Electrical and Computer Engineering

Hardware/Software Interfaces Embedded System Design

ECE 153a / ECE 253 - Fall 2013

Instructor: Prof. Forrest Brewer 729-1410

Office Hours: 1-2pm Mon, Wed. Drop in, or call.

TAs: Ethan Preble and Lucas Buckland


Note -- up to date labs and assignments on Gauchospace...

Contrary to several rumors -- every project needs to have a project report -- whether you are a graduate student or not.

Homework is to be hard copy to allow grading and return. (Homework box is available).
A brief description of what should be in lab write-ups posted.

This year, as in the past, the course will use Digilent/Xilinx Spartan 3e Starter Boards for labs and projects in lieu of a formal text book. Project teams will consist of 1-2 people and each team will need their own board as well as a Digilent Microphone assembly (PMOD-MIC). Because of software improvements, we no longer need serial converters. These items can be purchased for less than $200. The card and microphone module are available from be sure to get the Spartan 3e starter kit and the PMOD-MIC. (You can also use the more expensive card with larger FPGA available from the same source, but you won't need the space unless you plan a very extensive hardware expansion as a graduate project.) Each team is responsible for their hardware and project demonstrations. Please get your boards as soon as possible since they are required for all class labs. (You may also get a board from a student of last year's class -- but look it over for "dings" and if possible run the self test. The boards have proven fairly robust - the only known easy failure is the USB connector which is surface mounted and can pop off if dropped.

Course Description: This course discusses metric approaches to software-based embedded system design and design representation. Given the enormous scope of embedded applications, multiple models of computation, performance and constraint analysis exist. In addition, practical issues of software design within the context of embedded systems will be addressed including those issues related to real-time constraints. In particular, we will focus on hierarchical automata techniques to organize behaviors from multiple source interfaces as well as computation tricks and tradeoffs in highly constrainted environments.

Reference Books: Miro Samek's:  "Practical UML Statecharts in C/C++, Second Edition: Event-Driven Programming for Embedded Systems", Newnes 2nd edition is available. ISBN: 0750687061  -- We will use the QP nano system in the labs, as well as his simple event management representation for HSM. (about $45 new at amazon-- older versions and editions are fine as we will not push the UML aspects in this class)

Lecture Notes:

    Lecture 1 (PDF)

     Bob's Lecture 1

    Lecture 2 (PDF)

     MicroBlaze Overview (PDF)

     Interrupts and Programmed IO (PDF)

    Lecture 3 (PDF)

    Lecture 3a (HSM)

    Lecture 3b (PBS)

    Lecture 4 (PDF)

    Lecture 5 (PDF)

    Lecture 6

    Lecture 7 (PDF)

    Lecture 8 (PDF)

    Lecture 9

    Lecture 11 (PDF)

    Compiler Optimization (Synopsys) L1 (pdf) L2 (pdf) L3 (pdf) L4 (pdf)

Weekly Readings

Lab Writeups

Homework Assignments:

    Homework 1 - due Thursday, October 6th

Homework is to be hard copy to allow grading and return. Homework is due at or before classtime. There is a homework box assigned for this class. The homework box will be checked on at noon on the day it is due, so if you turn in your homework through the homework box, then it must be in there before noon.

Xilinx Documentation:

    Microblaze Processor Reference Guide

    EDK Reference Manual

    Spartan-3E Starter Board User Guide

    GCC Reference Manual

    Rotary Encoder Interface (Helpful for Lab 2)

    Guide to Writing .ucf Files


    Accelerometer Peripheral Design

ECE Syllabi || Electrical and Computer Engineering || College of Engineering

Last Updated: September 20, 2011