Programmable to Give up to 256 Tap s With Sampling
•
Reducing Propo rtionally to 421,875 kHz
Programmable Round ing and Truncation to 16 Bit
•
8 Bit Standard Microprocess or In terfa ce
•
64-pin PQFP, 68-pin PGA68 or 68-pi n LCC6 8 Pac ka gi ng
•
Description
The AT76C001 Programmable Finite Impulse Response (FIR) Filter implements a
4th order FIR cell built around 4 multiplier-accumulators. It contains a dual-port
RAM and a RAM which are used to implement FIR filters of up to 256 taps. High order filters are achieved by multiplexing the 4th order cell and accumulating the intermediate results up to 40 bits, so that there is no loss of accuracy.
The maximum frequency of the AT76C001 is 27 MHz. For 4-tap FIR filter, the incoming sample rate can be as high as 27 MHz. For higher order FIR filters, the
sample rate can be as high as the circuit frequency divided by the 4th order cell multiplexing factor.
A programmable normalization block allows the choice of the 16 significant bits from
the 40 bit internal result which can be previously rounded by adding 0.5 LSB according to the 16 significant bit locations. The AT76C001 has a microprocessor interface which can be configured to be Intel or Motorola compatible.
Applications
Digital Filters (vi de o, aud io, etc.)
•
Correlation
•
Image Processi ng
•
AT76C001
Page 2
Pin Description
Name
Pin Number
Type Function
QFP64 Packaging LCC68 Packaging PGA68 Packaging
K10-11, J10-11, H10-
IN<15:0>34-40, 42, 44-5127-33, 35, 37-44
11, G10, F10, E10-11,
IInput sample
D10-11, C10-11, B11-10
DIV3326L10IInput sample valid. Active low
RST_X13224K9I
Force input sample to 0. Useful for interpolation
implementation
The AT76C001 has an architecture built around a 4-tap
non-recursive filter cell. This allows a 4-tap filter to be implemented, e.g.
y(n) = a(0)x(n) + a(1)x(n-1) + a(2)x(n-2) + a(3)x(n-3)
where x = 16 bit incoming sample
y = 16 bit filtered sample
a = 16 bit coefficient
This operating mode is called ‘single mode’.
The AT76C001 can implement up to 256-tap filters by
multiplexing the 4th order structure, using internal
RAMs. Nth order FIR filters can be divided into P 4th-order FIR sub-filters where P is the integer part of (N+3)/4.
Thus the complete filter is evaluated by accumulating
the contributions of each elementary 4th order sub-filter:
y(n) = y(n,0) + y(n,1) + ....... + y(n,P-1)
where y(n,j) = a(4j)x(n-4j) + a(4j+1)x(n-4j-1)
+ a(4j+2)x(n-4j-2) + a(4j+3)x(n-4j-3)
j = number of the sub-filter
This operating mode is called ‘sequential mode’.
If (N+3)/4 is greater than P, then some coefficients of
the last sub-filter will be set to zero automatically by the
circuit.
In single mode, the incoming sample rate can be as high
as the circuit frequency (27 MHz). A new incoming sample is notified by a low level on DIV input signal and
clocked by the rising edge of the circuit clock CLOCK.
If there is a low level set on DIV and then a low level is
set on RST_XI input, then a ‘zero’ sample is fed internally into the circuit.
For each new sample, a filtered sample is calculated.
Valid output filtered samples are notified by a low level
on DOV output signal. The timing diagram below illustrates the single mode operation.
In sequential mode, an N-tap filter is divided into P 4-tap
filters. Consequently, the incoming sample rate must be
at least P times slower than the circuit rate. As in single
mode, a new incoming sample is notified by a low level
on DIV input signal and clocked by the rising edge
CLOCK. But here, DIV defines a temporal window
where XIN is valid and whose width must be at least one
CLOCK period and at most P-1 clock periods. The timing diagrams below illustrate the case for an N-tap filter,
where N is greater than 4 but less than 9, i.e., DIV must
go to high level between two incoming signals.
Timing Diagram for Single Mode Operation
CLOCK
DIV
RST_XI
IN
OUT
DOV
X0X1X2=0X3=0X4X5
Input valid
Input forced
to 0
Y0Y1Y2Y3Y4Y5Y6
Output valid
X6
X7=0X8
5
Page 6
Microprocessor Interface
The AT76C001 has an 8 bit configurable microprocessor
interface comprising the following signals:
DATA <7:0>8 bit data bus
AD– <1:0>2 bit address bus
CSChip Select
DS/WRData Strobe or Write signal
RDWR/RDRead/Write signal or Read signal
By setting bit 1 of the configuration interface (INTEL/
MOTO), it is possible to configure the microprocessor interface to be Motorola or Intel compatible. When chosen, the configuration must be locked by setting bit
LOCK_CFG of the configuration register. This must be
done first of all otherwise the circuit will not function properly.
ConfigurationMotorola ModeIntel Mode
Intel/Moto bitBit set to 0Bit set to 1
SignalsDATA<7:0>DATA<7:0>
ADD<1:0>ADD<1:0>
CSCS
DSWR
RD/WRRD
Internal Register s
The AT76C001 contains three internal registers accessible in Read and Write via the microprocessor interface,
as soon as it is configured and locked. They are:
Configuration register (CFGR)
Normalization and Rounding Register (NORR)
Filter Order Register (FILR)
Configuration Regis ter
It is an 8 bit register mapped at address 1hex = 01bin
Bit 0 = START/STOPActivates/deactivates filtering
Bit 1 = INTEL/MOTOConfigures microprocessor
interface to be Intel or Motorola.
Bit 2 = MSB/LSBIndicates if 16 bit coefficients are
written with Most Significant Byte
or Least Significant Byte ahead.
Bit 3 = LOCK_CFGLocks the microprocessor
interface configuration.
Bit 4 = SING/SEQIndicates the operating mode of
the 4th order cell, i.e. Single
Mode or Sequential Mode.
Bit 5 = BUFF_FULLIndicates that the sample input
buffer contains N samples when
implementing an N-tap FIR filter.
(continued)
Timing Diagram for N-tap Filter where 4<N<9
CLOCK
DIV
RST_XI
IN
OUT
DOV
X0X1
X2 = 0
Y0Y1Y2Y4
X3X4 = 0
X5 = 0
Y3
6AT76C001
Page 7
Internal Registers (Continued)
Bit 6 = LAST_SFILTIndicates that the last sub-filter is
accessed.
Bit 7 = END_INCOEFF Indicates that the last coefficient
of the last sub-filter is being
accessed.
Bit No76543210
Bit
END_IN
LAST_S
BUFF_
SING/
CFG
INT/
Name
COEFF
FILT
FULL
SEQ
LOCK
Acc.
RRRRR/WR/WR/WR/W
Mode
Reset
10100010
Value
MOTO
MSB/LSB START/
STOP
AT76C001
Filter Order Register
The filter order register is an 8 bit register mapped at address 3h=11b. It contains the number of the order of the
filter to be implemented minus 1.
Reset Values
Bit No76543210
Bit
FILT7FILT6FILT5FILT4FILT3FILT2FILT1FILT0
Name
Acc.
R/WR/WR/WR/WR/WR/WR/WR/W
Mode
Reset
00000000
Value
Normalization and Rounding Register
The normalization and rounding register is a 5 bit register mapped at address 2h = 10b allows the selection of
the 16 bit significant part of the internal 40 bit result; also
defines the number of bits rounding value if rounding is
desired.
Bit <3:0>= SEL <3:0>Selects the 16 bit part and
defines the number of bits
rounding value as illustrated in
the following table:
Filter coefficients are stored internally by writing to address 0hex = 00bin. The bit MSB/LSB of the configuration register indicates if the MSB is sent before the LSB
and vice versa. Stored coefficients are not readable via
the microprocessor interface. For an N-tap filter, 2xN
writing is necessary. If N is not a multiple of 4, the remaining coefficients of the last sub-filter are set automatically to zero.
Application Example s
A 4-Tap FIR Filter in Motorola Mo de
Example with coefficient MSB ahead and rounding enabled.
y
= c0xn + c1x
n
Where y
is the output filtered sample, c is the coeffi-
n
cient and x is the incoming samples.
1. Firstly, unlock the microprocessor interface by writing
a zero to bit 3 (this is normally performed by applying
a Master reset).
2. Write 1100bin in the configuration register. This sets
the configuration with bit 0 selecting stop mode, bit 1
selecting Motorola mode, bit 2 selecting MSB ahead,
and bit 3 locks the configuration.
3. Write the Filter Order-1 in the FILT_ORD register, i.e.
03hex.
4. Write the 4 coefficients starting with the Most Signifi-
cant Byte of c
, then the LSB of c
0
5. Write 00010bin in the NORM register to enable round-
ing, and to select range of bits, for example bits 33
to18 of the 40 bit internal result.
6. Write 1101bin in the Configuration register to start the
filter. At each new incoming sample, XIN, specified
by a low level on DIV. The filtered sample XOUT is
calculated and is notified by a low level on DOV. The
n-1
+ c2x
n-2
+ c3x
0,
etc
n-3
.
(continued)
7
Page 8
Application Exampl es (Continued)
filtered XOUT is output 4 clock cycles after the sampling of the corresponding XIN input.
A 130-Tap FIR Filter in Intel Mode
Example with coefficient LSB ahead and rounding disabled.
y
n=c0xn
+ c1x
+ .......
n-1
+ c
128xn-12
+ c
129xn-129
1. Firstly, unlock the microprocessor interface by writing
a zero to bit 3 (this is normally performed by applying
a Master reset).
2. Write 1010bin in the configuration register. This sets
the configuration with bit 0 selecting stop mode, bit 1
selecting Intel mode, bit 2 selecting LSB ahead, and
bit 3 locks the configuration.
3. Write the Filter Order-1 in the FILT_ORD register, i.e.
81hex
4. Write the 130 coefficients beginning with the LSB of
, then the MSB of c0, etc.
c
0
5. Write 11xxx in the NORM register to disable rounding
and to select bits 39 to 24 of the 40 bit internal result..
6. Write 1011bin in the Configuration register to start the
filter. At each new transition high to low on DIV input
signal, a new sample is fed into the filter. The corresponding filtered sample is output 4+33 clock cycles
later and specified by a low level on DOV output signal. Here the incoming sample rate must at most be
33 times less than the circuit clock rate, where 33 represents the number of times the 4th order cell is multiplexed.