Individual Instruction Descriptions

4.14.18 FIR

 

FIR Filter Function (Coefficients in RAM)

 

 

 

 

 

 

 

 

 

 

 

 

Syntax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

[label]

name

 

dest, src

 

 

 

 

 

 

 

 

Clock, clk

 

Word, w

 

 

With RPT, clk

Class

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FIR

 

An, *Rx

 

 

 

 

 

 

 

2

 

 

 

 

 

1

 

 

 

 

2(nR+2)

 

 

 

9a

Execution

With RPT N–2:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(mask interrupts)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RPT counter = N–2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MR = h[0] = first filter coefficient

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x = sample data pointed at by Rxeven

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h[1] = second filter coefficient pointed at Rxeven+1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y = result stored in three consecutive accumulators (32 bit) pointed by An

 

 

 

{between every accumulation}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IF TAG = 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ELSE

 

Rxeven = Rxeven + R5

 

{for circular buffering}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ENDIF

 

Rxeven++

 

 

 

 

 

 

{ if Rx++ is specified in the instruction}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PC PC + 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{final result}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y +￿k+0..N–1

h[k] · x[N1–k]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(Execution is detailed in section 4.11)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Flags Affected

None

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Opcode

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Instructions

 

16

 

15

 

14

13

 

12

11

 

10

 

9

 

8

 

7

 

6

 

5

 

4

 

3

 

2

 

1

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FIR An, *Rx

 

 

1

 

1

 

1

0

 

1

0

 

0

 

 

An

 

0

 

1

 

0

 

 

 

Rx

 

 

1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Description

Finite impulse response (FIR) filter. Execute finite impulse response filter taps

 

 

 

using coefficients from data memory and samples from data memory. The

 

 

 

instruction specifies two registers, Rx and R(x+1) which sequentially address

 

 

 

coefficients and the sample buffer in the two instruction FIR tap sequence.

This instruction must be used with RPT instruction. When used with the repeat counter it will execute a 16 16 multiplication between two indirect addressed data memory buffers, 32-bit accumulation, and circular buffer operation. Executes in 2 instruction cycles.

Selected register Rx must be even. This instruction also uses R(x+1). See section 4.11 for more detail on the setup of coefficients and sample data. During FIR execution, interrupt is queued.

Assembly Language Instructions

4-101

Page 187
Image 187
Texas Instruments MSP50C6xx manual FIR FIR Filter Function Coefficients in RAM, An, *Rx 2nR+2, Rxeven++