This is the official home page for Spring 2012 EE599-004 / EE699-001 "Software Tools for Custom Hardware." There is only one meeting time and place, TuTh from 9:30 - 10:45 in 112 MMRB.

Note: there will not be a class on Thursday, January 26, because Prof. Dietz will be presenting a paper at the IS&T/SPIE Electronic Imaging conference in San Francisco. This will be made up later in the semester.

All course materials will be posted here and/or distributed in class. The course materials are being upgraded for Spring 2012; in particular, the "silicon compilation" project is being heavily reworked. At least the following old material is a good start:

  1. Overview
  2. ABET-style syllabus
  3. Dietz's undergrad compilers notes (PS, PDF)
  4. Overview of Static vs. Dynamic issues
  5. Linux Device Drivers book describing how kernel 2.6 drivers work

All projects are submitted via HTML forms....

  1. Use this form to register with the server
  2. The lexer project is posted here (PDF, HTML submission form)
  3. The parser project is posted here (PDF, HTML submission form)
    There is an error in the parser grammar: there should be an additional alternative expr8: NUMBER.
    As written, the grammar did not allow constants!
  4. The compiler project handout as originally distributed is posted here (PDF).
    It is undergoing massive simplification... and will be posted here shortly.
  5. The C-to-Gates project is posted here (HTML)
  6. The assembler project is posted here (HTML); the AIK reference solution is (HTML)

Course Staff

Professor Hank Dietz used to have his office in 469 FPAT, but is now moved to 203 Marksbury (phone 257 4701). He has research labs in DVT, FPAT, and the Marksbury building. He has an "open-door" policy that whenever his door is open and he's not busy with someone else, he's available. Hank's schedule is at, which also shows live sensor info about his availability. Alternatively, you also can email to make an appointment. Software Tools for Custom Hardware