Unit 3
Programmable Digital Signal Processors
• Commercial digital signal processing
devices
10/8/2015
TMS320C54xx Internal Block Diagram
• Memory Access
– 4 16 bit internal bus pairs
– C,D for data read
– E for data write
– P for program
• Others
– 2 40-bit Accumulator.
– 40-bit Barrel shifter
– 40-bit ALU
– 17bx17b multiplier and 40b dedicated adder perform a non
pipelined single-cycle MAC
– Compare, select and store unit
– Exponent adder
– DAGEN and PAGEN
Status register
Temporary register
Functional diagram of Central processing
unit
12/8/2015
Functional diagram of Barrel shifter
Functional diagram of multiplier/adder unit
14/8/2015
Internal memory mapped (CPU) registers
Peripheral registers
Processor mode status register(PMST)
• Data addressing modes
17/8/2015
Immediate and Accumulator Addressing
• The instruction syntax contains the specific value of the
operand
– LD #80h, A
• Immediate values can be 3,5,8,9, or 16 bits in length
• Accumulator addressingUses the accumulator as an address
– READA Smem
EE201A, Spring 2003, Yung-Szu Tu, Chun-
15
Ching, UCLA - Memory Addressing
Absolute addressing
• Addresses are always 16 bits long, addressing types
depend on instructions
• Data-memory address (dmad) addressing uses a specific
value to specify an address in data space
– MVKD SAMPLE, *AR5
• Program-memory address (pmad) addressing uses a
specific value to specify an address in data space
– MVPD TABLE, *AR7-
• Port address (PA) addressing uses a specific value to
specify an external I/O port address
– PORT FIFO, *AR5
• *(lk) addressing uses a specific value to specify an address
in data space
– Instructions with ingle data-memory operand
EE201A, Spring 2003, Yung-Szu Tu, Chun-
16
– LD *(BUFFER), A Ching, UCLA - Memory Addressing
Direct addressing
• Uses the accumulator
as an address
– READA Smem
• With direct addressing,
Instructions contain the
lower 7 bits of the data-
memory address (dma)
– Combined with a base address, data-
page pointer (DP) or stack pointer (SP)
to form a 16-bit data-memory address
– ADD SAMPLE, B
– DR-referenced
– SP-referenced
EE201A, Spring 2003, Yung-Szu Tu, Chun-
17
Ching, UCLA - Memory Addressing
Memory-mapped register addressing
• Used to modify the memory-mapped registers
without affecting the current data-page
pointer (DP) or stack-pointer (SP)
– Overhead for writing to a register is minimal
– Works for direct and indirect addressing
– SCRATCH-PAD ram LOCATED ON DATA PAGE 0 CAN BE MODIFIED
• STM #x, DIRECT
• STM #tbl, AR1
EE201A, Spring 2003, Yung-Szu Tu, Chun-
18
Ching, UCLA - Memory Addressing
Stack addressing
• Used to automatically store the program
counter during interrupts and subroutines
• Can be used to store additional items of
context or to pass data values
• Uses a 16-bit memory-mapped register, the
stack pointer (SP)
• PSHD X2
EE201A, Spring 2003, Yung-Szu Tu, Chun-
19
Ching, UCLA - Memory Addressing
Indirect addressing
• 8 auxiliary registers (AR), and 2 auxiliary
register arithmetic units (ARAU)
19/8/2015
EE201A, Spring 2003, Yung-Szu Tu, Chun- Example 5.1 20
Ching, UCLA - Memory Addressing
Indirect addressing (cont’d)
EE201A, Spring 2003, Yung-Szu Tu, Chun-
21
Ching, UCLA - Memory Addressing
Indirect addressing (cont’d)
• Circular address modifications (MOD=8,9,10,11 or 14) for
convolution, correlation, FIR filters, etc.
– Circular buffer is a sliding window containing the most recent data
• Circular-buffer size register (BK) specifies the size of the
circular 2buffer
N
> R
– Circular buffer of size R must start on a N-bit boundary, where
– 32-word circular buffer starts at xxxx xxxx xx00 0000
– BK=32
– Index is the N LSBs
of ARx
– Index is incremented
or decremented by
step
EE201A, Spring 2003, Yung-Szu Tu, Chun-
22
Ching, UCLA - Memory Addressing
Indirect addressing (cont’d)
Example 5.2,5.3
EE201A, Spring 2003, Yung-Szu Tu, Chun-
23
Ching, UCLA - Memory Addressing
Indirect addressing (cont’d)
• Bit-Reversed Address Modifications (MOD=4
or 7) N N- 1
2 2
– Enhances execution speed and program memory for FFT algorithms that use a
variety of radixes
• Assume FFT size is , then AR0=
– An ARx points to the physical location of a data value
EE201A, Spring 2003, Yung-Szu Tu, Chun-
24
Ching, UCLA - Memory Addressing
Dual operand addressing
• Memory space
24/8/2015
Example 5.4,5.5
• Program Control
It contains program counter (PC), the program counter related H/W, hard
stack, repeat counters &status registers.
PC addresses memory in several ways namely:
Branch: The PC is loaded with the immediate value following the branch
instruction
Subroutine call: The PC is loaded with the immediate value following the
call instruction
Interrupt: The PC is loaded with the address of the appropriate interrupt
vector.
Instructions such as BACC, CALA, etc ;The PC is loaded with the
contents of the accumulator low word
End of a block repeat loop: The PC is loaded with the contents of the block
repeat program address start register.
Return: The PC is loaded from the top of the stack.