EE382C Embedded Software Systems - Projects
FAQ:
objective -
guidelines -
some ideas -
more ideas -
reports -
slides
Projects:
Spring 2004 -
Spring 2002 -
Spring 2000 -
Fall 1999 -
Spring 1999 -
Spring 1998 -
Spring 1997
The primary outcome of this course will be a project, which will
count for half of the final grade.
The focus of your project should be modeling of a system design
that can be mapped onto embedded processors or systems,
or an implementation on embedded processors or an embedded system.
The field of embedded systems is quite broad.
Embedded systems may be as small as a hearing aid (4-MIP DSP; 64 kbytes)
or as large as a racked-mounted 16-processor UltraSparc workstation
(16 GFLOPS; 2 GBytes).
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
These guidelines are taken from Prof. Edward A. Lee's guidelines for
projects in his
Specification
and Modeling of Reactive Real-Time Systems
course at the University of California at Berkeley:
- 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.
Projects based on applications are listed below.
- 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 real-time touchtone detection
(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.
- A study of MPEG-4 and H.263 video processing standards for
wireless video communications, 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
- TMS320C6000 Assembly Language Tools (SPRU 186E)
- TMS320C6000 Optimizing C Compiler User's Guide (SPRU 187E)
- TMS320C62x/X67x Programmer's Guide (SPRU 198B)
The SPRU numbers are as of Summer of 1999. Newer editions
of these manuals may be available.
- A study of digital subscriber line (xDSL) modems 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.
- Complexity analysis and modeling of a
multimedia standard such as MPEG4.
This is definitely a group effort.
Overview of MPEG Video Coding Standards
- Configurable computing on a chip for wireless
communications.
More information.
Project involving the development of CAD tools are listed below.
- 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 power consumption 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.
- A study and implementation of ultrafast simulators
of DSP processors or microcontrollers using binary-to-binary
translation.
More information
- A study and implementation of Web-based distributed
cosimulation of heterogeneous hardware/software
implementations.
More information
- A study of compilation techniques and architecture of very-long
instruction word (VLIW) processors 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
- A study of hardware/software codesign 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
- Design methodologies for systems-on-a-chip, e.g.
reuse of intellectual property cores.
Projects with heavy theoretical content are listed below.
Another source of ideas are the past
Ptolemy
Miniconferences.
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.
- 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.
- 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.