beautypg.com

Texas Instruments MSP50C6xx User Manual

Page 189

background image

Individual Instruction Descriptions

4-103

Assembly Language Instructions

4.14.19

FIRK

FIR Filter Function (Coefficients in ROM)

Syntax

[label]

name

dest, src

Clock, clk

Word, w

With RPT, clk

Class

FIRK

An, *Rx

2

1

2(n

R

+2)

9a

Execution

With RPT N–2:
(mask interrupts)
RPT counter = N–2
MR = h[0] = first filter coefficient
x = sample data pointed by Rx

even

h[1] = second filter coefficient pointed by DP
y = result stored in three consecutive accumulators (32 bit) pointed by An

[between every accumulation}
IF TAG = 1

Rx

even

= Rx

even

+ R5 {for circular buffering}

ELSE

Rx

even

++

{ if Rx++ is specified in the instruction}

ENDIF
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

FIRK An, *Rx

1

1

1

0

1

0

0

An

0

0

0

Rx

1

1

Description

Finite impluse response (FIR) filter. Execute finite impulse response filter taps
using coefficients from program memory and samples from data memory.
Address reference for data memory is indirect using specified Rx and address
reference for program memory is contained in DP register.

This instruction must be used with RPT instruction. When used with the repeat
counter it will execute 16

×

16 multiplication between indirect addressed data

memory buffer and program memory (coef), 32-bit accumulation, and circular
buffer operation. Each tap executes in 2 cycles. See section 4.11 for more
detail on the setup of coefficents and sample data. Selected register Rx must
be even. During FIRK execution, interrupts are queued.

See Also

RPT, FIR, COR, CORK

Example 4.14.19.1

RPT 0

FIRK A0, *R0

Computes the calculation for 2 tap FIR filter with 32 bit accumulation. See section 4.11 for more detail
on the setup of coefficients and sample data.