The project will be split into a literature survey and a research report. The literature survey, which is due in the middle of the semester, will summarize and evaluate at least three key industrial or academic journal articles on a particular topic. The research report, which is due at the end of the semester, will describe the problem you have addressed, previous approaches to the problem, and an implementation of an idea.

A successful project will demonstrate a grasp on the literature on the subject and familiarity with relevant software. In the case that you have a really successful project report, I've compiled a list of deadlines for upcoming conferences to which you might consider submitting your final report. An interrim report for each part of the project will be required.

Grading, Scope, and Format of the Project Report

- Original references should be cited (and even read and understood).
- The project should reflect a serious effort to go beyond the course material, obtaining additional sources from the net, journals, or books.
- All prior work, published or not, public domain or proprietary, should be fully credited ("my officemate, Joe Schmo, says ...", "This section of code is modified from XXX gotten from YYY").
- Do not build software from scratch. Your project will not be evaluated on the basis of how much effort you put into it, but rather on how effective your work is. Go to the net or commercial software and find something to build on.
- Learn to use the relevant languages, at least to the level of proficiency required to make your point. Get the compiler, simulator, design environment, and install it.
- If you are already engaged in relevant work, leverage it.

- A case study of implementing a high-throughput real-time system on a workstation using Process Networks. Example would be a SAR system. Contact Mr. Gregory Allen at allen@ece.utexas.edu.
- A study of algorithms for
(i.e., dual-tone modulated-frequency detection) and an evaluation of DTMF detector implementations on multiple DSP architectures. For example, see the Spring 1997 project on DTMF detection.*real-time touchtone detection* - A study of MPEG-4 and H.263 video processing standards for
, and an implementation of either a MPEG-4 or H.263 decoder on a digital signal processor such as the TMS320C54 or TMS320C62 processor from Texas Instruments. Talks on and source code for these DSPs. For this project, it is in your best interest to request the appropriate manuals from TI, which are free of charge, by calling 1-800-477-8924. For the C6x, you would ask for*wireless video communications*- TMS320C6000 Assembly Language Tools (SPRU 186E)
- TMS320C6000 Optimizing C Compiler User's Guide (SPRU 187E)
- TMS320C62x/X67x Programmer's Guide (SPRU 198B)

- A study of
and an end-to-end simulation and synthesis in C of one type of xDSL modem. Ptolemy can be used for both the simulation and synthesis. Cicada Semiconductor here in Austin, Texas, is in the process of designing HDSL2 modems and may be able to provide some guidance provided that your team consists of full-time UT students. You can pick up where the Spring 1998 and Spring 1999 projects left off. More information.*digital subscriber line (xDSL) modems* - Complexity analysis and modeling of a
such as MPEG4. This is definitely a group effort. Overview of MPEG Video Coding Standards*multimedia standard* -
for wireless communications. More information.*Configurable computing on a chip*

