Vodafone Chair Mobile Communications Systems, Prof. Dr.-Ing. G. Fettweis
chair
Digital Signal Transmission Lab
SS 08
Oliver Arnold
Steffen Kunze
chair
Hardware
TU Dresden, 4/29/2008
Slide 3
Digital Signal Processing (DSP)
chair
Wireless / Cellular
HDD
„ PRML read channel
„ MR pre-amp
„ Voice-band audio
„ RF codecs
„ Voltage regulation
„ Servo control
„ SCSI tranceivers
Consumer Audio
DSP:
Technology
Enabler
Automotive
„ Digital radio A/D/A
„ Active suspension
„ Voltage regulation
„ Stereo A/D, D/A
„ PLL
„ Mixers
Multimedia
„ Stereo audio
„ Imaging
„ Graphics palette
„ Voltage regulation
DTAD
„ Speech synthesizer
„ Mixed-signal
processor
TU Dresden, 4/29/2008
Slide 4
System Considerations
chair
Performance
Interfacing
Power
Size
Ease-of Use
• Programming
• Interfacing
Integration
• Memory
• Peripherals
Cost
• Device cost
• System cost
• Development cost
• Time to market
• Debugging
TU Dresden, 4/29/2008
Slide 5
Why Go Digital?
chair
ƒ Digital signal processing techniques are now
so powerful that sometimes it is extremely
difficult, if not impossible, for analogue signal
processing to achieve similar performance.
ƒ Examples:
‰ FIR filter with linear phase
‰ Adaptive filters
TU Dresden, 4/29/2008
Slide 6
Why Go Digital?
chair
ƒ Analogue signal processing is achieved by
using analogue components such as:
‰ Resistors
‰ Capacitors
‰ Inductors
ƒ The inherent tolerances associated with
these components, temperature, voltage
changes and mechanical vibrations can
dramatically affect the effectiveness of the
analogue circuitry
TU Dresden, 4/29/2008
Slide 7
Why Go Digital?
chair
ƒ With DSP? - It is easy to:
‰ Change applications
‰ Correct applications
‰ Update applications
ƒ Additionally DSPs reduce:
‰ Noise susceptibility
‰ Chip count
‰ Development time
‰ Cost
‰ Power consumption
TU Dresden, 4/29/2008
Slide 8
chair
General Introduction to DSPs
TU Dresden, 4/29/2008
Slide 9
What Problem Are We Trying To Solve?
chair
x
Y
ADC
DAC
DSP
Digital sampling of
an analog signal:
Most DSP algorithms can be
expressed as:
count
A
Y = Σ ai * xi
i = 1
for (i = 1; i < count; i++){
sum += m[i] * n[i]; }
t
TU Dresden, 4/29/2008
Slide 10
What are the typical DSP algorithms?
chair
ƒ The Sum of Products (SOP) is the key element in
most DSP algorithms:
Algorithm
Equation
M
y(n) = a x(n − k)
∑
k
Finite Impulse Response Filter
k=0
M
N
y(n)= ak x(n − k)+ bk y(n − k)
∑
∑
Infinite Impulse Response Filter
Convolution
k=0
k=1
N
y(n)= x(k)h(n − k)
∑
k=0
N−1
X (k) =
x(n)exp[− j(2π / N)nk]
∑
Discrete Fourier Transform
Discrete Cosine Transform
n=0
N −1
π
⎡
⎤
F
(
u
)
=
c(u). f (x).cos
u
(
2x +1
)
∑
⎢
⎥
2N
⎣
⎦
x=0
TU Dresden, 4/29/2008
Slide 11
Why do we need DSP processors?
chair
ƒ Use a DSP processor when the following
are required:
‰ Cost saving
‰ Smaller size
‰ Low power consumption
‰ Processing of many “high” frequency signals in
real-time
ƒ Use a GPP processor when the following
are required:
‰ Large memory
‰ Advanced operating systems
TU Dresden, 4/29/2008
Slide 12
Hardware vs. Microcode multiplication
chair
ƒ DSP processors are optimized to perform
multiplication and addition operations.
ƒ Multiplication and addition are done in
hardware and in one cycle.
ƒ Example: 4-bit multiply (unsigned).
Hardware
Microcode
1011
1011
x 1110
x 1110
10011010
0000 Cycle 1
1011. Cycle 2
1011.. Cycle 3
1011... Cycle 4
10011010 Cycle 5
TU Dresden, 4/29/2008
Slide 13
General Purpose DSP vs. DSP in ASIC
chair
ƒ Application Specific Integrated Circuits
(ASICs) are semiconductors designed for
dedicated functions.
ƒ The advantages and disadvantages of using
ASICs are listed below:
Advantages
Disadvantages
• High throughput
• Lower silicon area
• Lower power consumption
• Improved reliability
• Reduction in system noise
• Low overall system cost
• High investment cost
• Less flexibility
• Long time from design to
market
TU Dresden, 4/29/2008
Slide 14
Floating vs. Fixed point processors
chair
ƒ Applications which require:
‰ High precision
‰ Wide dynamic range
‰ High signal-to-noise ratio
‰ Ease of use
ÎNeed a floating point processor
ƒ Drawback of floating point processors:
‰ Higher power consumption
‰ Usually higher cost
‰ Usually slower than fixed-point counterparts and
larger in size
TU Dresden, 4/29/2008
Slide 15
chair
TMS320C6711 Architectural Overview
TU Dresden, 4/29/2008
Slide 16
General DSP System Block Diagram
chair
Internal Memory
Internal Buses
P
E
R
I
P
H
E
R
A
L
S
External
Memory
Central
Processing
Unit
TU Dresden, 4/29/2008
Slide 17
‘6711 CPU Overview
chair
ƒ Specification
‰ Clock Rate: 100/150 MHz Î 600/900 MFLOPS
‰ 0.18-μm/5-Level Metal Process – CMOS Technology
ƒ CPU has got two Datapaths, altogether:
‰ Four ALUs (Floating- and Fixed-Point)
‰ Two ALUs (Fixed-Point)
‰ Two Multipliers (Floating- and Fixed-Point)
‰ Load-Store Architecture
‰ 2*16 32-Bit General-Purpose Registers
TU Dresden, 4/29/2008
Slide 18
‘6711 CPU Overview
chair
ƒ VelociTI Î advanced very-long instruction words (VLIW)
‰ Program Memory Width is 256 Bit
‰ Up to 8 32-Bit instructions can be executed in parallel/Cycle
‰ 16, 32 and 40 bit fixed point operands
‰ 32 and 64 bit floating point operands
‰ Instruction parallelism is detected at compile-time
ƒ no data dependency checking is done in Hardware.
‰ Instruction Packing Reduces Code Size
‰ All operations work on registers
Memory Architecture
‰ 4K-Byte L1P Program Cache (Direct Mapped)
‰ 4K-Byte L1D Data Cache (2-Way Set-Associative)
‰ 64K-Byte L2 Unified Mapped RAM/L2 Cache (Flexible Data/Program
Allocation)
TU Dresden, 4/29/2008
Slide 19
Functional Block and CPU Diagram
chair
TU
Slide 20
A ‘6711 Datapath
chair
ƒ .S & .L
‰ Arithmetic, Logical
& Branch functions
ƒ .M
‰ Multiply, Rotation,
Bit expansion
ƒ .D
‰ Data-addressing
‰ Only way to access
memory
ƒ Cross path
TU Dresden, 4/29/2008
Slide 21
Functional Units and Operations Performed
chair
TU Dresden, 4/29/2008
Slide 22
C6700: Instruction Set
chair
.S Unit
.L Unit
ABS
ADD
NOT
NEG
NOT
OR
ABSSP
ADDSP
ADDDP
SUBSP
SUBDP
INTSP
ADD
ADDK
ADD2
AND
B
OR
ABSDP
AND
SADD
SAT
SSUB
SUB
SUBC
XOR
ZERO
CMPGTSP
CMPEQSP
CMPLTSP
CMPGTDP
CMPEQDP
CMPLTDP
RCPSP
.S
CMPEQ
CMPGT
CMPLT
LMBD
MV
SET
SHL
CLR
EXT
MV
MVC
MVK
MVKH
SHR
SSHL
SUB
SUB2
XOR
ZERO
INTDP
SPINT
DPINT
SPRTUNC
DPTRUNC
DPSP
.L
NEG
NORM
RCPDP
RSQRSP
RSQRDP
SPDP
.D
.M Unit
MPY
SMPY
SMPYH MPYDP
MPYI
MPYSP
.D Unit
MPYH
MPYLH
MPYHL
.M
ADD
NEG
STB
SUB
MPYID
ADDAB (B/H/W)
(B/H/W)
LDB
LDDW
MV
(B/H/W)
No Unit Used
SUBAB (B/H/W)
ZERO
NOP
IDLE
TU Dresden, 4/29/2008
Slide 23
'C6x System Block Diagram
r
Program
RAM
Data Ram
Addr
Internal Buses
DMA
D (32)
EMIF
Serial Port
Host Port
Boot Load
Timers
.D1 .D2
.M1 .M2
.L1 .L2
Ext’l
Memory
- Sync
- Async
.S1 .S2
Control Regs
CPU
Pwr Down
TU Dresden, 4/29/2008
Slide 24
‘C6000 Internal Buses
chair
Program Addr
Program Data
x32
PC
x256
Internal
Memory
Data Addr - T1
Data Data - T1
x32
A
regs
x32/64
External
Memory
Data Addr - T2
Data Data - T2
x32
B
regs
x32/64
DMA Addr - Read
DMA Data - Read
x32
x32
Peripherals
DMA
DMA Addr - Write
DMA Data - Write
x32
x32
TU Dresden, 4/29/2008
Slide 25
How are Peripherals Controlled?
chair
ƒ Control and configuration of internal peripherals is
done by memory mapped control registers
ƒ There is a separate memory mapped register file of
control registers
Example of Timer mode control register:
31
11
10
9
8
12
Rsvd
TSAT INVIMP CLKSRC C/P
7
6
5
4
3
2
1
0
HLD GO Rsvd PWID DATIN DATOUT INVOUT Func
TU Dresden, 4/29/2008
Slide 26
‘C6711 Memory Map
chair
0000_0000
64K x 8 Internal
External Memory
‹ Async (SRAM, ROM, etc.)
(L2 cache)
Byte Address
‹ Sync (SBSRAM, SDRAM)
0180_0000
Internal Memory
‹ Unified (data or prog)
‹ 4 blocks - each can be
RAM or cache
On-chip Peripherals
8000_0000
9000_0000
A000_0000
B000_0000
0
1
2
3
256M x 8 External
256M x 8 External
256M x 8 External
256M x 8 External
Level 1 Cache
‹ 4KB Program
4K
P
‹ 4KB Data
‹ Not in map
L2
CPU
64K
4K
D
FFFF_FFFF
TU Dresden, 4/29/2008
Memory Map
chair
0000_0000
16MB SDRAM
64KB Internal
(Progam or Data)
128K byte FLASH
4 byte I/O Port
0180_0000
On-chip Periph
9008_0000
ŠLED’s
ŠSwitches
8000_0000
9000_0000
A000_0000
B000_0000
ŠDSK status
ŠDSK rev#
ŠDaughter Card
256MB External
256MB External
256MB External
256MB External
Available via
Daughter Card
Connector
FFFF_FFFF
TU Dresden, 4/29/2008
Slide 28
Operands
chair
ƒ Operands can be
‰ 5-bit constants (or 16-bit in some special instruct.)
‰ 32-bit Registers
‰ 40-bit Registers
‰ 64-bit Registers
ƒ A 40-bit or a 64-bit register can be obtained by
concatenating two registers
‰ The registers must be from the same side
‰ The first register must be even and the second odd (e.g.
A1:A0, B9:B8 or A15:A14)
‰ The registers must be consecutive
TU Dresden, 4/29/2008
Slide 29
Conditional execution
chair
ƒ All instructions in each Functional Unit of both Data
paths can be executed conditionally
ƒ Only the Registers A1, A2, B0, B1, B2 can hold the
condition
ƒ Conditional Execution uses the Syntax
[!condition] Instruction
e.g
[!B0] ADD.L1 A1,A2,A3 ; add if B0 ==0
[B0] ADD.L1 A1,A2,A3 ; add if B0 != 0
TU Dresden, 4/29/2008
Slide 30
Branches
chair
ƒ Branches are required to realize loops and change
the program flow
ƒ Branches are very useful in conjunction with
conditional execution
ƒ There are two branch types supported:
‰ Relative Branching
‰ Absolute Branching
TU Dresden, 4/29/2008
Slide 31
More on the Branch Instruction (1)
chair
‹ With this processor all the instructions are encoded
in a 32-bit.
‹ Therefore the label must have a dynamic range of
less than 32-bit as the instruction B has to be
coded.
32-bit
21-bit relative address
B
‹ Case 1:
B .S1
label
‹ Relative branch.
‹ Label limited to +/- 220 offset.
TU Dresden, 4/29/2008
Slide 32
More on the Branch Instruction (2)
chair
‹ By specifying a register as an operand instead of
a label, it is possible to have an absolute branch.
‹ This will allow a dynamic range of 232.
32-bit
5-bit register
B
code
‹ Case 2:
B .S2 register
‹ Absolute branch.
‹ Operates on .S2 ONLY!
TU Dresden, 4/29/2008
Slide 33
Getting Data from the Memory
chair
ƒ All Instructions work exclusively on Registers
ƒ The .D Units in the Data-Paths are used to load and
store the required Data from and to the Memory
ƒ Load and Store Instructions use an Address
operator X:
TU Dresden, 4/29/2008
Slide 34
Addressing Modes
chair
ƒ There are two addressing modes supported:
‰ Linear Addressing
‰ Circular Addressing (e.g. Convolution)
ƒ Circular Addressing supports block sizes 2N
ƒ Only the lower N bits of the Address are modified by address
arithmetic. This equals mod(2N) operations.
ƒ The addressing mode is selected by control register
„AMR‘
ƒ Operands for CA are limited to A4-A7, B4-B7
TU Dresden, 4/29/2008
Slide 35
Floating vs. Fixed point processors
chair
ƒ Fixed point arithmetic
‰ 16-bit (integer or fractional)
‰ Signed or unsigned
ƒ Floating point arithmetic
‰ 32-bit single precision
‰ 64-bit single precision
N −1
ƒ Using signed and unsigned integers:
‰ Multiplication overflow.
‰ Addition overflow
y
(
n
)
= a
(
k
)
x
(
n − k
)
∑
k=0
Î Saturate the result
Î Double precision result
Î Fractional arithmetic
e.g. If A and B are fractional then: A x B < min(A, B)
TU Dresden, 4/29/2008
Slide 36
C6000 C Data Types
chair
Type
Size
Representation
char, signed char
unsigned char
short
unsigned short
int, signed int
unsigned int
8 bits
8 bits
16 bits
16 bits
32 bits
32 bits
ASCII
ASCII
2’s complement
binary
2s complement
binary
long, signed long 40 bits
2’s complement
binary
unsigned long
enum
40 bits
32 bits
32 bits
64 bits
64 bits
32 bits
2’s complement
IEEE 32-bit
IEEE 64-bit
IEEE 64-bit
binary
float
double
long double
pointers
TU Dresden, 4/29/2008
Slide 37
Numerical Issues - Useful Tips
chair
ƒ Multiply by 2:
ƒ Divide by 2:
ƒ Log2N:
Use shift left
Use shift right
Use shift
ƒ Sine, Cosine, Log: Use look up tables
ƒ To convert a fractional number to hex:
‰ Num x 215
‰ Then convert to hex
e.g: convert 0.5 to hex
‰ 0.5 x 215 = 16384
‰ (16384)dec = (0x4000)hex
TU Dresden, 4/29/2008
Slide 38
Numerical Issues - 32-bit Multiplication
chair
ƒ It is possible to perform 32-bit multiplication
using 16-bit multipliers.
ƒ Example: c = a x b (with 32-bit values).
a = ah
bh
al
bl
b =
32-bits
a * b = (ah << 16 + al)* (bh << 16 + bl)
= [(ah * bh) << 32] + [(al * bh) << 16] +
[(ah * bl) << 16] + [al * bl ]
TU Dresden, 4/29/2008
Slide 39
chair
Selected ‘6711 Peripherals
TU Dresden, 4/29/2008
Slide 40
C6000 Peripherals
chair
XB
Internal
Memory
Host μC
Host Port
PCI
External
Memory
16/32
EMIF
Internal Buses
McBSPs
.D1 .D2
.M1 .M2
.L1 .L2
EDMA
DMA
Boot Loader
.S1 .S2
Timer/Count
PLL
CPU
TU Dresden, 4/29/2008
Slide 41
The McBSP
chair
ƒ Multichannel Buffered Serial Port
ƒ Up to 100 Mb/sec performance
ƒ 2 (or 3) full-duplex, synchronous serial-ports
ƒ Enables direct interfacing to industry standard
Codecs, Analog interface Chips and other serially
connected devices
ƒ Supports a wide range of data-sizes, including 8, 12,
16, 20, 24 and 32 bits
ÎBit, Word(channel), Frame, Phase
ÎIn our lab the McBSP is used to connect to the A/D,
D/A daughter card
TU Dresden, 4/29/2008
Slide 42
PCM3003
chair
ƒ MONOLITHIC 20-BIT DS ADC AND DAC
‰ 16-/20-BIT INPUT/OUTPUT DATA
‰ HARDWARE CONTROL: PCM3003
‰ STEREO ADC: SNR: 90dB & DynamicRange: 90dB
‰ STEREO DAC: SNR: 94dB & Dynamic Range: 94dB
‰ Digital Attenuation (256 Steps), Soft Mute, Digital Loop Back
ƒ SAMPLING RATE: Up to 48kHz
ƒ SYSTEM CLOCK: 256fS, 384fS, 512fS
TU Dresden, 4/29/2008
Slide 43
What is the bootloader?
VCC
VCC
chair
Boot Config
L1P Cache
Addr
0000
0001
0002
0003
...
CPU
EPROM
DMA
L1D Cache
C6211/C6711
ƒ When the DSP is NOT powered or under
reset the internal program memory is in a
random state.
TU Dresden, 4/29/2008
Slide 44
What is the bootloader?
VCC
VCC
chair
Boot Config
L1P Cache
Addr
0000
0001
0002
0003
...
CPU
EPROM
DMA
PC=0000123
L1D Cache
C6211/C6711
ƒ When the DSP is powered and the CPU is taken out of
reset the internal memory is still in a random state and
the program will start running for address zero.
TU Dresden, 4/29/2008
Slide 45
What is the bootloader?
VCC
VCC
chair
Boot Config
L1P Cache
CPU
EPROM
DMA
L1D Cache
C6211/C6711
ƒ With the boot, a portion of code can be
automatically copied from external to internal
memory.
TU Dresden, 4/29/2008
Slide 46
Interrupts
chair
ƒ DSPs must be able to execute tasks on
asynchronous events
ƒ Interrupts suspend the current processor task
and save its context
ƒ A interrupt service routine (ISR) is executed
ƒ After completion of the ISR, the context of the
former task is restored and the execution
continues
ƒ Interrupts are organized hierarchically
Î vs. Polling
TU Dresden, 4/29/2008
Slide 47
Interrupt Interrupt- and Thread Types
chair
ƒ HWI priorities set by hardware
ÎOne ISR per interrupt
ƒ 14 SWI priority levels ÎMultiple
SWIs at each level
ƒ 15 TSK priority levels ÎMultiple
TSKs at each level
ƒ Multiple IDL functions
ÎContinuous loop
ÎHWI triggered by hardware interrupt
ÎIDL runs as the background thread
TU Dresden, 4/29/2008
Slide 48
chair
The DSK6711 Development Kit
TU Dresden, 4/29/2008
Slide 49
DSK Contents
Hardware
‹ 150 MHz ‘C6711 DSP
‹ TI 16-bit A/D Converter (‘AD535)
‹ External Memory
Š 16M Bytes SDRAM
Š 128K Bytes Flash ROM
‹ LED’s
‹ Daughter card expansion
‹ Power Supply & Parallel Port Cable
Software
‹ Code Generation Tools
(C Compiler, Assembler & Linker)
‹ Code Composer Debugger
(256K program limitation)
‹ Example Programs & S/W Utilities
Š Power-on Self Test
Š Flash Utility Program
Š Board Confidence Test
Š Host access via DLL
Š Sample Program(s)
TU Dresden, 4/29/2008
Slide 50
C6711 DSK Overview
chair
1.8V Power Supply 16M SDRAM
128K FLASH
Daughter Card I/F
(EMIF Connector)
Parallel
Port I/F
TMS320C6711
‘C6711
DSP
Power
Jack
D. Card I/F
(Periph Con.)
Power
LED
User DIP
switches
Three User LEDs
Reset
3.3V Power Supply
16-bit codec (A/D & D/A)
Emulation
JTAG Header
Line Level Input (microphone)
Line Level Output (speakers)
JTAG Header
Software: (4) PC Æ DSK Communications
chair
CCS uses parallel port to control DSP via JTAG port
You can use full TI eXtended Dev System (XDS) via 14 pin
header connector
Communicate from Windows program (C++, VB) via parallel
port using Win32 DLL
Use HPI via Win32 DLL
DSP
JTAG
JTAG
Emulation
.......
.......
Port
TU Dresden, 4/29/2008
Slide 52
What happens to the Source-Code?
chair
TU Dresden, 4/29/2008
Slide 53
|
Mitsubishi Electronics Mitsubishi Digital Electronics Air Conditioner R410a User Manual
Mitsubishi Electronics Muz Fd09na User Manual
Monarch 938 User Manual
Panasonic Kx F2750nz User Manual
Panasonic Sirius Stiletto 2 User Manual
Samsung Mh12zv 19 User Manual
Sanyo W 3way Eco I Wchdz26053 User Manual
Welch Allyn Medical Diagnostic Equipment 2380 User Manual
Xerox Dcc450 User Manual
Xerox Phaser 3635 User Manual