■ Optimized for digital cellular applications with a bit
manipulation unit for higher coding efficiency.
■ On-chip, programmab le, PLL clo ck syn thes iz er.
■ 10 ns and 16.7 ns instruction cycle times at 3.0 V, and
19.2 ns and 12.5 ns instruction cycle times at 2.7 V,
respectively.
■ Mask-programmable memory map option: The
DSP1629x16 features 16 Kwords on-chip dual-port
RAM. The DSP1629x10 features 10 Kwords on-chip
dual-port RAM. Both feature 48 Kwords on-chip ROM
with a secure option.
■ Low power consumption:
— <1.9 mW/MIPS typical at 2.7 V.
■ Flexible power management modes:
—Standard sleep: 0.2 mW/MIPS at 2.7 V.
—Sleep with slow internal clock: 0.7 mW at 2.7 V.
—Hardware STOP (pin halts DSP): <20 µA.
■ Mask-programmable clock options: small signal, and
CMOS.
■ 144 PBGA package (13 mm x 13 mm) available.
■ Sequenced accesses to X and Y external memory.
■ Object code and pin compatible with the DSP1627.
■ Single-cycle squaring.
■ 16 x 16-bit multiplication and 36-bit accumulation in
one instruction cycle.
■ Instruction cache for high-speed, program-efficient,
zero-overhead looping.
■ Dual 25 Mbits/s serial I/O ports with multiprocessor
capability:
—16-bit data channel, 8-bit protocol channel.
■ 8-bit parallel host interface:
—Supports 8- or 16-bit transfers.
—
Motorola
■ 8-bit control I/O interface.
■ 256 memory-mapped I/O ports.
■
IEEE
*
Motorola
†
Intel
is a registered trademark of Intel Corporation.
IEEE
is a registered trademark of The Institute of Electrical
The DSP1629 is Lucent Technologies Microelectronics
Group’s first digital signal processor offering 100 MIPS
operation at 3.0 V and 80 MIPS operation at 2.7 V with a
reduction in power consumption. Designed specifically
for applications requiring low power dissipation in digital
cellular systems, the DSP1629 is a signal-coding device
that can be programmed to perform a wide variety of
fixed-point signal processing functions. The device is
based on the DSP1600 core with a bit manipulation unit
for enhanced signal coding efficiency. The DSP1629 includes a mix of peripherals specifically intended to support processing-intensive but cost-sensitive applications
in the area of digital wireless communications.
The DSP1629x16 contains 16 Kwords of internal dualport RAM (DPRAM), which allows simultaneous access
to two RAM locations in a single instruction cycle. The
DSP1629x10 supports the use of 10 Kwords of DPRAM.
Both devices contain 48 Kwords of internal ROM (IROM).
The DSP1629 is object code compatible with the
DSP1627 while providing more memory. The DSP1629 is
pin compatible with the DSP1627. Note that TRST (JTAG
test reset) replaces a V
The DSP1629 supports 2.7 V, and 3.0 V operation and
flexible power management modes required for portable
cellular terminals. Several control mechanisms achieve
low-power operation, including a STOP pin for placing the
DSP into a fully static, halted state and a programmable
power control register used to power down unused onchip I/O units. These power management modes allow
for trade-offs between power reduction and wake-up latency requirements. During system standby, power consumption is reduced to less than 20 µA.
The on-chip clock synthesizer can be driven by an external clock whose frequency is a fraction of the instruction
rate.
The device is packaged in a 144-pin PBGA, a 100-pin
BQFP, or a 100-pin TQFP and is available with 10 ns and
16.7 ns instruction cycle times at 3.0 V, and 19.2 ns and
12.5 ns instruction cycle times at 2.7 V, respectively.
Functional descriptions of pins 1—100 are found in Section 6, Signal Descriptions. The functionality of CKI and CKI2
pins are mask-programmable (see Section 7, Mask-Programmable Options). Input levels on all I and I/O type pins
are designed to remain at full CMOS levels when not driven by the DSP.
L75239TRAPI/O*Nonmaskable Program Trap/Breakpoint Indication.
M75340RSTBIReset Bar.
L85441CKO
†
Processor Clock Output.
O
M85643TCKIJTAG Test Clock.
L95744TMS
M95845TDO
L105946TDI
‡
JTAG Test Mode Select.
I
§
JTAG Test Data Output.
O
‡
JTAG Test Data Input.
I
Mask-Programmable Input Clock Option
CMOSSmall Signal
L116148CKI**ICKI
M116249CKI2**IV
SSA
VAC
VCM
K106552VEC0/IOBIT7I/O*Vectored Interrupt Indication 0/Status/Control Bit 7.
L126653VEC1/IOBIT6I/O*Vectored Interrupt Indication 1/Status/Control Bit 6.
K116754VEC2/IOBIT5I/O*Vectored Interrupt Indication 2/Status/Control Bit 5.
K126855VEC3/IOBIT4I/O*Vectored Interrupt Indication 3/Status/Control Bit 4.
J116956IOBIT3/PB7I/O*Status/Control Bit 3/PHIF Data Bus Bit 7.
J127057IOBIT2/PB6I/O*Status/Control Bit 2/PHIF Data Bus Bit 6.
H117158IOBIT1/PB5I/O*Status/Control Bit 1/PHIF Data Bus Bit 5.
H127259IOBIT0/PB4I/O*Status/Control Bit 0/PHIF Data Bus Bit 4.
G117360TRST
‡
JTAG Test Reset.
I
* 3-states when RSTB = 0, or by JTAG control.
† 3-states when RSTB = 0 and INT0 = 1. Output = 1 when RSTB = 0 and INT0 = 0, except CKO which is free-running.
‡ Pull-up devices on input.
§ 3-states by JTAG control.
** See Section 7, Mask-Programmable Options.
†† For SIO multiprocessor applications, add 5 kΩ external pull-up resistors to SADD1 and/or SADD2 for proper initialization.
6Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
3 Pin Information
(continued)
Functional descriptions of pins 1—100 are found in Section 6, Signal Descriptions.
Table 1. Pin Descriptions
(continued)
PBGA PinBQFP Pin TQFP Pin SymbolTypeName/Function
G127461
SADD2/PB3
††
I/O* SIO2 Multiprocessor Address/PHIF
Data Bus Bit 3.
F117562DOEN2/PB2I/O* SIO2 Data Output Enable/PHIF Data
Bus Bit 2.
F127764DI2/PB1I/O* SIO2 Data Input/PHIF Data Bus Bit 1.
E117865ICK2/PB0I/O* SIO2 Input Clock/PHIF Data Bus Bit 0.
E127966OBE2/POBEO* SIO2 Output Buffer Empty/PHIF Out-
* 3-states when RSTB = 0, or by JTAG control.
† 3-stat es when RSTB = 0 and INT0 = 1. Output = 1 when RSTB = 0 and INT0 = 0, except CKO which is free-running.
‡ Pull-up devices on input.
§ 3-states by JTAG control.
** See Section 7, Mask-Programmable Options.
†† For SIO multiprocessor applications, add 5 kΩ external pull-up resistors to SADD1 and/or SADD2 for proper initialization.
Lucent Technologies Inc.7
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
The DSP1629 device is a 16-bit, fixed-point programmable digital signal processor (DSP). The DSP1629
consists of a DSP1600 core together with on-chip memory and peripherals. Added architectural features give
the DSP1629 high program efficiency for signal coding
applications.
4.1 DSP1629 Architectural Overview
Figure 4 shows a block diagram of the DSP1629. The
following modules make up the DSP1629.
DSP1600 Core
The DSP1600 core is the heart of the DSP1629 chip.
The core contains data and address arithmetic units,
and control for on-chip memory and peripherals. The
core provides support for external memory wait-states
and on-chip, dual-port RAM and features vectored interrupts and a trap mechanism.
Dual-Port RAM (DPRAM)
The DSP1629x16 contains 16 banks of zero wait-state
memory and the DSP1629x10 contains 10 banks of
zero wait-state memory. Each bank consists of 1K
16-bit words and has separate address and data ports
to the instruction/coefficient and data memory spaces.
A program can reference memory from either space.
The DSP1600 core automatically performs the required
multiplexing. If references to both ports of a single bank
are made simultaneously, the DSP1600 core automatically inserts a wait-state and performs the data port access first, followed by the instruction/coefficient port
access.
A program can be downloaded from slow, off-chip memory into DPRAM, and then executed without wait-states.
DPRAM is also useful for improving convolution performance in cases where the coefficients are adaptive.
Since DPRAM can be downloaded through the JTAG
port, full-speed remote in-circuit emulation is possible.
DPRAM can also be used for downloading self-test
code via the JTAG port.
Read-Only Memory (ROM)
The DSP1629 contains 48K 16-bit words of zero waitstate mask-programmable ROM for program and fixed
coefficients.
External Memory Multiplexer (EMUX)
The EMUX is used to connect the DSP1629 to external
memory and I/O devices. It supports read/write operations from/to instruction/coefficient memory (X memory
space) and data memory (Y memory space). The
8Lucent Technologies Inc.
DSP1600 core automatically controls the EMUX. Instructions can transparently reference external memory
from either set of internal buses. A sequencer allows a
single instruction to access both the X and the Y external memory spaces.
Clock Synthesis
The DSP powers up with a 1X input clock (CKI/CKI2) as
the source for the processor clock. An on-chip clock
synthesizer (PLL) can also be used to generate the system clock for the DSP, which will run at a frequency multiple of the input clock. The clock synthesizer is
deselected and powered down on reset. For low-power
operation, an internally generated slow clock can be
used to drive the DSP. If both the clock synthesizer and
the internally generated slow clock are selected, the
slow clock will drive the DSP; however, the synthesizer
will continue to run.
The clock synthesizer and other programmable clock
sources are discussed in Section 4.12. The use of these
programmable clock sources for power management is
discussed in Section 4.13.
Bit Manipulation Unit (BMU)
The BMU extends the DSP1600 core instruction set to
provide more efficient bit operations on accumulators.
The BMU contains logic for barrel shifting, normalization, and bit field insertion/extraction. The unit also contains a set of 36-bit alternate accumulators. The data in
the alternate accumulators can be shuffled with the data
in the main accumulators. Flags returned by the BMU
mesh seamlessly with the DSP1600 conditional instructions.
Bit Input/Output (BIO)
The BIO provides convenient and efficient monitoring
and control of eight individually configurable pins. When
configured as outputs, the pins can be individually set,
cleared, or toggled. When configured as inputs, individual pins or combinations of pins can be tested for patterns. Flags returned by the BIO mesh seamlessly with
conditional instructions.
Serial Input/Output Units (SIO and SIO2)
SIO and SIO2 offer asynchronous, full -d uplex , doubl ebuffered channels that operate at up to 25 Mbits/s (for
20 ns instruction cycle in a nonmultiprocessor configuration), and easily interface with other Lucent Technologies fixed-point DSPs in a multiple-processor
environment. Commercially available codecs and timedivision multiplex (TDM) channels can be interfaced to
the serial I/O ports with few, if any, additional components. SIO2 is identical to SIO.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
(continued)
An 8-bit serial protocol channel may be transmitted in addition to the address of the called processor in multiprocessor mode. This feature is useful for transmitting high-level framing information or for error detection and correction.
SIO2 and BIO are pin-multiplexed with the PHIF.
CKI
CKI2
CKO
RSTB
STOP
TRAP
INT[1:0]
IACK
AB[15:0]DB[15:0]
ioc
DUAL-PORT
RAM
16K/10K x 16
RWNEXMEROM ERAMHI
EXTERNAL MEMORY INTERFACE & EMUX
†
YAB YDB XDB XABBMU
DSP1600 CORE
I/O
IDB
ERAMLO
ROM
48K x 16
aa0
aa1
ar0
ar1
ar2
ar3
JTAG
BOUNDARY SCAN
jtag
*
JCON
*
ID
*
BYPASS
HDS
BREAKPOINT
TRACE
TIMER
timerc
timer0
*
*
*
TDO
TDI
TCK
TMS
TRST
VEC[3:0] OR IOBIT[7:4]
DO2 OR PSTAT
OLD2 OR PODS
OCK2 OR PCSN
OBE2 OR POBE
SYNC2 OR PBSEL
ICK2 OR PB0
ILD2 OR PIDS
DI2 OR PB1
IBF2 OR PIBF
DOEN2 OR PB2
SADD2 OR PB3
IO BIT[3:0] OR PB[7:4]
M
U
X
PHIF
phifc
*
PSTAT
pdx0(IN)
pdx0(OUT)
powerc
* These registers are accessible through the pins only.
† 16K x 16 for the DSP1629x16, 10K x 16 for the DSP1629x10.
Dual-Port RAMInternal RAM (16 Kwords for DSP1629x16, 10 Kwords for DSP1629x10).
EMUXExternal Memory Multiplexer.
HDSHardware Development Sy stem.
IDJTAG Device Identification Register.
IDBInternal Data Bus.
iocI/O Configuration Register.
JCONJTAG Configuration Registers.
jtag16-bit Serial/Parallel R egister.
pdx0(in)Parallel Data Transmit Input Register 0.
pdx0(out)Parallel Data Transmit Output Register 0.
PHIFParallel Host Interface.
phifcParallel Host Interface Control Regis ter.
pllcPhase-Locked Loop Control Register.
powercPower Control Register.
PSTATParallel Host Interface Status Register.
saddxMultiprocessor Protocol Register.
saddx2Multiprocessor Protocol Register for SIO2.
sbitStatus Register for BIO.
sdx(in)Serial Data Transmit Input Register.
sdx2(in)Serial Data Transmit Input Register for SIO2.
sdx(out)Serial Data Transmit Output Register.
sdx2(out)Serial Data Transmit Output Register for SIO2.
SIOSerial Input/Output Unit.
SIO2Serial Input/Output Unit #2.
siocSerial I/O Control Register.
sioc2Serial I/O Control Register for SIO2.
srtaSerial Receive/Transmit Address Register.
srta2Serial Receive/Tr an sm it Address Register for SIO2.
tdmsSerial I/O Time-division Multiplex Signal Control Register.
tdms2Serial I/O Time-division Multiplex Signal Control Register for SIO2.
TIMERProgrammable Timer.
timer0Timer Running Count Register.
timercTimer Control Register.
TRACEProgram Discontinuity Trace Buffer.
XABProgram Memory Address Bus.
XDBProgram Memory Data Bus.
YABData Memory Address Bus.
YDBData Memory Data Bus.
(continued)
10Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
Parallel Host Interface (PHIF)
The PHIF is a passive, 8-bit parallel port which can interface to an 8-bit bus containing other Lucent Technologies DSPs (e.g., DSP1620, DSP1627, DSP1628,
DSP1629, DSP1611, DSP1616, DSP1617, DSP1618),
microprocessors, or peripheral I/O devices. The PHIF
port supports either
as 8-bit or 16-bit transfers, configured in software. The
port data rate depends upon the instruction cycle rate.
A 25 ns instruction cycle allows the PHIF to support
data rates up to 11.85 Mbytes/s, assuming the external
host device can transfer 1 byte of data in 25 ns.
The PHIF is accessed in two basic modes: 8-bit or
16-bit mode. In 16-bit mode, the host determines an access of the high or low byte. In 8-bit mode, only the low
byte is accessed. Software-programmable features allow for a glueless host interface to microprocessors
(see Section 4.8, Parallel Host Interface).
Timer
Motorola
or
Intel
(continued)
protocols, as well
In systems with multiple processors, the processors
may be configured such that any processor reaching a
breakpoint will cause all the other processors to be
trapped (see Section 4.3, Interrupts and Trap).
Pin Multiplexing
In order to allow flexible device interfacing while maintaining a low package pin count, the DSP1629 multiplexes 16 package pins between BIO, PHIF, VEC[3:0],
and SIO2.
Upon reset, the vectored interrupt indication signals,
VEC[3:0], are connected to the package pins while
IOBIT[4:7] are disconnected. Setting bit 12, EBIOH, of
the ioc register connects IOBIT[4:7] to the package pins
and disconnects VEC[3:0].
Upon reset, the parallel host interface (PHIF) is connected to the package pins while the second serial port
(SIO2) and IOBIT[3:0] are disconnected. Setting bit 10,
ESIO2, of the ioc register connects the SIO2 and
IOBIT[3:0] and disconnects the PHIF.
Power Management
The timer can be used to provide an interrupt at the expiration of a programmed interval. The interrupt may be
single or repetitive. More than nine orders of magnitude
of interval selection are provided. The timer may be
stopped and restarted at any time.
Hardware Development System (HDS) Module
The on-chip HDS performs instruction breakpointing
and branch tracing at full speed without additional offchip hardware. Using the JTAG port, the breakpointing
is set up, and the trace history is read back. The port
works in conjunction with the HDS code in the on-chip
ROM and the hardware and software in a remote computer. The HDS code must be linked to the user's application code and reside in the first 4 Kwords of ROM.
The on-chip HDS cannot be used with the secure ROM
masking option (see Section 7.3, ROM Security Options).
Four hardware breakpoints can be set on instruction addresses. A counter can be preset with the number of
breakpoints to receive before trapping the core. Breakpoints can be set in interrupt service routines. Alternately, the counter can be preset with the number of cache
instructions to execute before trapping the core.
Every time the program branches instead of executing
the next sequential instruction, the addresses of the instructions executed before and after the branch are
caught in circular memory. The memory contains the
last four pairs of program discontinuities for hardware
tracing.
Many applications, such as portable cellular terminals,
require programmable sleep modes for power management. There are three different control mechanisms for
achieving low-power operation: the powerc control
register, the STOP pin, and the AWAIT bit in the alf register. The AWAIT bit in the alf register allows the processor to go into a power-saving standby mode until an
interrupt occurs. The powerc register configures various
power-saving modes by controlling internal clocks and
peripheral I/O units. The STOP pin controls the internal
processor clock. The various power management options may be chosen based on power consumption and/
or wake-up latency requirements.
4.2 DSP1600 Core Architectural Overview
Figure 5 shows a block diagram of the DSP1600 core.
System Cache and Control Section (SYS)
This section of the core contains a 15-word cache memory and controls the instruction sequencing. It handles
vectored interrupts and traps, and also provides decoding for registers outside of the DSP1600 core. SYS
stretches the processor cycle if wait-states are required
(wait-states are programmable for external memory accesses). SYS sequences downloading via JTAG of selftest programs to on-chip, dual-port RAM.
The cache loop iteration count can be specified at run
time under program control as well as at assembly time.
Lucent Technologies Inc.11
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
Data Arithmetic Unit (DAU)
The data arithmetic unit (DAU) contains a 16 x 16-bit
parallel multiplier that generates a full 32-bit product in
one instruction cycle. The product can be accumulated
with one of two 36-bit accumulators. The accumulator
data can be directly loaded from, or stored to, memory
in two 16-bit words with optional saturation on overflow.
The arithmetic logic unit (ALU) supports a full set of
arithmetic and logical operations on either 16- or 32-bit
data. A standard set of flags can be tested for conditional ALU operations, branches, and subroutine calls. This
procedure allows the processor to perform as a powerful 16- or 32-bit microprocessor for logical and control
applications. The available instruction set is fully compatible with the DSP1627 instruction set. See Section
5.1 for more information on the instruction set.
The user also has access to two additional DAU regis-
ters. The psw register contains status information from
the DAU (see Table 26, Processor Status Word Register). The arithmetic control register, auc, is used to configure some of the features of the DAU (see Table 27)
including single-cycle squaring. The auc register alignment field supports an arithmetic shift left by one and
left or right by two. The auc register is cleared by reset.
The counters c0 to c2 are signed, 8 bits wide, and may
be used to count events such as the number of times
the program has executed a sequence of code. They
are controlled by the conditional instructions and provide a convenient method of program looping.
(continued)
The YAAU allows direct (or indexed) addressing of data
memory. In direct addressing, the 16-bit base register
(ybase) supplies the 11 most significant bits of the address. The direct data instruction supplies the remaining
5 bits to form an address to Y memory space and also
specifies one of 16 registers for the source or destination.
X Space Address Arithmetic Unit (XAAU)
The XAAU supports high-speed, register-indirect, instruction/coefficient memory addressing with postmodification of the register. The 16-bit pt register is used for
addressing coefficients. The signed register i holds a
user-defined postincrement. A fixed postincrement of
+1 is also available. Register PC is the program
counter. Registers pr and pi hold the return address for
subroutine calls and interrupts, respectively.
The XAAU decodes the 16-bit instruction/coefficient address and produces enable signals for the appropriate
X memory segment. The addressable X segments are
48 Kwords of internal ROM, up to 16 Kwords of DPRAM
for the DSP1629x16 or up to 10 Kwords of DPRAM for
the DSP1629x10, and external ROM.
The locations of these memory segments depend upon
the memory map selected (see Table 5). A security
mode can be selected by mask option. This prevents
unauthorized access to the contents of on-chip ROM
(see Section 7, Mask-Programmable Options).
4.3 Interrupts and Trap
Y Space Address Arithmetic Unit (YAAU)
The YAAU supports high-speed, register-indirect, compound, and direct addressing of data (Y) memory. Four
general-purpose, 16-bit registers, r0 to r3, are available
in the YAAU. These registers can be used to supply the
read or write addresses for Y space data. The YAAU
also decodes the 16-bit data memory address and outputs individual memory enables for the data access.
The YAAU can address the six 1 Kword banks of onchip DPRAM or three external data memory segments.
Up to 48 Kwords of off-chip RAM are addressable, with
16K addresses reserved for internal RAM.
Two 16-bit registers, rb and re, allow zero-overhead
modulo addressing of data for efficient filter implementations. Two 16-bit signed registers, j and k, are used to
hold user-defined postmodification increments. Fixed
increments of +1, –1, and +2 are also available. Four
compound-addressing modes are provided to make
read/write operations more effici ent .
12Lucent Technologies Inc.
The DSP1629 supports prioritized, vectored interrupts
and a trap. The device has eight internal hardware
sources of program interrupt and two external interrupt
pins. Additionally, there is a trap pin and a trap signal
from the hardware development system (HDS). A software interrupt is available through the icall instruction.
The icall instruction is reserved for use by the HDS.
Each of these sources of interrupt and trap has a unique
vector address and priority assigned to it. DSP16A interrupt compatibility is not maintained.
The software interrupt and the traps are always enabled
and do not have a corresponding bit in the ins register.
Other vectored interrupts are enabled in the inc register
(see Table 29, Interrupt Control (inc) Register) and
monitored in the ins register (see Table 30, Interrupt
Status (ins) Register). When the DSP1629 goes into an
interrupt or trap service routine, the IACK pin is asserted. In addition, pins VEC[3:0] encode which interrupt/
trap is being serviced. Table 4 details the encoding
used for VEC[3:0].
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
CONTROL
ins (16)
inc (16)
x (16)
16 x 16 MPY
p (32)
SHIFT (–2, 0, 1, 2)
yh (16)
yl (16)
32
(continued)
CACHE
cloop (7)
alf (16)
mwait (16)
DAU
SYS
ADDER
pc (16)
pt (16)
i (16)
MUX
j (16)
k (16)
1
pr (16)
pi (16)
MUX
XAAU
BRIDGE
–1, 0, 1, 2
XDB
XAB
IDB
YDB
YAAU
MUX
ALU/SHIFT
a0 (36)
a1 (36)
16
EXTRACT/SAT
36
c0 (8)
c1 (8)
c2 (8)
auc (16)
psw (16)
re (16)
CMP
ybase (16)
Figure 5. DSP1600 Core Block Diagram
ADDER
YAB
rb (16)
MUX
r0 (16)
r1 (16)
r2 (16)
r3 (16)
5-1741 (F).b
Lucent Technologies Inc.13
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
Table 3. DSP1600 Core Block Diagram Legend
SymbolName
16 x 16 MPY16-bit x 16-bit Multiplier.
a0—a1Accumulators 0 and 1 (16-bit halves specified as a0, a0l, a1, and a1l).*
alfAWAIT, LOWPR, Flags.
ALU/SHIFTArithmetic Logic Unit/Shifter.
aucArithmetic Unit Control.
c0—c2Counters 0—2.
cloopCache Loop Count.
CMPComparator.
DAUDigital Arithmetic Unit.
iIncrement Register for the X Address Space.
IDBInternal Data Bus.
incInterrupt Control.
ins Interrupt Status.
jIncrement Register for the Y Address Space.
kIncrement Register for the Y Address Space.
MUXMultiplexer.
mwaitExternal Memory Wait-states Register.
pProduct Register (16-bit halves specified as p, pl).
* F3 ALU instructions with immediates require specifying the high half of the accumulators as a0h and a1h.
(continued)
14Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
Interruptibility
Vectored interrupts are serviced only after the execution
of an interruptible instruction. If more than one vectored
interrupt is asserted at the same time, the interrupts are
serviced sequentially according to their assigned priorities. See Table 4 for the priorities assigned to the vectored interrupts. Interrupt service routines, branch and
conditional branch instructions, cache loops, and instructions that only decrement one of the RAM pointers,
r0 to r3 (e.g., *r3−
A trap is similar to an interrupt, but it gains control of the
processor by branching to the trap service routine even
when the current instruction is noninterruptible. It may
not be possible to return to normal instruction execution
from the trap service routine since the machine state
cannot always be saved. In particular, program execution cannot be continued from a trapped cache loop or
interrupt service routine. While in a trap service routine,
another trap is ignored.
When set to 1, the status bits in the ins register indicate
that an interrupt has occurred. The processor must
reach an interruptible state (completion of an interruptible instruction) before an enabled vectored interrupt will
be acted on. An interrupt will not be serviced if it is not
enabled. Polled interrupt service can be implemented
by disabling the interrupt in the inc register and then
polling the ins register for the expected event.
Vectored Interrupts
Tables 29 and 30 show the inc and ins registers. A logic
1 written to any bit of inc enables (or unmasks) the associated interrupt. If the bit is cleared to a logic 0, the interrupt is masked. Note that neither the software
interrupt nor traps can be masked.
The occurrence of an interrupt that is not masked will
cause the program execution to transfer to the memory
location pointed to by that interrupt's vector address, assuming no other interrupt is being serviced (see Table
4, Interrupt Vector Table). The occurrence of an interrupt that is masked causes no automatic processor action, but will set the corresponding status bit in the ins
register. If a masked interrupt occurs, it is latched in the
ins register, but the interrupt is not taken. When unlatched, this latched interrupt will initiate automatic processor interrupt action. See the
Digital Signal Processor Information Manual
detailed description of the interrupts.
− −−−−), are not interruptible.
− −
(continued)
DSP1611/17/18/27
for a more
Signaling Interrupt Service Status
Five pins of DSP1629 are devoted to signaling interrupt
service status. The IACK pin goes high while any interrupt or user trap is being serviced, and goes low when
the iretur n instruct ion fr om the se rvice ro utine is issued.
Four pins, VEC[3:0], carry a code indicating which of the
interrupts or trap is being serviced. Table 4 contains the
encodings used by each interrupt.
Traps due to HDS breakpoints have no effect on either
the IACK or VEC[3:0] pins. Instead, they show the interrupt state or interrupt source of the DSP when the trap
occurred.
Clearing Interrupts
The PHIF interrupts (PIBF and POBE) are cleared by
reading or writing the parallel host interface data transmit registers pdx0[in] and pdx0[out], respectively. The
SIO and SIO2 interrupts (IBF, IBF2, OBE, and OBE 2)
are cleared one instruction cycle AFTER reading or writing the serial data registers, (sdx[in], sdx2[in], sdx[out],
or sdx2[out]). To account for this added latency, the
user must ensure that a single instruction (NOP or any
other valid DSP16XX instruction) follows the sdx register read or write instruction prior to exiting an interrupt
service routine (via an ireturn or goto pi instruction) or
before checking the ins register for the SIO flag status.
Adding this instruction ensures that interrupts are not
reported incorrectly following an ireturn or that stale
flags are not read from the ins register. The JTAG interrupt (JINT) is cleared by reading the jtag register.
Three of the vectored interrupts are cleared by writing to
the ins register. Writing a 1 to the INT0, INT1, or TIME
bits in the ins will cause the corresponding interrupt status bit to be cleared to a logic 0. The status bit for these
vectored interrupts is also cleared when the ireturn instruction is executed, leaving set any other vectored interrupts that are pending.
Traps
The TRAP pin of the DSP1629 is a bidirectional signal.
At reset, it is configured as an input to the processor.
Asserting the TRAP pin will force a user trap. The trap
mechanism is used for two purposes. It can be used by
an application to rapidly gain control of the processor for
asynchronous tim e-cr it ical event han dli ng (typi c all y for
catastrophic error recovery). It is also used by the HDS
for breakpointing and gaining control of the processor.
Separate vectors are provided for the user trap (0x46)
and the HDS trap (0x3). Traps are not maskable.
IBF0x2c140x3SIO in
OBE0x30150x4SIO out
PIBF0x34160x5PHIF in
POBE0x38170x6PHIF out
TRAP from HDS0x318
TRAP from User0x4619 = highest0x7pin
* Traps due to HDS breakpoints have no effect on VEC[3:0] pins.
(continued)
*
breakpoint, jtag, or pin
A trap has four cycles of latency. At most, two instructions will execute from the time the trap is received at
the pin to when it gains control. An instruction that is executing when a trap occurs is allowed to complete before the trap service routine is entered. (Note that the
instruction could be lengthened by wait-states.) During
normal program execution, the pi register contains either the address of the next instruction (two-cycle instruction executing) or the address following the next
instruction (one-cycle instruction executing). In an interrupt service routine, pi contains the interrupt return address. When a trap occurs during an interrupt service
routine, the value of the pi register may be overwritten.
Specifically, it is not possible to return to an interrupt
service routine from a user trap (0x46) service routine.
Continuing program execution when a trap occurs du ring a cache loop is also not possible.
The HDS trap causes circuitry to force the program
memory map to MA P1 (with on-chi p ROM starting at address 0x0) when the trap is taken. The previous memory map is restored when the trap service routine exits by
issuing an ireturn. The map is forced to MAP1 because
the HDS code, if present, resides in the on-chip ROM.
Using the Lucent Technologies development tools, the
TRAP pin may be configured to be an output, or an input
vectoring to address 0x3. In a multiprocessor environment, the TRAP pins of all the DSPs present can be tied
together. During HDS operations, one DSP is selected
by the host software to be the master. The master processor's TRAP pin is configured to be an output.
The TRAP pins of the slave processors are configured
as inputs. When the master processor reaches a breakpoint, the master's TRAP pin is asserted. The slave processors will respond to their TRAP input by beginning to
execute the HDS code.
AWAIT Interrupt (Standby or Sleep Mode)
Setting the AWAIT bit (bit 15) of the alf register (alf =
0x8000) causes the processor to go into a power-saving
standby or sleep mode. Only the minimum circuitry on
the chip required to process an incoming interrupt remains active. After the AWAIT bit is set, one additional
instruction will be executed before the standby powersaving mode is entered. A PHIF or SIO word transfer
will complete if already in progress. The AWAIT bit is reset when the first interrupt occurs. The chip then wakes
up and continues executing.
Two nop instructions should be programmed after the
AWAIT bit is set. The first nop (one cycle) will be executed before sleeping; the second will be executed after
the interrupt signal awakens the DSP and before the interrupt service routine is executed.
16Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
The AWAIT bit should be set from within the cache if the
code which is executing resides in external ROM where
more than one wait-state has been programmed. This
ensures that an interrupt will not disturb the device from
completely entering the sleep state.
For additional power savings, set ioc = 0x0180 and tim-
erc = 0x0040 in addition to setting alf = 0x8000. This will
hold the CKO pin low and shut down the timer and pres-
caler (see Table 38 and Table 31).
For a description of the control mechanisms for putting
the DSP into low-power modes, see Section 4.13, Pow-
er Management.
(continued)
4.4 Memory Maps and Wait-States
The DSP1600 core implements a modified Harvard ar-
chitecture that has separate on-chip 16-bit address and
data buses for the instruction/coefficient (X) and data
(Y) memory spaces. Table 5 shows the instruction/coef-
ficient memory space maps for both the DSP1629x16
and DSP1629x10.
The DSP1629 provides a multiplexed external bus
which accesses external RAM (ERAM) and ROM
(EROM). Programmable wait-states are provided for
external memory accesses. The instruction/coefficient
memory map is configurable to provide application flex-
ibility. Table 6 shows the data memory space, which
has one map.
Instruction/Coefficient Memory Map Selection
In determining which memory map to use, the proces-
sor evaluates the state of two parameters. The first is
the LOWPR bit (bit 14) of the alf register. The LOWPR
bit of the alf register is initialized to 0 automatically at re-
set. LOWPR controls the starting address in memory
assigned to 1K banks of dual-port RAM. If LOWPR is
low, internal dual-port RAM begins at address 0xC000.
If LOWPR is high, internal dual-port RAM begins at ad-
dress 0x0. LOWPR also moves IROM from 0x0 in
MAP1 to 0x4000 in MAP3, and EROM from 0x0 in
MAP2 to 0x4000 in MAP4.
The second parameter is the value at reset of the EXM
pin (pin 27 or pin 14, depending upon the package
type). EXM determines whether the internal 48 Kwords
ROM (IROM) will be addressable in the memory map.
The Lucent Technologies development system tools,
together with the on-chip HDS circuitry and the JTAG
port, can independently set the memory map. Specifi-
cally, during an HDS trap, the memory map is forced to
MAP1. The user's map selection is restored when the
trap service routine has completed execution.
MAP1
MAP1 has the IROM starting at 0x0 and 1 Kword banks
of DPRAM starting at 0xC000. MAP1 is used if
DSP1629 has EXM low at reset and the LOWPR parameter is programmed to zero. It is also used during an
HDS trap.
MAP2
MAP2 differs from MAP1 in that the lowest 48 Kwords
referenc e extern al ROM (ERO M). MAP2 i s used if EX M
is high at reset, the LOWPR parameter is programmed
to zero, and an HDS trap is not in progress.
MAP3
MAP3 has the 1 Kword banks of DPRAM starting at
address 0x0. In MAP3, the 48 Kwords of IROM start at
0x4000. MAP3 is used if EXM is low at reset, the LOWPR bit is programmed to 1, and an HDS trap is not in
progress. Note that this map is not available if the secure mask-programmable option has been ordered.
MAP4
MAP4 differs from MAP3 in that addresses above
0x4000 reference external ROM (EROM). This map is
used if the LOWPR bit is programmed to 1, an HDS trap
is not in progress, and, either EXM is high during reset,
or the secure mask-programmable option has been ordered.
Whenever the chip is reset using the RSTB pin, the default memory map will be MAP1 or MAP2, depending
upon the state of the EXM pin at reset. A reset through
the HDS will not reinitialize the alf register, so the previous memory map is retained.
Boot from External ROM
After RSTB goes from low to high, the DSP1629 comes
out of reset and fetches an instruction from address
zero of the instruction/coefficient space. The physical
location of address zero is determined by the memory
map in effect. If EXM is high at the rising edge of RSTB,
MAP2 is selected. MAP2 has EROM at location zero;
thus, program execution begins from external memory.
If EXM is high and INT1 is low when RSTB rises, the
mwait register defaults to 15 wait-states for all external
memory segments. If INT1 is high, the mwait register
defaults to 0 wait-states.
* MAP1 is set automatically during an HDS trap. The user-selected map is restored at the end of the HDS trap service routine.
† LOWPR is an alf register bit. The Lucent Technologies development system tools can independently set the memory map.
‡ MAP3 is not available if the secure mask-programmable option is selected.
(6K)
Reserved
(6K)
MAP 4
EXM = 1
DPRAM
(10K)
(6K)
EROM
(48K)
18Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
Table 6. Data Memory Maps
1629x16 Data Memory Map (Not to Scale)
Decimal
Address
00x0000DPRAM[1:16]
16K0x4000IO
Address in
r0, r1, r2, r3
(continued)
Segment
1629x10 Data Memory Map (Not to Scale)
Decimal
Address
00x0000DPRAM[1:10 ]
10K0x2800Reser ved
16K0x4000IO
16,6400x4100ERAMLO
32K0x8000ERAMHI
Address in
r0, r1, r2, r3
Segment
(6 K)
16,6400x4100ERAMLO
32K0x8000ERAMHI
64K – 10xFFFF
On the data memory side (see Table 6), the 1K banks
of dual-port RAM are located starting at address 0. Addresses from 0x4000 to 0x40FF reference a 256-word
memory-mapped I/O segment (IO). Addresses from
0x4100 to 0x7FFF reference the low external data RAM
segment (ERAMLO). Addresses above 0x8000 reference high external data RAM (ERAMHI).
64K – 10xFFFF
Wait-States
The number of wait-states (from 0 to 15) used when accessing each of the four external memory segments
(ERAMLO, IO, ERAMHI, and EROM) is programmable
in the mwait register (see Table 36). When the program
references memory in one of the four external segments, the internal multiplexer is automatically switched
to the appropriate set of internal buses, and the associated external enable of ERAMLO, IO, ERAMHI, or
EROM is issued. The external memory cycle is automatically stretched by the number of wait-states configured in the appropriate field of the mwait register.
Lucent Technologies Inc.19
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
(continued)
4.5 External Memory Interface (EMI)
The external memory interface supports read/write operations from instruction/coefficient memory, data
memory, and memory-mapped I/O devices. The
DSP1629 provides a 16-bit external address bus,
AB[15:0], and a 16-bit external data bus, DB[15:0].
These buses are multiplexed between the internal buses for the instruction/coefficient memory and the data
memory. Four external memory segment enables,
ERAMLO, IO, ERAMHI, and EROM, select the external
memory segment to be addressed.
If a data memory location with an address between
0x4100 and 0x7FFF is addressed, ERAMLO is asserted
low.
If one of the 256 external data memory locations, with
an address greater than or equal to 0x4000, and less
than or equal to 0x40FF, is addressed, IO is asserted
low. IO is intended for memory-mapped I/O.
If a data memory location with an address greater than
or equal to 0x8000 is addressed, ERAMHI is asserted
low. When the external instruction/coefficient memory is
addressed, EROM is asserted low.
The flexibility provided by the programmable options of
the external memory interface (see Table 36, mwait
Register and Table 38, ioc Register) allows the
DSP1629 to interface gluelessly with a variety of commercial memory chips.
Each of the four external memory segments, ERAMLO,
IO, ERAMHI, and EROM, has a number of wait-states
that is programmable (from 0 to 15) by writing to the
mwait register. When the program references memory
in one of the four external segments, the internal multiplexer is automatically switched to the appropriate set of
internal buses, and the associated external enable of
ERAMLO, IO, ERAMHI, or EROM is issued. The external memory cycle is automatically stretched by the number of wait-states in the appropriate field of the mwait
register.
When writing to external memory, the RWN pin goes
low for the external cycle. The external data bus,
DB[15:0], is driven by the DSP1629 starting halfway
through the cycle. The data driven on the external data
bus is automatically held after the cycle for one additional clock period unless an external read cycle immediately follows.
The DSP1629 has one external address bus and one
external data bus for both memory spaces. Since some
instructions provide the capability of simultaneous access to both X space and Y space, some provision must
be made to avoid collisions for external accesses. The
DSP1629 has a sequencer that does the external X access first, and then the external Y access, transparently
to the programmer. Wait-states are maintained as programmed in the mwait register. For example, let two instructions be executed: the first reads a coefficient from
EROM and writes data to ERAM; the second reads a
coefficient from EROM and reads data from ERAM. The
sequencer carries out the following steps at the external
memory interface: read EROM, write ERAM, read EROM, and read ERAM. Each step is done in sequential
one-instruction cycle steps, assuming zero wait-states
are programmed. Note that the number of instruction
cycles taken by the two instructions is four. Also, in this
case, the write hold time is zero.
The DSP1629 allows writing into external instruction/
coefficient memory. By setting bit 11, WEROM, of the
ioc register (see Table 38), writing to (or reading from)
data memory or memory-mapped I/O asserts the
EROM strobe instead of ERAMLO, IO, or ERAMHI.
Therefore, with WEROM set, EROM appears in both Y
space (replacing ERAM) and X space, in its normal position.
Bit 14 of the ioc register (see Table 38), EXTROM, may
be used with WEROM to download to a full 64K of external mem ory . When WER OM an d EXTR OM ar e bo th
asserted, address bi t 15 (AB15) i s held low , aliasing t he
upper 32K of external memory into the lower 32K.
When an access to internal memory is made, the
AB[15:0] bus holds the last valid external memory address. Asserting the RSTB pin low 3-states the AB[15:0]
bus. After reset, the AB[15:0] value is undefined.
The leading edge of the memory segment enables can
be delayed by approximately one-half a CKO period by
programming the ioc register (see Table 38). This is
used to avoid a situation in which two devices drive the
data bus simultaneously.
Bits 7, 8, and 13 of the ioc register select the mode of
operation for the CKO pin (see Table 38). Available options are a free-running unstretched clock, a wait-stated
sequenced clock (runs through two complete cycles
during a sequenced external memory access), and a
wait-stated clock based on the internal instruction cycle.
These clocks drop to the low-speed internal ring oscillator when SLOWCKI is enabled (see 4.13, Power Management). The high-to-low transitions of the wait-stated
clock are synchronized to the high-to-low transition of
the free-running clock. Also, the CKO pin provides either a continuously high level, a continuously low level,
or changes at the rate of the internal processor clock.
This last option, only available with the small-signal input clock options, enables the DSP1629 CKI input buffer to deliver a full-rate clock to other devices while the
DSP1629 itself is in one of the low-power modes.
20Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
(continued)
4.6 Bit Manipulation Unit (BMU)
The BMU interfaces directly to the main accumulators in
the DAU providing the following features:
■ Barrel shifting—logical and arithmetic, left and right
shift
■ Normalization and extraction of exponent
■ Bit-field extraction and insertion
These features increase the efficiency of the DSP in applications such as control or data encoding and decoding. For example, data packing and unpacking, in which
short data words are packed into one 16-bit word for
more efficient memory storage, is very easy.
In addition, the BMU provides two auxiliary accumulators, aa0 and aa1. In one instruction cycle, 36-bit data
can be shuffled, or swapped, between one of the main
accumulators and one of the alternate accumulators.
The ar<0—3> registers are 16-bit registers that control
the operations of the BMU. They store a value that determines the amount of shift or the width and offset
fields fo r bit extr action or i nsertion. Certain op erations in
the BMU set flags in the DAU psw register and the alf
register (see Table 26, Processor Status Word (psw)
Register, and Table 35, alf Register). The ar<0—3> registers can also be used as general-purpose registers.
The BMU instructions are detailed in Section 5.1. For a
thorough description of the BMU, see the
18/27 Digital Signal Processor Information Manual
DSP1611/17/
.
4.7 Serial I/O Units (SIOs)
The serial I/O ports on the DSP1629 device provide a
serial interface to many codecs and signal processors
with litt le, if any , ext ernal hard ware requi red. Each h ighspeed, double-buffered port (sdx and sdx2) supports
back-to-back transmissions of data. SIO and SIO2 are
identical. The output buffer empty (OBE and OBE2) and
input buffer full (IBF and IBF2) flags facilitate the reading and/or writing of each serial I/O port by programor interrupt-driven I/O. There are four selectable active
clock speeds.
A bit-reversal mode provides compatibility with either
the most significant bit (MSB) first or least significant bit
(LSB) first serial I/O formats (see Table 22, Serial I/O
Control Registers (sioc and sioc2)). A multiprocessor
I/O configuration is supported. This feature allows up to
eight DSP161X devices to be connected together on an
SIO port without requiring external glue logic.
The serial data may be internally looped back by setting
the SIO loopback control bit, SIOLBC, of the ioc regis-
Lucent Technologies Inc.21
ter. SIOLBC affects both the SIO and SIO2. The data
output signals are wrapped around internally from the
output to the input (DO1 to DI1 and DO2 to DI2). To exercise loopback, the SIO clocks (ICK1, ICK2, OCK1,
and OCK2) should either all be in the active mode,
16-bit condition, or each pair should be driven from one
external source in passive mode. Similarly, pins ILD1
(ILD2) and OLD1 (OLD2) must both be in active mode
or tied together and driven from one external frame
clock in passive mode. During loopback, DO1, DO2,
DI1, DI2, ICK1, ICK2, OCK1, OCK2, ILD1, ILD2, OLD1,
OLD2, SADD1, SADD2, SYNC1, SYNC2, DOEN1, and
DOEN2 are 3-stated.
Setting DODLY = 1 (sioc and sioc2) delays DO by one
phase of OCK so that DO changes on the falling edge
of OCK instead of the rising edge (DODLY = 0). This reduces the time available for DO to drive DI and to be valid for the rising edge of ICK, but increases the hold time
on DO by half a cycle on OCK.
Programmable Modes
Programmable modes of operation for the SIO and
SIO2 are controlled by the serial I/O control registers
(sioc and sioc2). These registers, shown in Table 22,
are used to set the ports into various configurations.
Both input and output operations can be independently
configured as either active or passive. When active, the
DSP1629 generates load and clock signals. When passive, load and clock signal pins are inputs.
Since input and output can be independently configured, each SIO has four different modes of operation.
Each of the sioc registers is also used to select the frequency of active clocks for that SIO. Finally, these registers are used to configure the serial I/O data formats.
The data can be 8 or 16 bits long, and can also be input/
output MSB first or LSB first. Input and output data formats can be independently configured.
Multiprocessor Mode
The multiprocessor mode allows up to eight devices
that support multiprocessor mode (codecs or DSP16XX
devices) to be connected together to provide data transmission among any of the multiprocessor devices in the
system. Either of the DSP1629’s SIO ports (SIO or
SIO2) may be independently used for the mul tip roce ssor mode. The multiprocessor interface is a four-wire interface, consisting of a data channel, an address/
protocol channel, a transmit/receive clock, and a sync
signal (see Figure 6). The DI1 and DO1 pins of all the
DSPs are connected to transmit and receive the data
channel. The SADD1 pins of all the DSPs are connected to transmit and receive the address/protocol channel. ICK1 and OCK1 should be tied together and driven
from one source. The SYNC1 pins of all the DSPs are
connected.
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
In the configuration shown in Figure 6, the master DSP
(DSP0) generates active SYNC1 and OCK1 signals
while the slave DSPs use the SYNC1 and OCK1 signals
in passive mode to synchronize operations. In addition,
all DSPs must have their ILD1 and OLD1 signals in active mode.
While ILD1 and OLD1 are not required externally for
multiprocessor operation, they are used internally in the
DSP's SIO. Setting the LD field of the master's sioc register to a logic level 1 will ensure that the active generation of SYNC1, ILD1, and OLD1 is derived from OCK1
(see Table 22). With this configuration, all DSPs should
use ICK1 (tied to OCK1) in passive mode to avoid conflicts on the clock (CK) line (see the
Digital Signal Processor Information Manual
information).
Four registers (per SIO) configure the multiprocessor
mode: the time-division multiplexed slot register (tdms
or tdms2), the serial receive and transmit address register (srta or srta2), the serial data transmit register (sdx
or sdx2), and the multiprocessor serial address/protocol
register (saddx or saddx2).
Multiprocessor mode requires no external logic and
uses a TDM interface with eight 16-bit time slots per
frame. The transmission in any time slot consists of
16 bits of serial data in the data channel and 16 bits of
address and protocol information in the address/protocol channel. The address information consists of the
transmit address field of the srta register of the transmitting device. The address information is transmitted concurrently with the transmission of the first 8 bits of data.
The protocol information consists of the transmit protocol field written to the saddx register and is transmitted
concurrently with the last 8 bits of data (see Table 25,
Multiprocessor Protocol Register). Data is received or
recognized by other DSP(s) whose receive address
matches the address in the address/protocol channel.
Each SIO port has a user-programmable receive address and transmit address associated with it. The
transmit and receive addresses are programmed in the
srta register.
(continued)
DSP1611/17/18/27
for more
In order to prevent multiple bus drivers, only one DSP
can be programmed to transmit in a particular time slot.
In addition, it is important to note that the address/protocol channel is 3-stated in any time slot that is not being
driven.
Therefore, to prevent spurious inputs, the address/protocol channel should be pulled up to V
sistor, or it should be guaranteed that the bus is driven
in every time slot. (If the SYNC1 signal is externally generated, then this pull-up is required for correct initialization.)
Each SIO also has a fully decoded transmitting address
specified by the srta register transmit address field (bits
7—0). This is used to transmit information regarding the
destination(s) of the data. The fully decoded receive address specified by the srta register receive address field
(bits 15—8) determines which data will be received.
The SIO protocol channel data is controlled via the saddx register. When the saddx register is written, the lower
8 bits contain the 8-bit protocol field. On a read, the
high-order 8 bits read from saddx are the most recently
received protocol field sent from the transmitting DSP's
saddx output register. The low-order 8 bits are read as
0s.
An example use of the protocol channel is to use the top
3 bits of the saddx value as an encoded source address
for the DSPs on the multiprocessor bus. This leaves the
remaining 5 bits available to convey additional control
information, such as whether the associated field is an
opcode or data, or whether it is the last word in a transfer, etc. Th ese bits c an also be us ed to transf er parit y information about the data. Alternatively, the entire field
can be used for data transmission, boosting the bandwidth of the port by 50%.
Using SIO2
The SIO2 functions the same as the SIO. Please refer
to Pin Multiplexing in Section 4.1 for a description of pin
multiplexing of BIO, PHIF, VEC[3:0], and SIO2.
with a 5 kΩ re-
DD
In multiprocessor mode, each device can send data in
a unique time slot designated by the tdms register transmit slot field (bits 7—0). The tdms register has a fully decoded transmit slot field in order to allow one DSP1629
device to transmit in more than one time slot. This procedure is useful for multiprocessor systems with less
than eight DSP1629 devices when a higher bandwidth
is necessary between certain devices in that system.
The DSP operating during time slot 0 also drives
SYNC1.
22Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
DSP 0
DO
ICK
SADD
DI
OCK
SYNC
ADDRESS/PROTOCOL CHANNEL
(continued)
DATA CHANNEL
CLOCK
SYNC SIGNAL
DO
DI
DSP 1
ICK
OCK
Figure 6. Multiprocessor Communication and Connections
4.8 Parallel Host Interface (PHIF)
The DSP1629 has an 8-bit parallel host interface for
rapid transfer of data with external devices. This parallel
port is passive (data strobes provided by an external device) and supports either
ler protocols. The PHIF also provides for 8-bit or
16-bit data transfers. As a flexible host interface, it requires little or no glue logic to interface to other devices
(e.g., microcontrollers, microprocessors, or another
DSP).
The data path of the PHIF consists of a 16-bit input buffer, pdx0(in), and a 16-bit output buffer, pdx0(out). Two
output pins, parallel input buffer full (PIBF) and parallel
output buffer empty (POBE), indicate the state of the
buffers. In addition, there are two registers used to control and monitor the PHIF's operation: the parallel host
interface control register (phifc, see Table 28), and the
PHIF status register (PSTAT, see Table 8). The PSTAT
register, which reflects the state of the PIBF and POBE
flags, can only be read by an external device when the
PSTAT input pin is asserted. The phifc register defines
the programmable options for this port.
The function of the pins, PIDS and PODS, is programmable to support both the
The pin, PCSN, is an input that, when low, enables
PIDS and PODS (or PRWN and PDS, depending on the
protocol used). While PCSN is high, the DSP1629 ignores any activity on PIDS and/or PODS. If a DSP1629
is intended to be continuously accessed through the
PHIF port, PCSN should be grounded. If PCSN is low
and their respective bits in the inc register are set, the
Motorola
Intel
and
or
Intel
Motorola
microcontrol-
protocols.
DSP 7
SADD
SYNC
DO
ICK
SADD
DI
OCK
SYNC
Ω
5 k
5-4181 (F).a
assertion of PIDS and PODS by an external device
causes the DSP1629 device to recognize an interrupt.
Programmability
The parallel host interface can be programmed for 8-bit
or 16-bit data transfers using bit 0, PMODE, of the phifc
register. Setting PMODE selects 16-bit transfer mode.
An input pin controlled by the host, PBSEL, determines
an access of either the high or low bytes. The assertion
level of the PBSEL input pin is configurable in software
using bit 3 of the phifc register, PBSELF. Table 7 summarizes the port's functionality as controlled by the
PSTAT and PBSEL pins and the PBSELF and PMODE
fields.
For 16-bit transfers, if PBSELF is zero, the PIBF and
POBE flags are set after the high byte is transferred. If
PBSELF is one, the flags are set after the low byte is
transferred. In 8-bit mode, only the low byte is accessed, and every completion of an input or output access
sets PIBF or POBE.
Bit 1 of the phifc register, PSTROBE, configures the
port to operate either with an
Intel
protocol where only
the chip select (PCSN) and either of the data strobes
(PIDS or PODS) are needed to make an access, or with
a
Motorola
protocol where the chip select (PCSN), a
data strobe (PDS), and a read/write strobe (PRWN) are
needed. PIDS and PODS are negative assertion data
strobes while the assertion level of PDS is programmable through bit 2, PSTRB, of the phifc register.
DD
V
Lucent Technologies Inc.23
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
(continued)
Finally, the assertion level of the output pins, PIBF and POBE, is controlled through bit 4, PFLAG. When PFLAG is
set low, PIBF and POBE output pins have positive assertion levels. By setting bit 5, PFLAGSEL, the logical OR of
PIBF and POBE flags (positive assertion) is seen at the output pin PIBF. By setting bit 7 in phifc, PSOBEF, the polarity of the POBE flag in the status register, PSTAT, can be changed. PSOBEF has no effect on the POBE pin.
Pin Multiplexing
Please refer to Pin Multiplexing in Section 4.1 for a description of BIO, PHIF, VEC[3:0], and SIO2 pins.
Table 7. PHIF Function (8-bit and 16-bit Modes)
PMODE Field PSTAT PinPBSEL PinPBSELF Field = 0PBSELF Field = 1
101pdx0 high bytepdx0 low byte
110 PSTAT reserved
111reservedPSTAT
Table 8. pstat Register as Seen on PB[7:0]
Bit
Field
76543210
RSVDPIBFPOBE
4.9 Bit Input/Output Unit (BIO)
The BIO controls the directions of eight bidirectional
control I/O pins, IOBIT[7:0]. If a pin is configured as an
output, it can be individually set, cleared, or toggled. If a
pin is configured as an input, it can be read and/or tested.
The lower half of the sbit register (see Table 33) contains current values (VALUE[7:0]) of the eight bidirectional pins IOBIT[7:0]. The upper half of the sbit register
(DIREC[7:0]) controls the direction of each of the pins.
A logic 1 configures the corresponding pin as an output;
a logic 0 configures it as an input. The upper half of the
sbit register is cleared upon reset.
The cbit register (see Ta ble 34) c ontains tw o 8-bit fields,
MODE/MASK[7:0] and DATA/PAT[7:0]. The values of
DATA/PAT[7:0] are cleared upon reset. The meaning of
a bit in either field depends on whether it has been configured as an input or an output in sbit. If a pin has been
configured to be an output, the meanings are MODE
and DATA. For an input, the meanings are MASK and
PAT (pattern). Table 9 shows the functionality of the
MODE/MASK and DATA/PAT bits based on the direction selected for the associated IOBIT pin.
Those bits that have been configured as inputs can be
individually tested for 1 or 0. For those inputs that are
being tested, there are four flags produced: allt (all true),
allf (all false), somet (some true), and somef (some
false). These flags can be used for conditional branch or
special instructions. The state of these flags can be
saved and restored by reading and writing bits 0 to 3 of
the alf register (see Table 35).
0 (Input)00No Test
0 (Input)01No Test
0 (Input)10Test for Zero
0 (Input)11Test for One
≤
≤ n ≤≤≤≤
*0
7.
≤ ≤
If a BIO pin is switched from being configured as an output to being configured as an input and then back to being configured as an output, the pin retains the previous
output value.
Pin Multiplexing
Please refer to Pin Multiplexing in Section 4. 1 for a
description of BIO, PHIF, VEC[3:0], and SIO2 pins.
24Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
(continued)
4.10 Timer
The interrupt timer is composed of the timerc (control)
register, the timer0 register, the prescaler, and the
counter itself. The timer control register (see Table 31,
timerc Register) sets up the operational state of the timer and prescaler. The timer0 register is used to hold the
counter reload value (or period register) and to set the
initial value of the counter. The prescaler slows the
clock to the timer by a number of binary divisors to allow
for a wide range of interrupt delay periods.
The counter is a 16-bit down counter that can be loaded
with an arbitrary number from software. It counts down
to 0 at the clock rate provided by the prescaler. Upon
reaching 0 count, a vectored interrupt to program address 0x10 is issued to the DSP1629, providing the interrupt is enabled (bit 8 of inc and ins registers). The
counter will then either wait in an inactive state for another command from software, or will automatically repeat the last interrupting period, depending upon the
state of the RELOAD bit in the timerc register.
When RELOAD is 0, the counter counts down from its
initial value to 0, interrupts the DSP1629, and then
stops, remaining inactive until another value is written to
the timer0 register. Writing to the timer0 register causes
both the counter and the period register to be written
with the specified 16-bit number. When RELOAD is 1,
the counter counts down from its initial value to 0, interrupts the DSP1629, automatically reloads the specified
initial value from the period register into the counter,
and repeats indefinitely. This provides for either a single
timed interrupt event or a regular interrupt clock of arbitrary period.
The timer can be stopped and started by software, and
can be reloaded with a new period at any time. Its count
value, at the time of the read, can also be read by software. Due to pipeline stages, stopping and starting the
timer may result in one inaccurate count or prescaled
period. When the DSP1629 is reset, the bottom 6 bits of
the timerc register and the timer0 register and counter
are initialized to 0. This sets the prescaler to CKO/2*,
turns off the reload feature, disables timer counting, and
initializes the timer to its inactive state. The act of resetting the chip does not cause a timer interrupt. Note that
the period register is not initialized on reset.
The T0EN bit of the timerc register enables the clock to
the timer. When T0EN is a 1, the timer counts down towards 0. When T0EN is a 0, the timer holds its current
count.
* Frequency of CKO/2 is equivalent to either CKI/2 for the PLL by-
passed or related to CKI by the PLL multiplying factors. See Section 4.12, Clock Synthesis.
The PRESCALE field of the timerc register selects one
of 16 possible clock rates for the timer input clock (see
Table 31, timerc Register).
Setting the DISABLE bit of the timerc register to a logic
1 shuts down the timer and the prescaler for power savings. Setting the TIMERDIS, bit 4, in the powerc register
has the same effect of shutting down the timer. The
DISABLE bit and the TIMERDIS bit are cleared by writing a 0 to their respective registers to restore the normal
operating mode.
4.11 JTAG Test Port
The DSP1629 uses a JTAG/
wire test port (TDI, TDO, TCK, TMS, TRST) for self-test
and hardware emulation. An instruction register, a
boundary-scan register, a bypass register, and a device
identification register have been implemented. The device identification register coding for the DSP1629 is
shown in Table 37. The instruction register (IR) is 4 bits
long. The instruction for accessing the device ID is 0xE
(1110). The behavior of the instruction register is summarized in Table 10. Cell 0 is the LSB (closest to TDO).
The first line shows the cells in the IR that capture from
a parallel input in the capture-IR controller state. The
second line shows the cells that always load a logic 1 in
the capture-IR controller state. The third line shows the
cells that always load a logic 0 in the capture-IR controller state. Cell 3 (MSB of IR) is tied to status signal PINT,
and cell 2 is tied to status signal JINT. The state of these
signals can therefore be captured during capture-IR and
shifted out during SHIFT-IR controller states.
Boundary-Scan Register
All of the chip's inputs and outputs are incorporated in a
JTAG scan path shown in Table 11. The types of
boundary-scan cells are as follows:
■ I = input cell
■ O = 3-state output cell
■ B = bidirectional (I/O) cell
■ OE = 3-state control cell
■ DC = bidirectional control cell
IEEE
1149.1 standard five-
Lucent Technologies Inc.25
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
(continued)
Note that the direction of shifting is from TDI to cell 104 to cell 103 . . . to cell 0 of TDO.
* Please refer to Pin Multiplexing in Section 4.1 for a description of pin multiplexing of BIO, PHIF, VEC[3:0], and SIO2.
† Note that shifting a zero into this cell in the mode to scan a zero into the chip will disable the processor clocks just as the STOP pin will.
‡ When the JTAG SAMPLE instruction is used, this cell will have a logic one regardless of the state of the pin.
26Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
4.12 Clock Synthesis
CKI INPUT CLOCK
CKI
f
÷ N
Nbits[2:0]
PHASE
DETECTOR
(continued)
RING
OSCILLATOR
LOCK
(FLAG TO INDICATE LOCK
CONDITION OF PLL)
CHARGE
PUMP
÷ M
LOOP
FILTER
powerc
VCO
VCO CLOCK
VCO
f
SLOWCKI
SLOW CLOCK
f
÷ 2
PLLEN
INTERNAL
PROCESSOR
M
CKI
f
U
X
CLOCK
INTERNAL CLOCK
f
PLLSEL
pllc
PLL/SYNTHESIZER
LF[3:0]Mbits[4:0]
Figure 7. Clock Source Block Diagram
The DSP1629 provides an on-chip, programmable
clock synthesizer. Figure 7 is the clock source diagram.
The 1X CKI input clock, the output of the synthesizer, or
a slow internal ring oscillator can be used as the source
for the internal DSP clock. The clock synthesizer is
based on a phase-locked loop (PLL), and the terms
clock synthesizer and PLL are used interchangeably.
On powerup, CKI is used as the clock source for the
DSP. This clock is used to generate the internal processor clocks and CKO, where f
CKI
= f
. Setting the ap-
CKO
propriate bits in the pllc control register (described in
Table 32) will enable the clock synthesizer to become
the clock source. The powerc register, which is discussed in Section 4.13, can override the selection to
stop clocks or force the use of the slow clock for lowpower operation.
5-4520 (F)
PLL Control Signals
The input to the PLL comes from one of the three maskprogrammable clock options: CMOS, or small-signal.
The PLL cannot operate without an external input clock.
To use the PLL, the PLL must first be allowed to stabilize and lock to the programmed frequency. After the
PLL has locked, the LOCK flag is set and the lock detect
circuitry is disabled. The synthesizer can then be used
as the clock source. Setting the PLLSEL bit in the pllc
register will switch sources from f
CKI
to f
/2 without
VCO
glitching. It is important to note that the setting of the pllc
register must be maintained. Otherwise, the PLL will
seek the new set point. Every time the pllc register is
written, the LOCK flag is reset.
Lucent Technologies Inc.27
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
The frequency of the PLL output clock, f
(continued)
, is deter-
VCO
mined by the values loaded into the 3-bit N divider and
the 5-bit M divider. When the PLL is selected and
locked, the frequency of the internal processor clock is
related to the frequency of CKI by the following equations:
f
= f
.
CKI
* M/N
= f
CKO
VCO
= f
÷÷÷÷ 2
, must fall within the
VCO
VCO
must be at
VCO
INTERNAL CLOCK
f
The frequency of the VCO, f
range listed in Table 63. Also note that f
least twice f
CKI
The coding of the Mbits and Nbits is described as follows:
Mbits = M −
− 2
− −
if (N = 1)
Nbits = 0x7
else
Nbits = N −
− 2
− −
where N ranges from 1 to 8 and M ranges from 2 to 20.
The loop filter bits LF[3:0] should be programmed ac-
cording to Table 64.
Two other bits in the pllc register control the PLL. Clearing the PLLEN bit powers down the PLL; setting this bit
powers up the PLL. Clearing the PLLSEL bit deselects
the PLL so that the DSP is clocked by a 1X version of
the CKI input; setting the PLLSEL bit selects the PLLgenerated clock for the source of the DSP internal processor clock. The pllc register is cleared on reset and
powerup. Therefore, the DSP comes out of reset with
the PLL deselected and powered down. M and N should
be changed only while the PLL is deselected. The values of M and N should not be changed when powering
down or deselecting the PLL.
As previously mentioned, the PLL also provides a user
flag, LOCK , to indicate w hen the loop has locked. Wh en
this flag is not asserted, the PLL output is unstable. The
DSP should not be switched to the PLL-based clock
without first checking that the lock flag is set. The lock
flag is cleared by writing to the pllc register. When the
PLL is deselected, it is necessary to wait for the PLL to
relock before the DSP can be switched to the PLLbased clock. Before the input clock is stopped, the PLL
should be powered down. Otherwise, the LOCK flag will
not be reset and there may be no way to determine if the
PLL is stable, once the input clock is applied again.
The lock-in time depends on the frequency of operation
and the values programmed for M and N (see Table 64).
28Lucent Technologies Inc.
Data Sheet
March 2000DSP1629 Digital Signal Processor
4 Hardware Architecture
(continued)
PLL Programming Examples
The following section of code illustrates how the PLL would be initialized on powerup, assuming the following operating conditions:
■ CKI input frequency = 10 MHz
■ Internal clock and CKO frequency = 50 MHz
■ VCO frequency = 100 MHz
■ Input divide down count N = 2 (Set
■ Feedback down count M = 20 (Set
Nbits[2:0]
Mbits[4:0]
= 000 to get N = 2, as described in Table 32.)
= 10010 to get M = 18 + 2 = 20, as described in Table 32.)
The device would come out of reset with the PLL disabled and deselected.
pllinit: pllc = 0x2912/* Running CKI input clock at 10 MHz, set up counters in PLL */
pllc = 0xA912 /* Power on PLL, but PLL remains deselected */
call pllwait/* Loop to check for LOCK flag assertion */
pllc = 0xE912 /* Select high-speed, PLL clock */
goto start/* User's code, now running at 50 MHz */
pllwait: if lock return
goto pllwait
Programming examples which illustrate how to use the PLL with the various power management modes are listed
in Section 4.13.
Latency
The switch between the CKI-based clock and the PLL-based clock is synchronous. This method results in the actual
switch taking place several cycles after the PLLSEL bit is changed. During this time, actual code can be executed,
but it will be at the previous clock rate. Table 12 shows the latency times for switching between CKI-based and PLLbased clocks. In the example given, the delay to switch to the PLL source is 1—4 CKO cycles and to switch back is
11—31 CKO cycles.
Table 12. Latency Times for Switching Between CKI and PLL-Based Clocks
Minimum Latency (Cycles)Maximum Latency (Cycles)
Switch to PLL-Based Clock
Switch from PLL-based Clock
1N + 2
M/N + 1M + M/N + 1
Frequency Accuracy and Jitter
When using the PLL to multiply the input clock frequency up to the instruction clock rate, it is important to realize
that although the average frequency of the internal clock and CKO will have about the same relative accuracy as
the input clock, noise sources within the DSP will produce jitter on the PLL clock such that each individual clock
period will have some error associated with it. The PLL is guaranteed only to have sufficiently low jitter to operate
the DSP, and thus, this clock should not be used as an input to jitter-sensitive devices in the system.
V
and V
DDA
The PLL has its own power and ground pins, V
form of a ferrite bead connected from V
a 0.01 µF ceramic) from V
Connections
SSA
to VSS. V
DDA
and V
DDA
to VDD and two decoupling capacitors (4.7 µF tantalum in parallel with
DDA
can be connected directly to the main ground plane. This recommen-
SSA
. Additional filtering should be provided for V
SSA
DDA
in the
dation is subject to change and may need to be modified for specific applications depending on the characteristics
of the supply noise.
Note:
For devices with the CMOS clock input option, the CKI2 pin should be connected to V
SSA
.
Lucent Technologies Inc.29
Data Sheet
DSP1629 Digital Signal ProcessorMarch 2000
4 Hardware Architecture
(continued)
4.13 Power Management
There are three different control mechanisms for putting
the DSP1629 into low-power modes: the powerc control
register, the STOP pin, and the AWAIT bit in the alf register. The PLL can also be disabled with the PLLEN bit
of the pllc register for more power saving.
Powerc Control Register Bits
The powerc register has 10 bits that power down various portions of the chip and select the clock source:
XTLOFF:
small-signal input circuit, disabling the internal processor clock. Since the small-signal input circuit takes
many cycles to stabilize, care must be taken with the
turn-on sequence, as described later.
SLOWCKI:
ring oscillator as the clock source for the internal processor clock instead of CKI or the PLL. When CKI or the
PLL is selected, the ring oscillator is powered down.
Switching of the clocks is synchronized so that no partial or short clock pulses occur. Two nops should follow
the instruction that sets or clears SLOWCKI.
NOCK:
off the internal processor clock, regardless of whether
its source is provided by CKI, the PLL, or the ring oscillator. The NOCK bit can be cleared by resetting the chip
with the RSTB pin, or asserting the INT0 or INT1 pins.
Two nops should follow the instruction that sets NOCK.
The PLL remains running, if enabled, while NOCK is
set.
INT0EN:
clear the NOCK bit, thereby allowing the device to continue program execution from where it left off without
any loss of state. No chip reset is required. It is recommended that, when INT0EN is to be used, the INT0
interrupt be disabled in the inc register so that an unintended interrupt does not occur. After the program resumes, the INT0 interrupt in the ins register should be
cleared.
INT1EN:
NOCK clear, exactly like INT0EN previously described.
The following control bits power down the perip heral
I/O units of the DSP. These bits can be used to further
reduce the power consumption during standard sleep
mode.
Assertion of the XTLOFF bit powers down the
Assertion of the SLOWCKI bit selects the
Assertion of the NOCK bit synchronously turns
This bit allows the INT0 pin to asynchronously
This bit enables the INT1 pin to be used as the
SIO1DIS:
unit. It disables the clock input to the unit, thus eliminating any sleep power associated with the SIO1. Since
the gating of the clocks may result in incomplete transactions, it is recommended that this option be used in
applications where the SIO1 is not used or when reset
may be used to reenable the SIO1 unit. Otherwise, the
first transaction after reenabling the unit may be corrupted.
SIO2DIS:
way SIO1DIS powers down the SIO1.
PHIFDIS:
host interface. It disables the clock input to the unit, thus
eliminating any sleep power associated with the PHIF.
Since the gating of the clocks may result in incomplete
transactions, it is recommended that this option be used
in applications where the PHIF is not used, or when reset may be used to reenable the PHIF. Otherwise, the
first transaction after reenabling the unit may be corrupted.
TIMERDIS:
the clock input to the timer unit. Its function is identical
to the DISABLE field of the timerc control register. Writing a 0 to the TIMERDIS field will continue the timer operation.
Figure 8 shows a functional view of the effect of the bits
of the powerc register on the clock circuitry. It shows
only the high-level operation of each bit. Not shown are
the bits that power down the peripheral units.
STOP Pin
Assertion (active-low) of the STOP pin has the same effect as setting the NOCK bit in the powerc register. The
internal processor clock is synchronously disabled until
the STOP pin is returned high. Once the STOP pin is returned high, program execution will continue from
where it left off without any loss of state. No chip reset
is required. The PLL remains running, if enabled, during
STOP assertion.
The pllc Register Bits
The PLLEN bit of the pllc register can be used to power
down the clock synthesizer circuitry. Before shutting
down the clock synthesizer circuitry, the system clock
should be switched to either CKI using the PLLSEL bit
of pllc, or to the ring oscillator using the SLOWCKI bit of
powerc.
This is a powerdown signal to the SIO1 I/O
This bit powers down the SIO2 in the same
This is a powerdown signal to the parallel
This is a timer disable signal which disables
30Lucent Technologies Inc.
Loading...
+ 96 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.