- A study of Process Networks, and an implemenation of Dynamic artificial deadlock detection (rule 3 of Parks' bounded scheduling rules) in the C++ implementation of Process Networks by Greg Allen. If the network deadlocks because of writes to full queues, the increase the size of the smallest full queue so that the deadlock is resolved. Contact Mr. Gregory Allen at allen@ece.utexas.edu.
- A study of the performance of circular buffers on workstations. For the implementation, one could profile an overlap-and-save FFT or an FIR filter with a single queue and measure the performance difference for: a) "copy down" on every firing, (b) "copy down when needed" (Process Network queues use this when there's no mmap support), and (c) "data remapping" (Process Network queues).
- A study of
by different algorithms and data structures and an implementation of a power analysis tool for software for a specific processor. The power analysis tool does not have to be robust and would likely only support a subset of the overall instruction set. List of references and more information.*power consumption* - A study and implementation of
of DSP processors or microcontrollers using binary-to-binary translation. More information*ultrafast simulators* - A study and implementation of
of heterogeneous hardware/software implementations. More information*Web-based distributed cosimulation* - A study of compilation techniques and architecture of
for embedded systems, such as the Texas Instruments TMS320C62 DSP, and an evaluation of compiler performance for a family of embedded system algorithms and tasks. For example, see the Spring 1997 project on benchmarking code generation methodologies which uses a conventional DSP processor. Talks on and source code for the C6000 VLIW DSP**very-long instruction word (VLIW) processors** - A study of
techniques for data-intensive (e.g., dataflow) and control-intensive (e.g., finite state machine) models of computation and an implementation of an algorithm to help automate partitioning of the design into hardware and software. This project might be ideal for someone who is also taking the course EE382C Methodologies for Hardware/Software Codesign. More information*hardware/software codesign* - Design methodologies for systems-on-a-chip, e.g. reuse of intellectual property cores.

- A study of models of computation for mixed embedded DSP and controls
systems for
and an implementation of an active machine vision algorithm utilizing embedded DSP and control processing. For example, see the Spring 1997 project on machine vision modeling and simulation.*active machine vision* - A study of
for non-separable multidimensional systems and a prototype implementation of a scheduler for a multidimensional dataflow model.*multidimensional dataflow models* - A study of
, which is the tradeoff between rate-distortion performance in a compression system and computational complexity in a model of computation.*Complexity Distortion Theory*Information theory (Shannon) <----> Computing theory (Turing)

This is where information theory meets the theory of computing. More Information.

These project ideas are taken from Prof. Edward A. Lee's guidelines for
projects in his Spring 1996
*Specification
and Modeling of Reactive Real-Time Systems*
course at the University of California at Berkeley:

- A mathematical comparison of the metric space approach used for discrete-event systems and the partial-order approach used for process networks (see Matthews and Smyth in the reference list). Requires familiarity with topology.
- An implementation of a Kahn process networks and/or dataflow
model of computation in Java.

*Update*: Process Networks has been implemented in Ptolemy II, which is in Java. You might download Ptolemy II from the Ptolemy Project and evaluate the efficiency of the implementation. Perhaps you can improve the implementation.

There is also a standalone C++ version of a subset of the Process Networks model at http://www.ece.utexas.edu/~allen/PNSourceCode/. - An implementation of a concurrent finite-state machine model
of computation in Java.

*More resources*: There are many types of concurrent finite state machine models.- Statecharts. There are more than 21 valid interpretations of
Statecharts. One interpretation has been implemented
as Stateflow, which is a Matlab add-on
(http://www.mathworks.com).
The key reference follows. You could look up the reference
in Scientific Citation Index, which is available in the UT College
of Engineering of Library, to find the papers which have
referenced it over the years.

- D. Harel, "Statecharts: A visual formalism for complex systems,"
*Science of Computer Programming*, vol. 8, 1997.

- D. Harel, "Statecharts: A visual formalism for complex systems,"
- SpecCharts.

- D. D. Gajski, F. Vahid, and S. Narayan, "SpecCharts: A VHDL front-end for embedded systems," UC Irvine, Dept. of ICS, Technical Report 93-31, 1993.
- D. D. Gajski, F. Vahid, and S. Narayan, "A system-design
methodology: Execution-specification refinement,"
*Prof. IEEE European Conf. on Design Automation*, 1994.

- Statecharts. There are more than 21 valid interpretations of
Statecharts. One interpretation has been implemented
as Stateflow, which is a Matlab add-on
(http://www.mathworks.com).
The key reference follows. You could look up the reference
in Scientific Citation Index, which is available in the UT College
of Engineering of Library, to find the papers which have
referenced it over the years.
- A comparative study of time in discrete-event models. Delta-time, fixed-points, causality analysis. Compare efficiency of implementation, modularity, and anomalies.
- A study of nondeterminacy in rendezvous-based concurrent models (like that in Ada, Logos, Occam, CSP, and CCS).
- A critical and comparative evaluation of the concurrency models in Ada, Java, Lotos, and/or other concurrent languages.
- The role of nondeterminacy in system specification and verification. Describing classes of behaviors, design refinement, etc.
- A comparative study of asynchronous dataflow models and dataflow-oriented synchronous languages (Lustre, Signal).
- An implementation of Kahn's concrete data structures model (in Ptolemy, for example).
- Design of visualization techniques for concurrent models.
- Design study that compares two different modeling techniques (such as dataflow and synchronous languages, or dataflow and discrete-event) on an "interesting" problem (a signal processing problem, a control-intensive problem, or a standard benchmark).
- An evaluation of real-time computation using Posix threads (for example, in the Solaris O/S).

Last updated 02/09/04.