Final Report on
Design of a Web-based Interactive
User-Interface for the Texas Instruments TMS320C30 Simulator (WETICS)
Dogu Arifler
EE464H Senior Honors Design Project
The University of Texas at Austin
May 1, 1997
Supervising Professor:
Dr. Brian L. Evans
Abstract
The Web-based interactive user-interface for the TI TMS320C30 simulator
enables the users to work with the Texas Instruments TMS320C30 (C30) Digital
Signal Processor simulator interactively. The programming language used in
implementing the project was the Java programming language. The project
consisted of several parts: applets and a server. The applets developed
provided an easy-to-use graphical user-interface to the C30 simulator. By using
a server, I provided a way to enable communication between the C30 simulator
and the graphical user-interface. I successfully completed and tested the
project on various platforms, such as Windows 95, Windows 3.1, and X Windows.
The user-interface I designed for the C30 simulator was the first Web-based
tool for such a digital signal processor.
Introduction
In the Web-Enabled Texas Instruments C30 Simulator (WETICS) Project [1], I
designed and developed an easy-to-use graphical user-interface (GUI) that
enables the users to work with the Texas Instruments TMS320C30 (C30) Digital
Signal Processor simulator interactively. My software is a Web-based tool and
can be easily accessed by users running a Java-enabled Web-browser (such as
Netscape 2.0 or higher) in UNIX (X Windows), Windows, and Macintosh platforms.
By having access to an interactive user-interface to the TMS320C30 simulator on
the Web, users will not need a physical board to test their designs. System
designers will be able to evaluate the C30 processor without having to purchase
it.
Layering the Design
My first design strategy in the project was to use layering, a common
approach to solve problems in complex systems. The layering strategy used in
the design stages of the WETICS Project is shown in Figure 1. The C30 simulator
(Layer 1) was written by Chris M. Moy and Dr. Brian L. Evans in Fall 1996 [2].
The higher layers of the system provided the functionality to communicate
with the lower layers. Users made interaction with Layer 4 and Layer 3, which
constituted the graphical user-interface of the system. Layer 2 established the
communication between the user-interface and the C30 simulator. All user
commands given in the form of menu selections and button clicks went to the
server which passed those commands to the C30 simulator.
Figure 1. Layering strategy used in the WETICS Project.
Designing the Interface
I implemented the graphical user-interface for C30 simulator using the Java
programming language. Java is currently the most suitable graphical
user-interface and Internet applications development language because of its
portability on all commonly used PCs and workstations.
Throughout the development of my software, I used object-oriented methods to
design custom user-interface components, such as menus, buttons, and dialog
boxes. I also used the Graphic Java Toolkit provided by the Sunsoft Press [3].
The Graphic Java Toolkit is a set of libraries that extend the Java Abstract
Window Toolkit (AWT). The Graphic Java Toolkit makes graphical user-interface
design simple by providing a lot of custom components. The GUI has the
capability to adapt itself to changes in the command set of the simulator.
Using a Server To Get Around Security Restrictions of Java
Dr. Brian Evans and I spent most of our time on designing a server to
handle the communication between the user-interface and the C30 simulator. The
C30 simulator was a UNIX program written in the C programming language. We had
to give the C30 simulator network access so that it could be used via a Web
browser.
The C30 simulator could not be accessed directly by an applet residing in a Web
page. Java enforces a lot of security restrictions in applets. For example,
applets cannot run a program residing on a remote machine. Therefore, I had to
design a server that would run continuously on our host computer. The server
would start the C30 simulator as a child process (a process that is initiated
by an already running process). Since Java applets are able to make network
connections to servers that are located on the same machine as applets, the
server I designed successfully accepted requests from the user-interface and
directed them to the C30 simulator. Similarly, the server was able to return
responses from the simulator to the user-interface.
In the final stages of the project, I also included a capability to the server
that enabled users to download a C30 program into the simulator running on our
host computer. Accessing a remote file from an applet is not possible because
of the security restrictions of Java. However, my design of file transfer
feature involved using the server to receive the file. Since the server was
designed as an application (not as an applet), I did not encounter any security
restrictions.
Completing and Testing the Design
My supervising professor Dr. Brian Evans made significant contributions to the
readability and maintainability of the code by revising the programs. A
prototype of the project was demonstrated by Brian Evans at the University of
California at Berkeley in March 1997 [4].
The user-interface was tested extensively for robustness and reliability.
Although I used Windows 95 and X Windows platforms to develop my software, I
also tested the program on Windows 3.1 and Macintosh platforms. The program ran
successfully on every platform I used. The user-interface was able to download
a C30 program and enable users to step through the instructions in the program.
The register set of the C30 processor was displayed correctly. In addition, the
interface was able to display error messages sent by the simulator.
Conclusion
The WETICS Project was a tremendous success. All of the project
specifications were met. Dr. Brian Evans and I will release the code for the
applets and the server under the terms of the GNU General Public License as
published by the Free Software Foundation (either version 2 of the License or
any later version).
The Web-based graphical user-interface for C30 simulator is the first Web-based
GUI for digital signal processor (DSP) simulators. The user-interface and the
server are designed in a flexible way so that they can be easily used with
other DSP simulators.
The project is open to future development. For example, the user-interface can
be accessed by only one user at the same time. The programs can be revised so
that multiple users can access the user-interface at the same time. In
addition, the ability of the user-interface to configure itself to work with
other DSP simulators should be improved.
References
[1] "The WETICS Project", Apr. 24, 1997.
[2] Chris M. Moy, "Completion report on my Texas Instruments TMS320C30
simulator," The University of Texas at Austin, Department of Electrical
and Computer Engineering, EE 464H Final Report, Dec. 5, 1996.
[3] D. M. Geary and A. L. McClellan, Graphic Java: Mastering the AWT,
SunSoft Press, A Prentice Hall Title, ISBN 0-13-565847-0, 1997.
[4] "Web-Based Simulators of Embedded Software for Programmable Digital Signal
Processors,"
http://www.ece.utexas.edu/~bevans/talks/WebSimulatorTools/,
Mar. 24, 1997.