Special Filter Instructions
4-64
Any combination of registers different from the above will yield incorrect
results with the FIR/COR instruction.
Use R5 to
wrap around
R0
0x010
0x0100
0x0106
0x0102
x[k] x[k–1]
x[k–2]x[k–3]
tag
After FIR/COR execution
The STAT register is saved in the filterSTAT_tag location. The output of the fil-
tering operation in the example is located in AC0 (lower word) and AC1 (high
word). This 32-bit result is stored in the SampleOut RAM location. R0 should
be pointing to the oldest sample. The oldest sample, x[k–3], is overwritten
by the next sample to be filtered, x[k+1]. R0 is saved in the startOfBuff
pointer for the next FIR/COR instruction
Notice that R0 points backwards by one location from its starting point each
time an FIR/COR instruction is executed. In the above figure, R0 would end
up at successive locations in a clockwise manner.