AN2072 Freescale Semiconductor / Motorola, AN2072 Datasheet - Page 22

no-image

AN2072

Manufacturer Part Number
AN2072
Description
AN2072, Decision Feedback Equalizer for StarCore-Based DSPs
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Implementation of the Algorithm
22
kk_loop
jj_loop
cc
Stuffing four zeros (eight complex elements for this particular example) makes the code easier to write
and more optimal, because this eliminates the need for address manipulation that is required to
implement min(chan_mem,jj)+1.
move.l #v,r2
move.f #.25,d0
moves.2f d0:d1,(r2)
move.l n3,d0
dosetup0 kk_loop
doen0 d0
loopstart0
doen1 d12
[ move.2f (r1)+,d0:d1move.2f (r2)-,d2:d3
]
mac -d0,d2,d4
mac d1,d3,d4
asll #4,d4
move.2f (r1)+,d0:d1 move.2f (r2)-,d2:d3
add d4,d6,d6
clr d4 clr d5
loopend1
[ asrr #2,d6
move.l #L_matrix,r1
loopstart1
First
Second
Third
Forth
Fifth
Sixth
Seventh
Eight
clr d4 clr d5
Iteration
Decision Feedback Equalizer for StarCore™-Based DSPs, Rev. 1
Table 3. Read Out of Loop 2 Data in the SC140
v(8)
v(7)
v(6)
v(5)
v(4)
v(3)
v(2)
v(1)
clr d1
move.w #$1,d12
tfra r2,BASE_ROW
dosetup1 jj_loop
mac -d0,d3,d5
mac -d1,d2,d5
asll #4,d5
add d5,d7,d7
Code Listing 1. Back Substitution
asrr #2,d7
v(7)
v(6)
v(5)
v(4)
v(3)
v(2)
v(1)
0
v(6)
v(5)
v(4)
v(3)
v(2)
v(1)
0
0
; r1->L_matrix
; r2->v
; d0=0.25 first entry in v, d1=0
; move first complex result to v(1)
; n3=max_delay_index-1
; (d12 = counter for jj_loop)
; r2->BASE_ROW
; kk_loop for j=1:max_delay_index-1
; remove the scaling by 4
; (Note: all the elements were
; scaled by 1/4, therefore the
; product was scaled by 1/16)
v(4)
v(4)
v(3)
v(2)
v(1)
0
0
0
v(5)
v(3)
v(2)
v(1)
0
0
0
0
Freescale Semiconductor

Related parts for AN2072