Stephen A. Edwards Columbia University Crown
  COMS W4995-02
Languages for Embedded System Design
Fall 2001
Home Project Projects FAQ Flyer Bulletin Board
  Embedded systems are single-purpose computers that are often part of larger systems such as cars or telephones. Their design requires tight integration of application-specific hardware and software, and often have strong constraints on power, cost, and speed. While most embedded systems are currently designed using ad hoc techniques, the complexity of future systems will demand formal design techniques.

The course is an introduction to a wide variety of languages used to specify embedded systems. Embodied in these languages are different models of computation, such as sequential, dataflow, discrete-event, and synchronous, that shape how design problems may be solved. Knowing about more of these languages will give you a bigger bag of tricks for solving design problems.

When you have completed the course, you will have gained some experience using each of the languages, will have learned about how each of them are implemented, and will have completed a project that will give you more in-depth knowledge of one of the languages, either by using it to design a system or by creating an analysis tool for the language.

  COMS W4115 Programming Languages and Translators or equivalent
COMS W3823 Digital Logic or equivalent

This is a course about both hardware and software languages, so I expect you to be familar with programming in a language such as C or Java, be aware of language and compiler design issues and also be somewhat familiar with digital logic design. A simple litmus test: you should be able to write a program that performs a depth-first traversal of a graph, know what an abstract syntax tree is, and should be able to design a four-bit binary counter using NAND gates and flip-flops.
 Required Text
  Cover of
Languages for Digital Embedded Systems Stephen A. Edwards.
Languages for Digital Embedded Systems.
Kluwer, 2000.
ISBN 0-7923-7925-X

Near Columbia, this is available at Papyrus Booksellers, at the corner of 114th and Broadway. Textbooks are downstairs.
 Additional Required Reading
  6 page PostScript File Robert S. French, Monica S. Lam, Jeremy R. Levitt, and Kunle Olukotun.
A General Method for Compiling Event-Driven Simulations.
In Proceedings of the 32nd Design Automation Conference.
San Francisco, California, June 1995, pages 151-156.
Describes the standard way to compile Verilog along with a more sophisticated technique that does much of the scheduling at compile time.
  16 page PDF File (for Acrobat) Dennis M. Ritchie.
The Development of the C Language.
In History of Programming Languages II.
Cambridge, Massachusetts, April 1993.
An excellent discussion of how the C language evolved, written by its creator.
  31 page PDF File (for Acrobat) Gérard Berry.
The Foundations of Esterel.
In Proof Language, and Interaction: Essays in Honour of Robin Milner.
Mit Press, 2000.
  6 page PDF File (for Acrobat) Stan Liao, Steve Tjiang, Rajesh Gupta.
An Efficient Implementation of Reactivity for Modeling Hardware in the Scenic Design Environment.
In Proceedings of the 34th Design Automation Conference.
Anaheim, California, June 1997.
Describes how SystemC is implemented using a threads package (it was called Scenic then).
 Optional Reading
  Donald E. Thomas and Philip R. Moorby.
The Verilog Hardware Description Language.
Fourth Edition, Kluwer, 1998.
The main text on Verilog. Moorby designed the language.
  Brian W. Kernighan and Dennis M. Ritchie.
The C Programming Langage.
Second Edition, Prentice-Hall, 1988.
Still the best text on the C language. Possibly the best-written programming language text ever.
  Bjarne Stroustrup.
The Design and Evolution of C++.
Addison-Wesley, 1994.
A comprehensive history of C++ that explains Stroustrup's intentions.
 Schedule of Lectures
  Classes meet Mondays and Wednesdays from 9:40 to 10:55 in 535 Mudd. This is change from the schedule of classes, which lists 327 Mudd.
The following schedule is tentative and subject to change.

