
Data Sheet
June 2001
DSP16410B Digital Signal Processor
Agere Systems Inc.
Agere Systems—Proprietary
Use pursuant to Company instructions
97
4 Hardware Architecture
(continued)
4.13 Direct Memory Access Unit (DMAU)
(continued)
4.13.9 Programming Examples
(continued)
4.13.9.2 SWT Example 2: A One-Dimensional
Array
(continued)
The user software running in CORE1 must perform the
following steps to properly initialize SWT3:
1. The user software sets the destination address
(
DADD3
—
Table 37 on page 76
) and the destination
base address (
DBAS3
—
Table 45 on page 80
) to the
top of the input (destination) array located in
TPRAM1. The user software writes 0x00101000 to
DADD3
and 0x01000 to
DBAS3
.
2. The user software clears the destination counter
(
DCNT3
—
Table 40 on page 78
).
3. The user software initializes the limit register
(
LIM3
—
Table 42 on page 79
) with the dimensions of
the array. The number of rows (or elements) is 160,
so the user software writes 159 (r – 1) into the
LASTROW[12:0] field (
LIM3
[19:7]). The number of
columns is 4, so the user software writes 3 (n – 1)
into the LASTCOL[6:0] field (
LIM3
[6:0]). The user
software writes 0x04F83 to
LIM3
.
4. The user software writes the control registers to
enable SWT3 and begin I/O processing. First, the
user software writes two into the POSTMOD[1:0]
field (
CTL3
[5:4]—
Table 34 on page 73
) to enable
one-dimensional array accesses, writes 0x4 to the
SIGCON[2:0] field (
CTL3
[3:1]), and writes 1 to the
AUTOLOAD field (
CTL3
[0]) so that no further core
interaction is needed. The user software writes
0x0029 to
CTL3
.
5. Finally, the user software sets the DRUN3 field
(
DMCON0
[7]—
Table 31 on page 70
) to enable
SWT3 destination transfers. The user software
writes 0x0080 to
DMCON0
.
The DMAU begins processing the SWT3 input channel
and performs the following steps:
1. It receives data from SIU1 and writes it to the single-
word TPRAM1 location pointed to by
DADD3
(0x00101000). This data is the first input sample for
the first buffer (ROW = 0 and COL = 0).
2. It increments
DADD3
by one, so
DADD3
contains
0x00101001 and points to the second input sample
for the first buffer (ROW = 1 and COL = 0). It
updates
SCNT3
by incrementing the row counter, so
SCNT3
contains 0x00080.
3. It receives data from SIU1 and writes it to the single-
word TPRAM1 location pointed to by
DADD3
(0x00101001).
The DMAU continues processing in this manner until it
fills row 159 of column 0. At this point, ROW =
LASTROW and COL = 0. Because this condition is
met and SIGCON[2:0] = 0x4, the DMAU asserts the
DDINT3 interrupt to CORE1. CORE1 can begin pro-
cessing the first buffer while the DMAU continues to fill
the second buffer.