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.