XAPP1064 (v1.2) November 19, 2013 www.xilinx.com 1
© 2009–2013 Xilinx, Inc. XILINX, the Xilinx logo, Artix, ISE, Kintex, Spartan, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Xilinx in the
United States and other countries. All other trademarks are the property of their respective owners.
Summary Spartan®-6 devices contain input SerDes (ISERDES) and output SerDes (OSERDES) blocks.
These primitives simplify the design of serializing and deserializing circuits, while allowing
higher operational speeds. This application note discusses how to efficiently use these
primitives in conjunction with the input delay blocks and phase detector circuitry. These designs
are for use in source-synchronous systems where the data and clock are edge aligned.
Different techniques are required when the clock and data are center aligned.
ISERDES and
OSERDES
Guidelines
Each Spartan-6 FPGA input/output block (IOB) contains a 4-bit input SerDes and a 4-bit output
SerDes. The SerDes from two adjacent blocks (master and slave) can be cascaded to make an
8-bit block. This gives the possibility of SerDes ratios from 2:1 to 8:1 on both output and input
for both single and double data rate I/O clocks.
Cascading the ISERDES blocks is not an issue when a differential signaling standard is being
used because these standards use the two IOBs (master and slave) associated with the two
sets of SerDes registers. Thus, using two ISERDES effectively reduces design cost. However,
when using a single-ended signaling standard, some care needs to be taken when the design
requires either a SerDes ratio of five or more or the phase detector mode. Specifically, two data
lines cannot enter the device in adjacent master and slave IOBs when using cascaded SerDes.
This limitation is not necessary when the SerDes ratio is four or less and the phase detector
mode is not being used because the SerDes is not cascaded. However, by not using the phase
detector mode, data loss will occur during calibration and the application will need to account
for this loss.
Introduction to
Deserialization
and Data
Reception
A deserializer design and its associated clocking primitives are dependent on the format of the
incoming receive data stream. This data tends to fall into three categories.
Case 1
The data stream is a multiple of the rate of the incoming clock, and the clock signal is used as
a framing signal for the received data. Multiple changes in the state of the data lines occur
during one clock period. A widely used example is the 7:1 interface used in cameras and flat
panel TVs and monitors. Other ratios are obviously possible, and the Spartan-6 FPGA
ISERDES can support ratios of 2, 3, and 4:1, and also 5, 6, 7, and 8:1 when cascaded. In this
example, the received clock is multiplied in a PLL, and the resultant high-speed capture clock
is passed to the input logic through the BUFPLL primitive. The BUFPLL capture clock is
designed to always be used in single data rate (SDR) mode with respect to the input data. For
example, a 150 MHz input clock with accompanying 7:1 data requires the PLL and BUFPLL to
operate at 1050 MHz (equals 150 x 7). This high-speed capture clock is used to clock the
receive data into the input deserializers and is capable of driving one whole edge of a device.
Parallel data is then presented to the FPGA logic at the speed of the original incoming clock.
Figure 1 shows this 7:1 data formatting example.
Application Note: Spartan-6 FPGAs
XAPP1064 (v1.2) November 19, 2013
Source-Synchronous Serialization and
Deserialization (up to 1050 Mb/s)
Author: NIck Sawyer
评论0
最新资源