Special Filter Instructions

Figure 4–7. Filter Instruction and Circular Buffering for N+1 Tap Filter

 

 

 

 

 

 

 

 

 

 

 

CORK/FIRK only

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rxeven

 

 

 

DP

coeff_array

 

 

 

Rxeven

 

 

 

 

 

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rxeven+1

coeff_array

 

 

 

 

COR/FIR only

 

 

if TAG = 1

 

 

 

 

R5 = –2(N+1)

 

 

 

 

 

 

 

 

 

17th Bit

16 Bits

 

 

 

 

 

 

 

 

 

 

 

17th Bit

16 Bits

 

 

 

 

 

 

 

 

 

coeff_array

0

 

h[0]

 

x

 

 

 

 

 

 

0

 

 

 

 

x[k]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

h[1]

 

 

 

 

 

 

0

 

 

 

 

x[k–1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

h[2]

 

 

 

0

 

 

 

 

x[k–2]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

h[3]

 

 

 

0

 

 

 

 

x[k–3]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

h[4]

 

 

 

 

 

0

 

 

 

 

x[k–4]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

STAT

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TAG

 

16 Bits

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

h[N–1]

 

 

 

 

 

x

 

1

 

 

 

 

x[k–N]

 

 

 

17th Bit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

 

 

 

 

 

 

x[k–N–1] is replaced

 

 

0

 

 

h[N]

 

 

 

 

 

 

 

0

 

 

 

 

x[k+1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

by

x[k+1]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

sample_buf

 

 

 

 

 

 

 

 

 

coeff_array is stored in

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

program or data memory

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

based on filter instruction.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

program memory (FIRK/CORK)

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data memory (FIR/COR)

 

 

 

 

y = Σ k =0..N h[m] x[k–m]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

48-bit accumulation for COR/CORK

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

AC n+2

 

AC n+1

 

AC n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32-bit accumulation

for FIR/FIRK

4-68

Page 154
Image 154
Texas Instruments MSP50C6xx manual Samplebuf Coeffarray is stored