Date  Lecture    Assignment  Reading  Due 
September 5  Introduction  17 slide Powerpoint File 3 page PDF File (for Acrobat)       
September 10  Languages  27 slide Powerpoint File 5 page PDF File (for Acrobat) 10 slide Powerpoint File 2 page PDF File (for Acrobat)    Ch 1   
September 12  Assembly 1  29 slide Powerpoint File 5 page PDF File (for Acrobat)    Ch 5, 6   
September 17  Assembly 2  31 slide Powerpoint File 6 page PDF File (for Acrobat)       
September 19  The C Language 1  65 slide Powerpoint File 11 page PDF File (for Acrobat)  HW 1 3 page PDF File (for Acrobat)  Ch 7 + Ritchie   
September 24  The C Language 2         
September 26  C++ 1  50 slide Powerpoint File 9 page PDF File (for Acrobat)    Ch 8  Project Proposals 
October 1  C++ 2         
October 3  Review  31 slide Powerpoint File 6 page PDF File (for Acrobat)      HW 1 
October 8  Midterm 1
October 10  Concurrency in Java  32 slide Powerpoint File 6 page PDF File (for Acrobat)  HW 2 1 page PDF File (for Acrobat)  Ch 9   
October 15  RTOSes  37 slide Powerpoint File 7 page PDF File (for Acrobat)    Ch 10   
October 17  Dataflow 1  54 slide Powerpoint File 9 page PDF File (for Acrobat)    Ch 11   
October 22  Dataflow 2      Ch 12   
October 24  Esterel 1  56 slide Powerpoint File 10 page PDF File (for Acrobat)    Ch 13 + Berry  HW 2 
October 29  Literature Presentations         
October 31  Esterel 2    HW 3 2 page PDF File (for Acrobat)    Literature Survey 
November 5,6  Election Day Holiday
November 7  Review of digital logic  28 slide Powerpoint File 5 page PDF File (for Acrobat)    Ch 2   
November 12  Verilog 1  78 slide Powerpoint File 13 page PDF File (for Acrobat)    Ch 3 + French   
November 14  Verilog 2    HW 4 2 page PDF File (for Acrobat)    HW 3 
November 19  System C 1  58 slide Powerpoint File 10 page PDF File (for Acrobat)    Ch 16 + Liao   
November 21  System C 2         
November 22,23  Thanksgiving Holiday
November 26  Writing Scholarly Papers  32 slide Powerpoint File 6 page PDF File (for Acrobat)       
November 28  SDL 1  54 slide Powerpoint File 9 page PDF File (for Acrobat)    Ch 15  HW 4 
December 3  SDL 2 / Review  63 slide Powerpoint File 11 page PDF File (for Acrobat)       
December 5  Class canceled: work on your project         
December 10  In-class final        Project Writeup 
December 19  Project Presentations (9:00 AM - 12:00 PM)         
December 21  Fall Term Ends
  • Two tests, one covering the first half of the class, one covering the second. There will be no comprehensive final.
  • Four homework assignments, each due two weeks after it is assigned.
  • A one-paragraph project proposal.
  • A one-page literature survey reviewing your project area.
  • A five-minute presentation on the literature survey.
  • A six-page project writeup.
  • A ten-minute presentation on the project.
 Class policies
  Grading 50 % Project
20 % Midterm 1
20 % Final
10 % Homework
  Collaboration You are permitted to collaborate on homeworks, however, the homework you submit must be your own unique creation, and you must understand and be able to explain your result. My intention is not to reduce your workload, but to give you the opportunity to learn from your peers. See Columbia academic policies for more details.

Collaboration on the project is mandatory unless your "team" is just you.

Collaboration on the midterms is forbidden.

  Late Policy Zero credit for anything handed in after the due date without explicit approval of the instructor. Homeworks are due at the beginning of class on the designated due date.
  Attendance You are responsible for knowing the presented material regardless of your attendance in class, and regular attendance is the best way to achieve this.
  One-minute feedback At the end of each class, I will ask you to spend a minute writing a question or comment about the lecture. I am looking for feedback: if you still have unanswered questions, or if any part of the lecture was unclear and you did not have the opportunity to ask a question in class, this is the time to ask. I will try to address these problems at the beginning of the next class.

You will be asked to sign your name on this question or comment, but its content will not affect your grade.

  Prof. Stephen A. Edwards
462 Computer Science Building
(212) 939-7019
Office Hours 2:00 - 5:00 Mondays
 Classes at Other Institutions
  EE382C-9 Prof. Brian Evans at the University of Texas at Austin teaches a similar course that focuses more on signal processing issues.
  290N Prof. Edward A. Lee at the University of California, Berkeley taught a much more theoretical class on languages and models of computation.
  ee249 Prof. Alberto Sangiovanni-Vincentelli at the University of California, Berkeley taught a similar class.
 Other resources
  6 page PDF File (for Acrobat) A small annotated bibliography on embedded systems.
   page PDF File (for Acrobat) Kees Vissers and Pieter van der Wolf, Kahn Process Networks and system level design. A presentation that describes the use of Kahn Process networks in the design of an MPEG decoder.
  Homepage The Esterel web site. There are compilers, documentation, and examples here.

Copyright © 2001 Stephen A. Edwards Updated Wed Dec 19 18:45:28 EST 2001 All Rights reserved