Web-Based Simulators for Digital Signal Processors
and Microcontrollers
This project is directed by
Prof. Brian Evans.
- Goals
- Develop a configurable, extensible Web-based framework for
simulating software using instruction set architecture
simulators and processor boards.
- Develop portable instruction set architecture simulators and
board-level tools for digital signal processors (DSPs) and
microcontrollers and integrate them into the framework.
- Release the source code for the framework on the Internet
on a regular basis.
- Status
- Five prototypes developed and released so far.
- The most recent prototype contains simulators for the
Texas Instruments TMS320C30 digital signal processor,
Motorola MC68HC11 microcontroller, and the
Motorola MC56811 digital signal processor, as well as
an interface to a Motorola MC56LC811 DSP board.
- Web-enabled
Simulation framework.
- Impact:
- cosimulation of complex system designs: a design may contain
many different DSP processors cooperating with other embedded
processors and special-purpose hardware devices
(ASICs, FPGAs, etc.)
- architectural tradeoffs in a system design: with more simulators
available, a system designer can decide which combination of TI DSP
processors delivers enough performance for a given economic cost
- Web-based tools: users would no longer require an interface to a
physical board so many more people can access embedded processor
technology on the Web
- Requirements: knowledge of
- What you will learn: DSP architectures,
programming in C++ and/or Java, and
software development tools
in Unix such as makefiles, debuggers, source code control, and Purify
- Possible awards: projects completed this academic year
may be entered into the following contests:
- Resources:
- Presentations:
- Java:
FAQ -
Javasoft
- Related newsgroups on simulation and emulation:
comp.simulation -
comp.emulators.announce
- TMS320C30
- TMS320C50
- Motorola
56000 DSP tools:
pre-compiled simulator engine libraries and source code for
the user interfaces are available from Marketing on a CD ROM
- MC68HC11
simulators
- NMSU simulator engine, March 1994,
by Ted Dunning:
written in C, source code included, Unix version
- Sim6811 version 1.3, October 1996,
by
Tomaso Paoletti:
written in C, source code included, Mac version,
based on NMSU kernel
- EM11, February 1997,
by
Bambang Sutanto:
written in Turbo Pascal and Turbo Assembler, no source code,
PC MSDOS version
- sim68 version 2.2S, December 1994,
by
Perry Fisch:
no source code, PC version
- Simulator version 1.024, May 1997,
by David Jones:
written in Visual Basic, no source code, Windows 3.1/95/NT version
(Alternate Site)
- MC68HC11 resources from
Russ
Hersch -
Roger Schaefer -
Bob Boy
- References:
- "Pocket guide to popular DSP processors and cores,"
Berkeley Design Technology, Inc., Freemont, CA, 1997.
http://www.bdti.com/pocket/dsp.
- "Web-Based Electronic Design (WELD) Project,"
http://www-cad.eecs.berkeley.edu/Respep/Research/weld/,
Directed by Richard A. Newton, Dept. of Electrical Eng.
and Comp. Sciences, University of California, Berkeley,
CA, 94720.
- K. L. Hansen, I. A. MacLeod, D. R. McGregor, and I. M.
Tulloch, "Briefmaker: a design briefing tool developed
on the internet," Proc. Int. Conf. on Information
Technology in Civil and Structural Engineering Design,
Glasgow, UK, pp. 69-73, Aug. 1996.
- C. S. Smith and P. K. Wright, "Cybercut: a World Wide
Web based design-to-fabrication tool," Journal of
Manufacturing Systems, vol. 15, no. 6, pp. 432-442, 1996.
- K. Wimmer, M. Noell, W. J. Taylor, and M. Orlowski,
"A data-model for a technology and simulation archive,"
Proc. Int. Conf. on Simulation of Semiconductor Devices,
Austin, Texas, pp. 54-57, Sep. 1995.
- Y.-L. Lin, "Computing brokerage and its application in
VLSI design," Proc. Asia and South Pacific Design
Automation Conf., Chiba, Japan, pp. 65-69, Jan. 1997.
- L. T. Walczowski, W. A. J. Waller, and D. Nalbantis,
"VLSI design training with the help of the World Wide Web,"
Proc. IEE Colloquium on Learning at a Distance: Developments
in Media Technologies, London, UK, June 1996.
- L. Benini and A. B. G. D. Micheli, "Distributed EDA tool
integration: the PPP paradigm," Proc. IEEE Int. Conf. on
Computer Design, Austin, Texas, pp. 448--53, Oct. 1996.
- D. D. Gajski, F. Vahid, S. Narayan, and J. Gong,
Specification and Design of Embedded Systems,
Englewood Cliffs, NJ: Prentice-Hall, Inc., 1994.
- Texas Instruments, Inc., Dallas, Texas, TMS320C3x
User's Guide, 1994.
- P. Lapsley, J. Bier, A. Shoham, and E. A. Lee, DSP
Processor Fundamentals: Architectures and Features,
Fremont, CA: Berkeley Design Technology, Inc., 1996.
- D. Flanagan, Java in a Nutshell, O'Reilly and
Associates, 1996.
- D. Comer, Internetworking with TCP/IP, Englewood
Cliffs, NJ: Prentice-Hall, Inc., 1995.
- D. Geary and A. McClellan, Graphic Java,
Englewood Cliffs, NJ: Prentice-Hall, Inc., 1997.
- Undergraduate Projects:
- Project #1 (Chris Moy, Fall 96; Chi Duong, Summer and Fall 1997):
Build a fast instruction set architecture simulator for the
floating-point TMS320C30 processor based on the
disassembler written by Texas Instruments for
their C30 Digital Signal Processor Starter Kit
- Project #2 (Dogu Arifler, Spring and Fall 1997):
Write a Java server and configurable
Java applet user interface for the C30 instruction set
architecture simulator.
We call this framework the
Web-Enabled
Simulation environment.
- Project #3 (Saleem Marwat, Summer 1997):
Build a Web-based simulator for the Motorola MC68HC11
microcontroller based on a freely distributable simulators.
- Project #4 (Anna Yuan, Fall 1997):
Build a Web-based interface to
an MC56L811EVM DSP Evaluation Module and
an MC56L811 DSP instruction set architecture simulator.
Proposal
- Project #5 (Ha Nguyen and Han Nguyen, Fall 1997):
Build a fast disassembler for the
TMS320C20 and TMS320C50 fixed-point DSP processors
based on the source code for the disassembler written for
the C20 and C30 DSKs by Keith Larson.
The C50 is a derivative of the C20.
The freely distributable source code for the C30 disassembler
serves as a good starting point.
Each disassembler can be tested by generating random opcodes,
disassembling them, assemblying the results using a validated
assembler, and comparing the assembled opcodes to the original
opcodes.
- Project #6 (Kong Susanto and Eshan Khan, Spring 1998):
Build command line interfaces to tools
for the TMS320C30 DSP Starter Kit (DSK) to put the board online
- Project #7 (OPEN): Build an instruction set architecture simulator
for the fixed-point TMS320C20 DSP processor based on the
disassembler in Project #5.
- Project #8 (OPEN): Build an instruction set architecture simulator
for the fixed-point TMS320C50 DSP processor based on the
disassembler in Project #5.
- Project #9
(Tim Kao and
Kurt Nee,
Fall 1998):
Build a Web-based instruction set architecture simulator and
board-level debugger for the Motorola fixed-point 56300
digital signal processors based on the
freely distributable tools.
This requires modifying the user interface source code
already provided by Motorola and follows the same path
as Project #4.
- Project #10 (Ben Nguyen, Fall 1998):
Build a Web-based instruction set architecture simulators and
board-level debuggers for the Motorola fixed-point
56000 and 56100 digital signal processors.
This requires modifying the user interface source code
already provided by Motorola and follows the same path
as Project #4.
- Graduate Projects:
- Project #1 (OPEN):
Extend the simulators to return power estimates.
- Project #2 (OPEN): Write a binary-to-binary translator that
converts assembled C30 programs into binary executable
programs on Unix workstations for ultra-fast simulation
- Project #3 (OPEN): Write a binary-to-binary translator that
converts assembled C50 programs into binary executable
programs on Unix workstations for ultra-fast simulation
- Project #4 (Juan Rubio and Wade Schwartzkopf, Spring 1998;
Daniel Chan and Peter Ka Lee, Summer 1999):
Write a binary-to-binary translator that
converts C50 code to C54 code.
Texas
Instrument's C50-C54 Translator
- Project #5 (OPEN):
Write a binary-to-binary translator that
converts C50 code to C203 code
- Project #6 (OPEN): Add the Web-Enabled Simulation (WEDS)
framework to the Web-Enabled Electronic Design (WELD)
framework at UC Berkeley for distributed cosimulation
of heterogeneous hardware/software implementations.
Updated 05/18/00.