23 FN6013.3
July 13, 2007
Wait Preload Register
This register (IWA register *00Ch) holds the wait counter
threshold and two wait counter decreme nt values. Each is
ten bits. The wait counter counts filter input samples until the
count is greater than or equal to the threshold. The wait
counter then asserts a flag to the filter compute engine.
The wait counter threshold is typically set to the total number
of input samples needed to generate a filter output. A “WAIT”
instruction in the filter compute engine waits for the wait
counter flag signal before pr oceeding. The filter compute
engine would then compute all the filters needed to produce
an output and then woul d jump back to the “WAIT”
instruction.
The wait counter is implemented with an accumulator. This
allows the count to go beyond the threshold without losing
the sample count. Two bits in the FIR instruction decrement
the wait counter (subtract a value) and select the decrement
value. The decrement value is typically the number of
samples needed for an output (total decimation), though it
can be a different value to ignore inputs and shift the timing.
(The read pointer increment must be adjusted as well .)
The filter compute engine sequencer does not count each
input sample or track whether each filter is ready to run.
Instead, the wait counter is used to determine whether there
are enough input samples to compute all the filters in the
chain and get an output sample from the entire filter chain.
This adds some additional delay since intermediate results
are not precalculated, but it simplifies the filter control. The
number of samples needed is equal to the total decimation
of the filter chain. For example, with two decimate-by-2
halfband filters and a decimate-by-2 shaping FIR, the total
decimation would be 8 so 8 samples are needed to compute
an output. HBF1 would compute four times to generate four
inputs to HBF2. HBF2 would compute twice to generate the
two samples that the shaping FIR needs to compute an
output.
Resampler
The resampler is an NCO controlled polyphase filter that allows
the output sample rate to have a non-integer relationship to the
input sample rate. The filter engine can be viewed conceptually
as a fixed interpolate-by-32 filter , followed by an NCO controlled
decimator . The Resampler NCO is similar to the carrier NCO
phase accumulator but does not include the SIN/COS section.
It provides the resampler output pulse and associated phase
information to logic that determines the nearest of the 32
available phase points for a given output sample.
The center frequency (output sample rate) control is double
buffered, i.e., the control word is wri tten to one register via the
microprocessor interface an d then transferred to an other
(active) register on a write to the timing NCO center frequency
update strobe location (IWA register *009h) or on a SYNCI (if
enabled). As it is not possible to represent some frequencies
exactly with an NCO and therefore, phase error accumulates
eventually causing a bit slip, the phase accumulator len gth
has been sized to where the error is insignifica nt. At a
resampler input rate of 1MHz, half an LSB of error in loading
the 56-bit accumulator is 7 *10-12 degrees. Af ter one year, th e
accumulated phase error is o nly 0.2*10-3 of a bit (<1/10 of a
degree). The NCO update by the filter compute en gine is
typically at the resampler's inpu t rate, and is enabled by the
IncrRS bit in the filter instruction word. The NCO then rol ls
over at a fraction of the resampler input rate. The output
sample rate is (fIN/ 256)*N, where fIN is the resample r input
rate and N is the phase accumulated per resample r input
sample (IWA registers *007h and *008h). N must be between
40000000000000h and FFFFFFFFFFFFFFh correspo nding
to decimations from 4 to (1 + 2-56), respectively. Generally,
however, a range of 80000000000000h to
FFFFFFFFFFFFFFh (providing decimation from 2 to (1 + 2-56),
respectively) is suf ficient for most applica tions since integer
decimation can be done more ef ficiently in the preceding CIC
and halfband filters. The resampler changes the sample rate
by computing an output at each inpu t which ca uses the N CO
to roll over. If an output is to be computed, the nearest of the
32 available point s from the polyphase structure is used.
Because output s are generated o nly on inpu t samples wh ich
cause an NCO roll over, output samples will in genera l not be
evenly spaced. The FIFO/TIMER block between the filter
compute engine and the AGC is provided to imp rove outp ut
sample spacing for presentation to the serial data output
formatter section (see IWA=*00Ah bits 11:0 descri ption). If
D/A converted directly, there would be artifacts from the
uneven sample sp aci ng, but if the samp les are stored and
reconstructed at the proper rate (the NCO rollover rate), the
signal would have only the distortion produced by
interpolation image leakag e and the time quantization (pha se
jitter) due to the finite number of interpolation filter phases.
The polyphase filter has 192 coefficients implemented as 32
phases, each of which having 6 taps (6 x 32 = 192). These
coefficients are provided in Table 54. The stopband
attenuation of the filter is greater than 60dB, as shown in
Figures 18 through 20. The signal to total image power ratio
is approximately 55dB, due to the aliasing of the
interpolation images. If the output is at least 2x the baud
rate, the 32 interpolation phases yield an effective sample
rate of 64x the baud rate or approximately 1.5% (1/64
resampler input sample period) maximum timing error.
AGC
The AGC Section provides gain to small signals, af ter the
large signals and out-of-band noise have been filtered out, to
ensure that small signals have suf fi cient bit re solution in the
output formatter. The AGC can also be used to manually set
the gain. The AGC optimizes the bit resolution for a vari ety of
input amplitude signal level s. The AGC loop automatically
adds gain to bring small signals from the lowe r bit s of the
ISL5216