|
Previous
section (2) Next section (4)
Q3:
Programmable DSP chips and their software
Q3.1:
What are the available DSP chips and chip architectures?
Updated
9/24/98
- The
"big four" programmable DSP chip manufacturers are Texas
Instruments, with the TMS320 series of chips; Motorola, with the
DSP56000, DSP56100, DSP56300, DSP56600, and DSP96000 series; Lucent
Technologies (formerly AT&T), with the DSP1600 and DSP3200 series;
and Analog Devices, with the ADSP2100 and ADSP21000 series. A good
overview of programmable DSP chips is published periodically in EDN
and Computer Design magazines.
You
may also want to check out Berkeley
Design Technology's home page, which has a number of articles on
choosing DSP processors, as well as a "Pocket
Guide to DSP Processors and Cores" in downloadable PDF. Brief overviews of various DSP processors, cores, and
general-purpose processors can be found at http://www.bdti.com/procsum/index.htm.
Here's
a less ambitious chip breakdown by manufacturer:
Analog
Devices:
ADSP-21xx:
10
to 50 MIPS 16-bit fixed point DSPs; 40-bit accumulator; 24-bit
instructions. Large number of family members with different
configurations of on-chip memory and serial ports, timers, and host
ports. ADSP-21mspxx members include an on-chip Codec.
ADSP-21020:
20/25/33
MHz floating-point DSP; Supports 32-bit fixed-point, IEEE format 32-bit
floating-point, and 40-bit floating-point; 40-bit registers plus an
80-bit accumulator that can be divided into two 32-bit registers and a
16-bit register.
ADSP-2106x
("SHARC"):
40
MIPS, 32-bit floating-point DSPs based on ADSP-21020. 32-bit address
bus, 32-bit data bus; 1-4 Mbits on-chip memory; six communication ports,
timer, two serial ports.
Lucent
Technologies (formerly AT&T Microelectronics):
DSP16xx:
Up
to 120 MIPS 16-bit fixed-point DSPs. 16-bit address bus; 36-bit
accumulators. Serial ports, parallel port; timer, bit manipulation unit.
Various memory configurations.
DSP16xxx:
100
MIPS 16-bit fixed-point DSP. 20-bit address bus; eight 40-bit
accumulators. Two multipliers and SIMD-like capabilities. Serial ports,
parallel port; timer, bit manipulation unit. Various memory
configurations.
DSP32C,
DSP32xx:
32-bit
floating point with 40-bits accumulator and 16/24-bit fixed point. The
32C has three 512 x 32-bit RAMs, while the 3210 has two 1k x 32-bit RAMs
and a 256x32-bit boot ROM. 32C: Serial and parallel I/O, 3210: Serial
I/O, timer, DMA-controller. 3210 available at 50 and 66MHz. Note:
DSP3210 and DSP3207 are discontinued and no longer available.
Motorola:
DSP560xx:
20.5/27/33/40
MHz 24-bit fixed point DSP. 24-bit data bus, 16 bit address bus, 56 bit
accumulators (2), host interface port, serial ports (2), general purpose
I/O pins, timer.
DSP561xx:
40,
50, or 60 MHz 16-bit fixed-point DSP; 16-bit data bus, 40 bit
accumulators (2), host interface port, serial ports (2), timer, Codec.
2K words program RAM, 2K words data RAM on chip.
DSP563xx:
66/80/100
MHz 24-bit fixed-point DSP; 24-bit address bus; 56-bit accumulators (2),
timers, serial interface, host interface port. Various memory
configurations.
DSP566xx:
60
MHz 16-bit fixed point DSP aimed at low-power applications; 40-bit
accumulators (2), timer, serial interface, host interface port.
DSP568xx:
20
MIPS 16-bit fixed point DSP; 36-bit accumulators (2), three internal
address buses (two 16-bit, one 19-bit) and one 16-bit external address
bus; three 16-bit internal data buses, one 16-bit external data bus;
serial ports, timers.
DSP96002:
IEEE
format floating point DSP; two complete 32-bit data and address buses.
1K words program RAM, 64 words bootstrap ROM, 1K words data RAM, 1K
words data ROM, host interface ports (2). Available in 33 MHz or 40 MHz.
Texas
Instruments:
TMS320C1x:
Family
of low cost fixed-point DSPs; 16 bit data, 32 bit registers; Various RAM
and ROM configurations; 16 bit I/O bus, serial ports.
TMS320C2x:
50
MHz fixed-point DSPs; 16 bit data, 32 bit registers; 12.5 MIPS @ 50 MHz.
The family members have different RAM and ROM configurations.
TMS320C2xx:
A
cross between the TMS320C2x and the TMS320C5x families. Same data path
as the 'C2x, but pipeline of 'C5x; 16-bit data, 32-bit registers;
20/28/40 MIPS; serial ports. The TMS320C24x are aimed at motor control
solutions.
TMS320C3x:
27/33/40
MHz floating point DSPs; 32-bit floating-point, 24-bit fixed-point data,
40-bit registers; DMA controller; serial ports; some support for
multi-processor arrays. Various ROM and RAM configurations.
TMS320C4x:
40/50
MHz floating-point DSP; extensive parallel processing support through 6
buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.
TMS320C5x:
50-MIPS
enhanced TMS320C25 (double throughput); low overhead looping; 10 Kwords
SRAM on chip.
TMS320C54x:
Up
to 100 MIPS 16-bit fixed-point DSPs with a large number of specialized
instructions. Family members differ in configuration of on-chip ROM/RAM
and serial ports, autobuffered serial ports, host ports, and
time-division multiplexed ports.
TMS320C62xx:
200
MHz 16-bit fixed-point DSP with VLIW (very large instruction word), load/store
architecture; 32 32-bit registers; very deep pipeline; two multipliers,
ALUs, and shifters; cache.
TMS320C67xx:
167
MHz 32-bit and 64-bit IEEE-754 floating-point DSP with VLIW (very large
instruction word), load/store architecture; 32 32-bit registers; very
deep pipeline; two multipliers, ALUs, and shifters; cache.
TMS320C8x:
Four
(two on 'C82) 50 MHz 32-bit fixed-point processors combined with a RISC
supervisory processor in a single multichip module. 'C80 includes a
video controller.
Q3.2:
What is the difference between a DSP and a microprocessor?
Updated
9/24/98
- The
essential difference between a DSP and a microprocessor is that a DSP
processor has features designed to support high-performance,
repetitive, numerically intensive tasks. In contrast, general-purpose
processors or microcontrollers (GPPs/MCUs for short) are either not
specialized for a specific kind of applications (in the case of
general-purpose processors), or they are designed for control-oriented
applications (in the case of microcontrollers). Features that
accelerate performance in DSP applications include:
- Single-cycle
multiply-accumulate capability; some high-performance DSPs have
two multipliers that enable two multiply-accumulate operations per
instruction cycle
- Specialized
addressing modes, for example, pre- and post-modification of
address pointers, circular addressing, and bit-reversed addressing
- Most
DSPs provide various configurations of on-chip memory and
peripherals tailored for DSP applications. DSPs generally feature
multiple-access memory architectures that enable DSPs to complete
several accesses to memory in a single instruction cycle
- Specialized
execution control. Usually, DSP processors provide a loop
instruction that allows tight loops to be repeated without
spending any instruction cycles for updating and testing the loop
counter or for jumping back to the top of the loop
- DSP
processors are known for their irregular instruction sets, which
generally allow several operations to be encoded in a single
instructon. For example, a processor that uses 32-bit instructions
may encode two additions, two multiplications, and four 16-bit
data moves into a single instruction. In general, DSP processor
instruction sets allow a data move to be performed in parallel
with an arithmetic operation. GPPs/MCUs, in contrast, usually
specify a single operation per instruction
While
the above differences traditionally distinguish DSPs from GPPs/MCUs,
in practise it is not important what kind of processor you choose.
What is really important is to choose the processor that is best
suited for your application; if a GPP/MCU is better suited for your
DSP application than a DSP processor, the processor of choice is the
GPP/MCU. It is also worth noting that the difference between DSPs and
GPPs/MCUs is fading: many GPPs/MCUs now include DSP features, and DSPs
are increasingly adding microcontroller features.
[Ole
Wolf, wolf@bdti.com]
Q3.3:
Software for Analog Devices DSPs
Updated
8/16/99
Q3.3.1:
Where can I get an assembler for the ADSP-2105?
John
Sture has developed an assembler for the Analog Devices ADSP-2105. The
latest version can be obtained by sending email to jsture@vcn.bc.ca. The
executable and manual will be returned in uuencoded format. Requires
Analog Devices' ld21.exe version 5.1 linker or equivalent for linking
executables. Source code to the assembler is available under the terms
of the GNU public license, from the same address.
[John
Sture, jsture@vcn.bc.ca]
Q3.3.2:
Where can I get algorithms or libraries for Analog Devices DSPs?
- The
number for the Analog Devices DSP BBS is (617) 461-4258 (300, 1200,
2400, 9600, 14400 bps), 8N1.
You
can also find files on Analog
Devices' web site, or at their FTP site at ftp://ftp.analog.com.
[Analog
Devices DSP Applications, dsp_applications@analog.com]
Lots
of Analog Devices, Inc. DSP software is available in their application
books like Digital Signal Processing Applications Using the
ADSP-2100 Family. These books are not free, but they're not
expensive either. There are some major applications like modems, LPC,
GSM codec, speech recognition, etc.
[George
Biner, GBiner@bellind.com]
Q3.4:
Software for Lucent Technologies (Formerly AT&T) DSPs
- Lucent
Technologies provides application libraries for their DSPs at
http://www.lucent.com/micro/wam/tse/.
Q3.5:
Software for Motorola DSPs
- Motorola
provides free software development tools that may be downloaded from
the Motorola Web site at
http://www.mot.com/SPS/DSP/software/.
Q3.5.1:
Where can I get a free assembler for the Motorola DSP56000?
A
free assembler for the Motorola DSP56000 exists, thanks to Quinn
Jensen, jensenq@zdomain.com. The current version is 1.2. It is also
available at ftp://ftp.zdomain.com/pub/jensenq/a56
and http://www.zdomain.com/~jensenq/a56.html.
Q3.5.2:
Where can I get a free C compiler for the Motorola DSP56000?
- There
are two separate compiler sources for the Motorola DSP56000. One is
the port of gcc 1.40 done by Andrew Sterian (asterian@umich.edu) and
the other is a port of gcc 1.37.1 done by Motorola and returned to the
FSF. Andrew's port has bowed to Motorola's version. Both may be
portable to gcc2.x.x with some effort required. Neither of these comes
with an assembler, but you can get a free DSP56000 assembler elsewhere
(see Q3.2.1 above). The Motorola gcc source is available for FTP from:
ftp://nic.funet.fi/pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z
and ftp://mirriwinni.cse.rmit.edu.au/pub/uP/56k/g56k.tar.gz-1996.
From
Andrew Sterian, asterian@umich.edu: "My DSP56K compiler, while not
supported nor as well tested as Motorola's, implements fixed-point
arithmetic rather than floating-point arithmetic. This may be suitable
for some applications. The 5615 compiler also implements fixed-point
arithmetic. To the best of my knowledge, Motorola does not have a C
compiler for the 5615 family, although alternatives may exist. As of
this writing (January 1997) I have not worked woth Motorola DSPs or
compiler software for nearly 5 years so questions regarding my compilers
may well be met with "Ummm... I have no idea."
Both
compilers were posted to alt.sources so any Usenet site that archives
this newsgroup will have a copy. I have also found the 5616 compiler at ftp://ftp.funet.fi/pub/ham/dsp/dsp56k-tools/gcc5616.tar.Z.
Q3.5.3:
Where can I get algorithms and libraries for Motorola DSPs?
- Motorola
provides a software archive that is available via World-Wide Web from
the software page at
http://www.mot.com/SPS/DSP/software/.
The archive includes macros for filters (FIR, IIR, adaptive) and
floating-point functions. [Tim Baggett]
Q3.5.4:
Where can I get NeXT-compatible Motorola DSP56001 code?
- Try
FTP at ccrma-ftp.Stanford.EDU. The /pub/ directory contains free code
for the Motorola DSP56001 and the NeXT platform. [bil@ccrma.Stanford.EDU]
Q3.5.5:
Where can I get emulators for the 68HC11 (6811) processor?
- While
the 68HC11 is not a DSP processor, emulators are available for those
who might be interested in doing DSP on these processors:
- New
Mexico State University (NMSU) simulator engine,
ftp://crl.nmsu.edu/pub/non-lexical/6811/
(Unix). Simulator engine with a command-line interface.
Sim6811,
ftp://cherupakha.media.mit.edu/pub/projects/6811/sim6811/
(Mac). Screen-oriented user interface based on the NMSU simulator
engine (plus bug fixes).
EM11,
http://www.geocities.com/SiliconValley/Heights/8543/
(MS-DOS). Simulator and source-level debugger.
sim6811,
http://freeware.aus.sps.mot.com/freeweb/pub/ibm/sim68vs.zip
(MS Windows 3.1/95). Simulator and source-level debugger.
Windows-Based
Simulator, http://copperhead.cse.rmit.edu.au/micro/Simulator/
(MS Windows 3.1/95/NT). Screen-oriented user interface, can
interface emulator to external hardware.
Q3.6:
Software for Texas Instruments DSPs
Updated
9/13/99
- Spectron
provides a downloadable program called WinConnex, which provides
windows connectivity to the TI TMS320C31 DSK. It's available from
Spectron's Web site at
http://www.spectron.com/.
Look under the "products" menu.
Q3.6.1:
Where can I get free algorithms or libraries for TI DSPs?
nic.funet.fi
has some old, apparently public domain, assembler and related tools
from TI for the TMS320 family. The directory is /pub/ham/dsp.
[Antti-Pekka
Virtanen, antsu@utu.fi]
For
the TMS320C54x and TMS320C6x, try http://www.ti.com/sc/docs/dsps/tools/c54x/softsupp.htm
and http://www.ti.com/sc/docs/dsps/products/c6x/benchmk.htm,
respectively.
TI's
world-wide web site is http://www.ti.com.
The TI DSP bulletin board is mirrored on ftp.ti.com,
and on mirriwinni.cse.rmit.edu.au.
The TI site is the official one, but has no user contributed software.
The file: ftp://mirriwinni.cse.rmit.edu.au/mirrors/tibbs/00readme
(might be broken) provides further guidance. Please restrict FTP session
to outside of 8 am to 6 pm local time (10 pm to 8 am GMT). [Brad Hards,
bradh@gil.com.au]
{
If anyone knows of any other sources for TI DSP software, please let us
know at comp-dsp-faq@bdti.com.
Thanks! }
Q3.6.2:
Where can I get a free C compiler for the TI TMS320C3x/4x?
- Dr.
Michael P. Hayes has written a GNU C-based compiler for the TMS320C30
and TMS320C40 families, available at
http://www.elec.canterbury.ac.nz.
The current version patches against gcc-2.8.1; support is moving to
egcs-1.2. The compiler is freely redistributable under the terms of the
GNU Public Licence. Front-ends are also available for C++, Java, Fortran
77, Pascal, Ada 95, among others.
[Dr.
Michael P. Hayes, m.hayes@elec.canterbury.ac.nz]
Q3.6.3:
Where can I get a free assembler for the TI TMS320C3x/4x?
- Ted
Rossin has written an assembler and linker for the TMS320C30. In his
words, "It is somewhat limited by the fact that it can't handle
expressions but it has worked fine for me over the past few years.
There is no manual because it is a clone of the TI assembler and
linker. However the linker command files use a different (easier to
use) syntax. It runs on HP-UX workstations, Macs, IBM clones and
believe it or not the Atari-ST (because I developed the code on it)."
[Ted
Rossin, rossin@fc.hp.com]
Dr.
Michael P. Hayes has written a GNU-based assembler for the TMS320C30
and TMS320C40 families, available at http://www.elec.canterbury.ac.nz.
The current version patches against binutils-2.7. According to Michael
Hayes, the assembler syntax is compatible with the Texas Instruments
TMS320C30 assembler, although not all the Texas Instruments directives
are supported. The binutils include a linker (ld), archiver (ar),
disassembler (objdump), and other miscellaneous utilities. The object
format of the assembler is compatible with the COFF format used by the
Texas Instruments assembler. The assembler and other binary utilities
are freely redistributable under the terms of the GNU Public Licence.
[Dr.
Michael P. Hayes, m.hayes@elec.canterbury.ac.nz]
Q3.6.4:
Where can I get a free simulator for the TI TMS320C3x/4x?
- A
freely distributable instruction set architecture simulator is
available for the TMS320C30 DSP as part of the Web-Enabled Simulation
framework from UT Austin at
http://anchovy.ece.utexas.edu/~arifler/wetics/.
We
have released all of the source code, as well as prebuilt C30 simulators
for Windows '95/NT and Solaris 2.5 architectures.
The
C30 simulator is bit-, cycle-, and instruction-accurate. The behavior of
the C30 simulator has been validated against a C30 DSK board. The C30
simulator correctly reports interlocking and pipeline flushes, so it
provides a convenient way to check C30 programs for these hidden delays.
The C30 simulator is based on the C30 DSK tools by Keith Larson at Texas
Instruments.
[Brian
Evans, bevans@combo.ece.utexas.edu]
Herman
Ten Brugge (haj.ten.brugge@net.hcc.nl) has also written a GNU debugger (GDB)
based simulator for the TMS320C30 and TMS320C40, available via anonymous
FTP at http://www.elec.canterbury.ac.nz/c4x.
This is freely redistributable under the terms of the GNU Public Licence.
This
simulator allows you to debug your programs without having to a connect
to a real C[34]x target system. It will also profile your code showing
you where the pipeline conflicts are occuring. You can connect I/O ports
to files (or TCP/IP sockets), trigger interrupts, examine the cache etc.
It will detect different threads of control running and generate a
profile summary for each thread, annotating both the C code and
assembler code with the number of executed cycles.
[Dr.
Michael P. Hayes, m.hayes@elec.canterbury.ac.nz]
Q3.6.5:
What is Tick? Where can I get it?
- Tick
is a TMS320C40 parallel network detection and loader utility.
It
is available from: ftp://mirriwinni.cse.rmit.edu.au/mirrors/tibbs/UserContributed.
Supports:
Transtech, Hunt, and Traquair boards hosted by DOS, SunOS, Linux (a PC
unix)
Previous
section (2) Next section (4) |