Академический Документы
Профессиональный Документы
Культура Документы
Lecturers
Real-time Digital Signal Processing Mike Brookes, Peter Cheung, Darren Ward
with the TMS320C6000 Web page
http://www.ee.ic.ac.uk/pcheung/teaching/ee3_Study_Project/index.html
Assessment
Objectives: Test (14 June) 25%,
Learn the architecture of a typical DSP Labs (22 June) 30%, Project (22 June) 45%
Deliverables
Learn how to perform basic real-time DSP tasks on ‘real’
hardware 1.Labs 3-4,6-8: Program listings (with comments) with
evidence that programs work
Learn about interrupts and I/O devices
2. Project: Full listing of your program with a short
description (2-9) pages and assessment of performance
You will be working in pairs, each pair submits a single set of
reports
Σ
A
Y = ai * xi .L1 .L2
2 register files (32-bit)
i = 1 .. ..
Controller/Decoder
NOO >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>O
6205 1600 200 128 306 0.8 40 - 70 D2P
6211 1200 150 72 256 0.9 25 - 40 E2H .M1 4769698#L N 8#P 8#Q#)R456;698 Q#S+T!Q#4
47)+)!UWV )+X Y!Z([\[\] Y!^(L Y+_
.M2
)+*(,(- ./*1032547698#:
MHz ;#"<$ &(' Pins W $ Periphs
`` 47)+)!UWV )+a b!Z([\[\] b!^(L b+_
6701 1000 167 128 352 1.4 110 - 170 D2H `` 038#c#:d8eV 03X(fgY!_(] b+_(] Y+h
6711 900 150 72 256 1.1 25 - 50 E2H .. .L1 .L2 .. `` 038#c#:d8eV 03a(fgY!^(] b+^(] b+h
6712 600 100 72 256 0.7 10 - 22 E2 `` Y+)+)!:#8eV 47X Y!h(] Y+i(] Y+i
`` Y+)+)!:#8eV 47a b!h(] b+i(] b+i
8#- =7> ? @5A > 8#- =CB!@7DFE7G(H - I7- J - H KML .S1
` `Mj Y+X(klb V :#a 456;698
Peripherals Legend: .S2
A15 B15 ` `Mj Y+X(kl:#m+b V :#X Y!X(] X(] Y!X
D,E DMA (4), EDMA (16) 6201 & 6701
2,3 # of McBSP Serial Ports 6211 & 6711 & 6712 NOO >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>O
H,X,P HPI (Host Port), XBUS, PCI 6202 & 6203 & 6204 Controller/Decoder
The Core of DSP : Sum of Products Working Variables : The Register File
40 Register File A 40
y = ∑ an * xn a y = ∑ an * xn
Mult
.M n = 1 .M n = 1
x
The ’C6000
16 registers
Where are the variables? How are the number of iterations specified?
Loops: Coding on a RISC Processor The “S” Unit : For Standard Operations
Register File A 40
1. Program flow: the branch instruction a y = ∑ an * xn
.S n = 1
B loop x
MVK .S 40, cnt
cnt
16 registers
loop:
2. Initialization: setting the loop count prod .M
MPY .M a, x, prod
y
MVK 40, cnt ADD .L y, prod, y
.. .L SUB .L cnt, 1, cnt
3. Decrement: subtract 1 from the loop counter . B .S loop
32-bits
Register File A 40
To minimize branching, all instructions are conditional y = ∑ an * xn
a
.S n = 1
[condition] B loop x
MVK .S 40, cnt
cnt
loop:
prod .M
MPY .M a, x, prod
Execution based on [zero/non-zero] value of specified variable y
ADD .L y, prod, y
.. .L SUB .L cnt, 1, cnt
Code Syntax Execute if:
. [cnt] B .S loop
[ cnt ] cnt ≠ 0
[ !cnt ] cnt = 0
32-bits
a y = ∑ an * xn a y = ∑ an * xn
.S n = 1 .S n = 1
x x
MVK .S 40, cnt MVK .S 40, cnt
cnt cnt
loop: loop:
16 registers
16 registers
prod .M prod .M
LDH .D *ap ,a LDH .D *ap++, a
y y
LDH .D *xp ,x LDH .D *xp++, x
*ap *ap
.L MPY .M a, x, prod .L MPY .M a, x, prod
*xp *xp
ADD .L y, prod, y ADD .L y, prod, y
*yp *yp
SUB .L cnt, 1, cnt SUB .L cnt, 1, cnt
.D .D
[cnt] B .S loop [cnt] B .S loop