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 PostScript.
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 question
3.5.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 a disassembler for the Motorola DSP56000?
-
Miloslaw Smyk has released an open source (BSD style) 5600x disassembly
library. It is available for download at ftp://amiga.com.pl/pub/delfina/lib5600x_disasm.tar.gz.
[Miloslaw Smyk, thorgal@amiga.com.pl]
Q3.5.4: 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.5: 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.6: 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:
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 free development tools for TI DSPs?
-
TI development tools are available for free 30 day evaluation on the TI
website. Go to http://www.ti.com/sc/docs/tools/index.htm.
Q3.6.3: 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.4: 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.5: 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.6: 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)