CORR-8BIT-SC-U2

Lattice Semiconductor Correlator IP Core
7
Figure 6. Example Coefficient Sequences Written in Coefficient Memory
In configurations where the number of taps is not a power of 2, the coefficient sequences will need to be padded
with zeros so that all coefficient sequences written to the Coefficient Memory are a power of 2 long. This is
because the Coefficient and Tap Memories must be divided up evenly into sections representing the individual
channels and coefficient sequences. In the example above, if the number of taps were less than 16, the coefficients
would still be written into memory the same way except that padding zeros would be added before the MSB. The
padding zeros would be written into memory starting at the MSB of row 3 for coefficient sequence 0.
Correlator and Adder/Accumulator Blocks
The Correlator block performs the multiplication operations in Equations 1 and 2. The coefficients are configured by
the user to be either unsigned or signed. If unsigned, then the binary coefficient values simply represent {1,0} and
the multiplications reduce to either passing the tap values read from memory to the Adder/Accumulator, or passing
a zero value. If the coefficients are signed, then the binary coefficients {1,0} represent values of {+1,-1}. If a tap
value is multiplied by 1, then the Correlator block does nothing other than pass the tap value read from memory to
the Adder/Accumulator. If a tap value is multiplied by -1, then the Correlator block does a two’s complement conver-
sion of the tap value read from memory and passes the result to the Adder/Accumulator, which in turn completes
the summation of the correlation sequence to generate the final result.
Decimation
The Correlator IP core allows the input data to be oversampled from two to eight times the normal sampling rate.
The OS_FACTOR parameter should be set to the correct oversampling rate. When this is done, the core will auto-
matically decimate the amount of data which is included in the correlation operations by the correct amount. For
example, if the number of taps is eight and an oversampling rate of two is chosen, then the circuit will correlate the
eight coefficient values with the newest input tap data value and the odd numbered tap data values from the past
15 “old” data values. The correlation will look like this:
r = d1c1 + d3c2 + d5c3 + d7c4 + d9c5 + d11c6 + d13c7 + d15c8 (4)
The number of data values stored in Tap Memory for a given channel becomes [OS_FACTOR*NUM_TAP], or in
this case 16. The number of coefficients per channel is still equal to NUM_TAP.
0 0 0 0
1 0 1 0
0 1 1 0
1 1 1 1
1 0 0 0
0 0 0 1
0 0 0 0
1 1 0 0Row 0
Row 1
Row 2
Row 3
Row 4
Row 5
Row 6
Row 7
Coefficient
Sequence 1
Coefficient
Sequence 0
Upper Locations
of EBR (Unused
in this Example)
MWIDTH wide
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
Lattice Semiconductor Correlator IP Core
9
Custom Core Configurations
For core configurations that are not available in the Evaluation Packages, please contact your Lattice sales repre-
sentative to request a custom configuration.
Related Information
For more information regarding core usage and design verification, refer to the Parallel RapidIO Physical Layer
Interface IP Core User’s Guide, available on the Lattice web site at www.latticesemi.com.

CORR-8BIT-SC-U2

Mfr. #:
Manufacturer:
Lattice
Description:
Development Software Correlator IP Core User Config
Lifecycle:
New from this manufacturer.
Delivery:
DHL FedEx Ups TNT EMS
Payment:
T/T Paypal Visa MoneyGram Western Union