Lattice Semiconductor Correlator IP Core
8
Parameter Descriptions
The parameters used for configuring the Correlator IP core are listed below. The values of these parameters must
be set prior to synthesis or functional verification.
Table 1. User Configurable Parameters
The basic configuration parameters should be selected based on the type of correlation desired. These include
parameters 1, 2, 4, 5, 6, 7 and 10. The remaining parameters 3, 8 and 9 are selected based on the desired perfor-
mance of the circuit.
For parameter 3, a higher f
MAX
can be achieved by generating a much smaller circuit (smaller number of correlator
cells). However, for long data sequences (number of taps, or “corr_win”), this will mean that many clock cycles are
needed for each correlation result to be calculated resulting in very poor overall data throughput and long latency
times. For higher data throughput, and at the expense of a larger and therefore more complicated circuit, a higher
number of correlators should be chosen. The Correlator IP core is architected to be highly pipelined, so even for
large numbers of correlator cells, the penalty in f
MAX
is small; however, as the design becomes more complicated, it
will eventually reach a point where the f
MAX
is impacted by routing in the FPGA.
Parameter 8 should be set to 1 for the highest performance circuit. A value of 2 or 3 will result in a smaller, but sig-
nificantly lower performance design.
Parameter 9 sets the depth of the input FIFO. This improves throughput performance by allowing the next input
data sample to be presented to the device while the present correlation result is being calculated. However, care
must be used when changing this parameter. If the FIFO depth is set above 1, then the user must insure that a new
data sample will not be presented to the Correlator IP core for the same channel as is presently being serviced or
the new data sample will be written into the core’s internal tap memory and will corrupt the correlation which is
already in progress for that channel. If the core has been configured for multiple channels, and input data values for
the same channel are never presented to the core adjacent to each other in time, then the FIFO depth can be
safely increased beyond 1. For example, if the core is configured for eight channels, and data for each of the eight
channels is always presented in sequence, then the FIFO depth may be increased to 2 or 3. However, if the core is
configured for one or two channels, or the input data sequences through channels at random, then the FIFO depth
should never be increased beyond 1.
Parameter
Number Parameter
Parameter
Description Input Range
Default
Input Value
Parameter
Values
1 DWIDTH Input data width 1-8 4 —
2 NUM_TAP Number of taps 8-2048 16 —
3 MWIDTH Number of correlator cells
Minimum = 1
Maximum = the number of
EBR blocks in the target
LatticeEC device
4—
4 NUM_CHAN Number of channels 1-256 2 —
5 DTYPE Input data type Signed, unsigned Unsigned
“UNSIGNED”
“SIGNED”
6 COMPLEX Correlation type Real, complex Real
Real = 0
Complex = 1
7 OS_FACTOR Oversampling rate 1-8 1 —
8 PERFORMANCE Performance 1, 2, 3 1 —
9 FIFO_DEPTH Input FIFO depth 1, 2, 3 1 —
10 NUM_COEF_SEQ
Number of coefficient
sequences
1-256 NUM_CHAN —