
Data Sheet
June 2001
DSP16410B Digital Signal Processor
Agere Systems Inc.
Agere Systems—Proprietary
Use pursuant to Company instructions
149
4 Hardware Architecture
(continued)
4.15 Parallel Interface Unit (PIU)
(continued)
4.15.6 Host Command Examples
4.15.6.1 Download of Program or Data
This example illustrates a host download to DSP16410B TPRAM1 (CORE1) memory. Download will begin at
address 0x0 in TPRAM1 and proceed for 1000 16-bit words. For all the following steps, the host must observe
proper flow control.
1. First, the host must write the starting address into the
PA
register. The starting address is location 0x0 in
TPRAM1, so the host issues the following two host write commands:
write_pah 0x0010
write_pal 0x0
// Host sets PADD[3:0] to 0x8 and writes 0x0010 to PD[15:0]
// Host sets PADD[3:0] to 0xA and writes 0x0 to PD[15:0]
2. Next, the host begins to write the data to TPRAM1. This is done by repeatedly issuing the following command
999 times. Each iteration writes the appropriate data to be loaded to each sequential 16-bit location in TPRAM1.
write_pdi++ data
// Host sets PADD[3:0] to 0x1 and writes data to PD[15:0]
3. For the write of the last data word (in this example, the 1000th word), the host issues the following command:
write_pdi data_
// Host sets PADD[3:0] to 0x0 and writes data_ to PD[15:0]
4.15.6.2 Upload of Data
This example illustrates a host upload from DSP16410B TPRAM0 (CORE0) memory. The upload begins at
address 0x0200 in TPRAM0 and proceeds for 160 16-bit words. For all the following steps, the host must observe
proper flow control.
1. First, the host must write the starting address into the
PA
register. The starting address is location 0x0200 in
TPRAM0, so the host issues the following two host write commands:
write_pah 0x0
write_pal 0x0200
// Host sets PADD[3:0] to 0x8 and writes 0x0 to PD[15:0].
// Host sets PADD[3:0] to 0xA and writes 0x0200 to PD[15:0].
2. Next, the host begins to read the data from TPRAM0, as transferred to the PIU’s
PDO
register via the DMAU.
This is done by first issuing the following command which drives PD[15:0] with the data from TPRAM0 address
0x00200:
read_pdo++
// Host sets PADD[3:0]=0x1 and reads data (address 0x00200) on PD[15:0].
// (PIU requests DMAU to fetch single word from address 0x00200.)
3. The host then issues the following commands. Because the address is initially misaligned, the first command
causes the PIU to request the DMAU to fetch a single word. For the remaining commands, the PIU requests the
DMAU to fetch a double word for every other command.
rdpf_pdo++
// Host sets PADD[3:0]=0x3 and reads data (address 0x00201) on PD[15:0].
// (PIU requests DMAU to fetch single word from address 0x00201.)
// Host sets PADD[3:0]=0x3 and reads data (address 0x00202) on PD[15:0].
// (PIU requests DMAU to fetch double word from address 0x00202.)
// Host sets PADD[3:0]=0x3 and reads data(address 0x00203)on PD[15:0].
rdpf_pdo++
rdpf_pdo++
// Repeat rdpf_pdo++ command 156 more times for a total of 159 times.
Note:
The host
must not
issue a command that reads or writes
PA
,
PCON
,
HSCRATCH,
or
DSCRATCH
within a
series of
rdpf_pdo++
commands.