Motorola DSP96002 User Manual
Page 556
MOTOROLA
DSP96002 USER’S MANUAL
B-37
Program
ICycles
Words
move #coef,r0 ;point to coefficients
move #3*N,m0 ;mod on coefficients
move #state,r4 ;point to state variables
move #N,m4 ;mod on filter states
move p y:datin,d5.s ;get input sample
move x:(r0)+,d6.s ;get q 1 1
do #N,_elat 2 3
; t*q k*w+q*s get k get s
fmpy d5,d6,d2 fadd.s d1,d3 x:(r0)+,d4.s y:(r4)+,d7.s 1 1
; k*s save s
fmpy.s d4,d7,d0 d3.s,y:(r4)+ 1 1
; t*k w*q-k*s
fmpy d5,d4,d1 fsub.s d0,d2 1 1
; q*s t
→
t’ get q
fmpy.s d6,d7,d3 d2.s,d5.s x:(r0)+,d6.s 1 1
_elat
fadd.s d1,d3 ;finish last t 1 1
move d3.s,y:(r4)+ ;save 2nd s 1 1
fclr d2 d5.s,y:(r4)+ ;save 1st s 1 1
fclr d3 y:(r4)+,d7.s ;get s 1 1
rep #N 1 2
fmpy d6,d7,d2 fadd.s d2,d3 x:(r0)+,d6.s y:(r4)+,d7.s ;fir 1 1
fadd.s d2,d3 (r4)+ ;adj r4 1 1
move p d3.s,y:datout
--- ---
Totals: 14 5N+11