Multi-Rate Serial Digital Interface Physical


ispLever
CORE
TM
Multi-Rate Serial Digital Interface Physical Layer IP Core
User’s Guide
January 2012
ipug70_01.2
Lattice Semiconductor
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Introduction
Serial Digital Interface (SDI) is the most popular raw video link standard used in television broadcast studios and
video production facilities. Field Programmable Gate Arrays (FPGAs) with SDI interface capability can be used for
acquisition, mixing, storage, editing, processing and format conversion applications. Simpler applications use
FPGAs to acquire SDI data from one or more standard definition (SD) or high definition (HD) sources, perform simple processing and retransmit the video data in SDI format. Such applications require an SDI physical layer (PHY)
interface and some basic processing blocks such as a color space converter and frame buffer. In more complex
applications, the acquired video receives additional processing, such as video format conversion, filtering, scaling,
graphics mixing and picture-in-picture display. FPGA devices can also be used as a bridge between SDI video
sources and backplane protocols such as PCI Express or Ethernet, with or without any additional video processing.
In an FPGA-based SDI solution, the physical interface portion is often the most challenging part of the solution.
This is because the PHY layer includes several device-dependent components such as high speed I/Os
(inputs/outputs), serializer/deserializer (SERDES), clock/data recovery, word alignment and timing signal detection
logic. Video processing, on the other hand, is algorithmic and is usually achieved using proprietary algorithms
developed by in-house teams. The Lattice Multi-Rate SDI PHY Intellectual Property (IP) Core is a complete SDI
PHY interface that connects to the high-speed SDI serial data on one side and the formatted parallel data on the
other side. It enables faster development of applications for processing, storing and bridging SDI video data. It
comprises the high-speed serial I/Os, SERDES, SDI encoder/decoder, word alignment logic, CRC detection and
checking logic and rate detection logic.
The interface standards and source formats for SDI are specified in several documents published by the Society of
Motion Picture and Television Engineers (SMPTE). The SMPTE standards supported by this IP core are the following:
• Interface: SMPTE 259M-2006 [1] (SD) and SMPTE 292M-1998 [2] (HD)
• SD Source Formats: SMPTE 125M [3] and SMPTE 267M [4] (13.5 MHz only)
• HD Source Formats: SMPTE 260M [5], SMPTE 274M [6], SMPTE 295M [7] and SMPTE 296M [8]
The IP core can automatically scan and lock on to any of the supported video standards and formats. Receiving
multiple standards is achieved with the help of an external clock generator that provides SD (27 MHz) or HD (148.5
MHz) rate clocks upon request from the IP core.
Features
• Support for dynamic multi-rate SD-SDI/HD-SDI (SMPTE 259[1] and SMPTE 292[2]) interfaces
• Support for automatic Rx (receive) rate detection and dynamic Tx (transmit) rate selection
• Built-in SERDES programming for multi-rate support
• Support for multiple SD source formats: SMPTE 125M [3] and SMPTE 267M [4] (13.5 MHz only)
• Support for multiple HD source formats: SMPTE 260M [5], SMPTE 274M [6], SMPTE 295M [7] and SMPTE
296M [8]
• Word alignment and timing reference sequence (TRS) detection
• Field vertical blanking (vblank) and horizontal blanking (hblank) identification
• CRC computation, error checking and insertion for HD
• Line number (LN) decoding and encoding for HD
Interface Diagrams
The top-level interface differs largely between configurations where the SERDES is contained inside the IP core
and where it exists outside the IP core. The top-level interface diagram for configurations when SERDES is con-
2
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
tained inside the IP core and outside the IP core are shown in Figures 1 and 2, respectively. A brief description of
the signals is given in Table 1. Note that not all the I/O ports are available for a chosen configuration.
sdi_outp
sdi_outn
ref_clkp
ref_clkn
Rx Interface
sdi_inp
sdi_inn
SERDES Interface
Figure 1. Top-Level Interface for SERDES Inside the IP Core
rx_hd_sdn
wd_clk
rstn
ce
Tx Interface
tx_cref_clk
rx_cref_clk
Common Interface
Multi-Rate
SDI PHY
IP Core
3
pd_out
pdo_clk
vidactive
vidstd
hd_sdn_out
trs_out
field
vblank
hblank
ln_out
crc_error
rxscan_dis
rx_rate
pd_in
pdi_clk_out
trs_in
hd_sdn_in
sd8b_mode
ln_in
ln_set
lni_en
crci_en
tx_plol
txpgm_busy
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
rx_hd_sdn
wd_clk
rstn
ce
Rx Interface
Multi-Rate
SDI PHY
IP Core
Tx Interface
scisel
scien
sciwritedata
sciaddress
scienaux
sciselaux
scird
sciwstn
scireaddata
SCI Interface
ff_txfullclk
ff_txhalfclk
ff_txiclk
ff_rxiclk
ff_ebrd_clk
ff_rxfullclk
ff_rxhalfclk
ffc_quad_rst
Common Interface
ff_rxdata
ff_txdata
SERDES Interface
Figure 2. Top-Level Interface for SERDES Outside the IP Core
pd_out
pdo_clk
vidactive
vidstd
hd_sdn_out
trs_out
field
vblank
hblank
ln_out
crc_error
rxscan_dis
rx_rate
pd_in
pdi_clk_out
trs_in
hd_sdn_in
sd8b_mode
ln_in
ln_set
lni_en
crci_en
txpgm_busy
Video Interface and Source Format Support
This section describes the video interfaces and source formats supported by the Multi-Rate SDI PHY IP Core.
This IP core supports SMPTE 259 and SMPTE 292 interface standards. SMPTE 259 standard is applicable to
4:2:2 video streams defined by SMPTE 125M and SMPTE 267M. These source formats are briefly described
below.
1. SMPTE 125M: System M- 525 lines and 60 fields based on ITU-R BT.601. The video is transmitted in the form
of one luminance (Y) and two color-difference components (scaled versions of R-Y and B-Y). It follows a 4:2:2
family level of ITU-R BT.601 with a nominal luminance sampling at 13.5 MHz allowing for both 8-bit and 10-bit
data types.
2. SMPTE 267M: System M- 525 lines and 59.94 fields, wide screen, 16x9 aspect ratio, based on ITU-R BT.601.
The video is transmitted in the form of one luminance (Y) and two color-difference components (scaled versions
of R-Y and B-Y). It follows a 4:2:2 family level of ITU-R BT.601 with a nominal luminance sampling at 13.5 MHz
or 18 MHz, allowing for both 8-bit and 10-bit data types.
This IP core supports all of SMPTE 125M and only the 13.5 MHz version of SMPTE 267M.
SMPTE 292 defines a serial data rate of 1.485 Gbps and 1.485/M Gbps, where M=1.001. This interface standard
supports four source formats: SMPTE 260M, SMPTE 295M, SMPTE 274M and SMPTE 296M. The parameters for
these source formats are given in Appendix A. The IP core works with all these source formats.
4
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Functional Description
This section describes the functionality of the Multi-Rate SDI PHY IP Core.
The top-level view of the IP core is shown in Figure 3.
Figure 3. Top-Level View, Multi-Rate SDI PHY IP Core
To Clock
Generator
From
Clock
Generator
rx_hd_sdn
ref_clkp
ref_clkn
SCI
SCI Control
Rate
Detect/
Control
SERDES
Decoder /
Descrambler
Word
Alignment/
TRS Detect
Scrambler/
Encoder
Framer
CRC
Check
crc_error
rx_cref_clk
sdi_inp
sdi_inn
sdi_outp
sdi_outn
pd_out
hd_sdn_out
trs_out
CRC
Insertion
pd_in
trs_in
ln_in
Figure 3 shows the IP core with SERDES instantiated inside. The receive and transmit logic blocks are shown to
the right of the SERDES in the top and bottom halves, respectively. It is usually easier to generate and use the IP
core with integrated SERDES. The parallel data busses, as well as a host of other signals to and from SERDES,
come connected in the IP core. The IP GUI (graphical user interface) allows the user to select the channel number
and reference clock source. However, if it is desired to exercise full control over the way SERDES is used in the
application, the IP core can be generated without SERDES in it and then connected to SERDES separately.
The Multi-Rate SDI PHY IP Core is capable of receiving any of the video formats specified in the SMPTE 259 and
SMPTE 292 interface standards without any manual intervention. The receiver is designed to dynamically support
all three video stream rates: SD video at 270 Mbps, HD full frame rate video at 1.485 Gbps and HD fractional frame
rate video at 1.4835 Gbps. The multi-rate receiver cyclically scans for each of the video rates until it identifies and
locks to the incoming video data. To scan for a video rate, the IP core programs the SERDES and the external reference clock source for that rate and checks for a valid and error free video. If no video is received, or if there are
multiple errors in the received data, the receiver goes on to scan for the next rate. The scanning process continues
until the receiver “locks” to the incoming video (that is, when the video data reception is valid and error free for a
few lines of video data). The receiver programs the SERDES operational frequency band through the SERDES Client Interface (SCI) and issues a clock request command to the external clock generator to switch to the corresponding clock. LatticeECP2M™ SERDES can reliably receive both 1.485 Gbps and 1.4835 Gbps data using any
one of the receiver reference clocks (e.g., a 10x reference clock rate of 148.5 MHz). Therefore, the receive reference clock needs to be changed only between 27 MHz and 148.5 MHz for the supported video standards. A
detailed description of the multi-rate receiver is given below.
Receiver
A high-level block diagram of the multi-rate SDI receiver is shown in Figure 4. The receive-side logic comprises the
SERDES, decoder/descrambler, word alignment, LN extract, TRS detect, CRC extract/check, rate detect/control
and SCI control blocks. A description of each of these blocks is given below.
5
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Figure 4. Multi-Rate SDI Receiver, High-Level Block Diagram
pd_out
From Clock
Generator
Decoder /
Descrambler
Word
alignment
LN Extract
ln_out
rx_cref_clk
SERDES
sdi_inp
sdi_inn
wd_clk
pdo_clk
Recovered
Clock
(Clock to All
Modules)
SCI
Control
Rate Detect
/ Control
rx_hd_sdn
trs_out
field
vblank
hblank
Video
Timing
Signals
CRC Check
crc_error
To clock
generator
SERDES
The LatticeECP2M SERDES is either generated as part of the IP core or separately instantiated and connected to
the IP core, depending on the user’s choice. The SERDES receiver requires a reference clock that is equal to onetenth or one-twentieth of the data rate, depending on how it is configured. Refer to Table 1 for the actual data rates
and reference clock rates for the supported SD and HD rates. For multi-rate operation, a 10x division factor should
be used for both the reference clocks. The reference clock ports can be selected to be the differential inputs
(ref_clkp and ref_clkn) of the SERDES auxiliary channel or the FPGA core reference clock port
(rx_cref_clk). The IP core assumes that the appropriate reference clock is fed to the SERDES receiver in
response to the request from the IP core. It should also be noted that the SERDES receiver is able to receive both
the integer frame rate (1.485 Gbps) video as well as fractional frame rate (1.4835 Gbps) video with any one of the
HD reference clocks given in the table.
Table 1. Receiver Reference Clocks for Different Video Rates
Standard
Reference Clock
Division Factor
270 Mbps
27 MHz
10x
HD - Integer frame rate
1.485 Gbps
148.5 MHz
74.25 MHz
10x 20x
HD - Fractional frame rate
1.4835 Gbps
148.35 MHz
74.175 MHz
10x 20x
SD
Serial Data Rate
Decoder/Descrambler
Both SMPTE 259 and SMPTE 292 standards define the same scrambling and encoding methods. The polynomials
used are given in the Scrambler section of this document. The decoder/descrambler is implemented in the 10-bit or
20-bit parallel path. The input data is first decoded to NRZ and then descrambled following an essentially reverse
process of encoding and scrambling operations.
Word Alignment
The deserialized word from the SERDES may not have correctly aligned bit boundaries. The word alignment block
determines the degree of misalignment (offset) by looking for the special TRS sequences in the data. TRS is the
unique sequence, 3FFh, 000h, 000h, in a video stream that marks either the end of active video (EAV) or the start of
active video (SAV) time instants. Once the offset is determined, the words are realigned using the offset value.
LN Extract
This block is used for HD contents only. In HD frames, the line number is encoded as a two-word sequence and
inserted after the XYZ word of the EAV sequence. This block decodes the line number from the LN double words
and gives out the line number value on the ports.
6
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Video Timing Signals
Once a TRS is detected during the word alignment processes, the XYZ word following the TRS is decoded by this
block. From the XYZ word, the video timing signals field, hblank (horizontal blanking) and vblank (vertical blanking)
are determined. XYZ word is also used to determine whether the TRS corresponds to an EAV or a SAV instant.
CRC Check
CRC checking is implemented for HD video streams only. In HD source formats, there are two CRC words per line
that contain the CRC value for the previous line. The CRC checker computes the CRC for each line, compares with
the received CRC and flags an error if there is a mismatch.
Rate Detect/Select
This module is the heart of the Multi-Rate SDI receiver infrastructure. Rate detection is the process of determining
the interface standard and source format of the incoming video stream. Rate detection is done by alternatively setting the receiver in SD and HD modes and checking if the incoming stream matches the set rate. As mentioned
earlier, LatticeECP2M SERDES is able to receive both integer and fractional frame rate data using either of the reference clocks for the receiver. Therefore, it is only necessary to apply one of the HD reference clocks to receive
any of the HD standards. The Rate Detect module first sets the SERDES frequency band to one of the rates (SD or
HD) and requests the corresponding reference clock from the external clock source through the signal rx_hd_sdn.
It is assumed that the external clock source immediately responds with the correct clock on rx_cref_clk or
ref_clkp/n ports. After the SERDES starts receiving stable data, the timing errors from the TRS detect module and
CRC errors are used to determine if the received video corresponds to any of the supported formats. If the incoming video corresponds to one of the supported source formats, the receiver remains locked to this rate. If there are
several timing or CRC errors, it indicates that the receiver setting is not conforming to the incoming video rate. The
rate detect/select module then sets the receiver for the other rate by programming the SERDES and issuing a command to the external clock source.
The video stream is considered to match the selected clock when the TRS (timing reference signals, EAV and SAV)
come in at a specified frequency and the line-based CRC error is within a threshold.
Transmitter
The transmitter supports multi-rate operation catering to most source formats in SMPTE 259 and SMPTE 292. The
transmit rate is set through an input port. The transmitter and receiver are independent of each other and can be
used for independent video streams. However, when the transmit or receive rate is changed, a quad reset is
applied to the SERDES, affecting both the transmitter and the receiver. A high-level block diagram of the transmitter
is shown in Figure 5.
Figure 5. Multi-Rate SDI Transmitter, High-Level Block Diagram
ln_in
Framer
ln_in
trs_in
hd_sdn_in
pd_in
pdi_clk_out
Scrambler/
Encoder
sdi_outp
sdi_outn
SERDES
ref_clkp
ref_clkn
LN
Encoder
tx_half(full)clk
goes to all
transmit logic
CRC
The data input to the transmitter is the total video content, including active video, blanking, ANC (ancillary), and
TRS words. The CRC and line number words for HD can be used directly from the parallel data input or can be
computed by the core and inserted at appropriate places. The transmitter comprises the following logical modules:
CRC, Framer, Scrambler/Encoder and SERDES. A brief description of each of these modules is given below.
7
Lattice Semiconductor
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
CRC
The CRC is an optional module that is added if the CRC option is enabled through the IP core GUI. The CRC is
computed for the entire active line and the encoded CRC words are embedded at the appropriate places in the next
line. Line-based CRC is supported only for HD standards (i.e., when the input hd_sdn_in is high). The CRC is
computed using the following polynomial equation:
CRC (X) = X18 + X5 + X4 + 1
LN Encoder
The LN Encoder converts the raw line number value from the input port to two LN words for insertion in the video
stream. This module is used only for HD inputs.
Framer
The framer formats the raw data from the pd_in input by adding the CRC and line number words at appropriate
places. This module is used only for HD inputs.
Scrambler/Encoder
This module performs scrambling and NRZI encoding per the requirements set forth in SMPTE 259 and SPTE 292
standards. The scrambler implements the following equation:
G1(x) = x9 + x4 + 1
The NRZI encoder is defined by the following equation:
G2(x) = x + 1
SERDES
SERDES is configured for 10-bit parallel output for SD video and 20-bit parallel output for HD video rates. Since
this configuration is dynamic, 20 bits are physically available from SERDES. For SD video, only the most significant
10 bits are used and the rest are ignored. The reference clock for the transmit PLL is recommended to be supplied
through the auxiliary channel differential reference clock inputs for better jitter performance. The transmit PLL reference clock coming out from the SERDES (ff_txhalfclk or ff_txfullclk) is used to clock the transmit-side
logic. This clock is also provided by the IP core for use as data input.
Parameter Descriptions
The user-configurable parameters for the Multi-Rate SDI PHY IP Core are set from the IP core GUI. GUI dialog
boxes for SERDES both inside and outside the IP core are shown in Figures 6 and 7, respectively. Table 2
describes the parameter options available through the IP core GUI.
8
Lattice Semiconductor
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Figure 6. Multi-Rate SDI PHY IP GUI for SERDES Inside the IP Core
Figure 7. Multi-Rate SDI PHY IP GUI for SERDES Outside the IP Core
9
Lattice Semiconductor
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Table 2. Parameter Specifications for the Multi-Rate SDI PHY IP Core
Name
Description
Range/Options
Default
{Tx, Rx, Both}
Both
{Yes, No}
Yes
{0,1,2 or 3}
3
General
PHY function
Configures the IP core for Tx, Rx or both Tx and Rx functionalities.
SERDES
Include SERDES
Configures the SERDES either inside or outside the IP core.
SERDES channel
If SERDES is inside the IP core, this parameter specifies
which SERDES channel is to be used.
Tx Reference Clock
Tx reference clock selection. The options are differential
clock to the SERDES auxiliary channel (REFCLK) and core
reference clock from the FPGA fabric (CORE_TXREFCLK).
For better jitter performance, the REFCLK option is recommended.
{REFCLK,
CORE_TXREFCLK}
REFCLK
Rx Reference Clock
Rx reference clock selection. The options are differential
clock to the SERDES auxiliary channel (REFCLK) and core
reference clock from the FPGA fabric (CORE_RXREFCLK).
Since the reference clock does not largely affect the jitter
tolerance, either of the options can be used.
{REFCLK,
CORE_RXREFCLK}
CORE_RX
REFCLK
SD Data Width
Configures the user data width for SD standard video. If this
is 10 bits, the data is used directly. If it is 8 bits, the user
data drives the most significant 8 bits of the internal data
bus and the least significant 2 bits are filled with zeros by
the IP core. When the input 8 bits are all ones, then the
least significant bits are filled with ones. If configured as
dynamic, the 8-bit or 10-bit mode is decided by the input
signal sd8b_mode.
{8 bits, 10 bits,
dynamic 8/10 bits}
10 bits
LN Insert
Specifies whether the line number information is encoded
and inserted in the Tx data. If LN insertion is selected, the
core reads the raw line number value from the input port
ln_in, encodes to LN words and inserts them at appropriate locations. This is meaningful for HD modes only. If
“Dynamic” is selected, the line number insertion or bypass
is based on the value of the input signal lni_en. LN words
are inserted only when lni_en is high during the time
when LN0 and LN1 are placed at pd_in.
{Off, On, Dynamic},
Off
CRC Insert
If this is selected, the core computes the CRC of the incoming line and inserts the CRC information at appropriate
places in the line. If the value is “Dynamic”, CRC is inserted
only when crci_en is high during the time when CR0 and
CR1 are placed at the parallel input pd_in. The CRC
options do not affect the SD modes.
{Off, On, Dynamic}
Off
Configures if a clock enable port is required in the IP core.
This option must be selected only if required, as the clock
enable port increases the resource utilization of the IP core.
{Yes, No}
No
If this option is checked, the GSR is instantiated and used to
route the IP core’s rstn input. Using GSR improves the utilization and performance of the IP core. However, if GSR is
used, an active input at rstn will reset most of the FPGA
components as well. This option must be checked to enable
the hardware evaluation capability for this IP core.
{Yes, No}
Yes
Transmit Options
Optional Port
ce
GSR Usage
Connect reset port
to GSR
10
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Configuring the Multi-Rate SDI PHY IP Core
PHY Function
The IP GUI allows the selection of either receive or transmit or both receive and transmit functionality for the IP
core. Even if both functions are available, the receive and transmit logic are totally independent. The transmit and
receive rates, however, may be limited by the reference clock and banding requirements imposed by the SERDES
quad.
SERDES Options
The SERDES can be inside or outside the IP core. If SERDES is included inside the IP core, the generated IP core
instantiates the SERDES with proper settings and connects most of the SERDES I/O ports internally making it easier to use. Advanced users may choose not to include the SERDES inside the IP core. In this case, the SERDES
needs to be generated separately from the IPexpress™ GUI and properly connected to the IP core. The SERDES
must be generated with the SCI option enabled. The SCI ports of the SERDES must be connected to the corresponding ports in the IP core for proper operation of the IP core. Please refer to the LatticeECP2/M Family Data
Sheet or Lattice technical note TN1124, LatticeECP2/M SERDES/PCS Usage Guide for details on the usage of
SERDES. The ports in the IP core for connecting with SERDES have the same names as the corresponding
SERDES ports for easy connectivity.
As the IP core uses 10x for the reference clock multiplication factor, the reference clock frequencies for the three
video standards are 27 MHz, 148.5 MHz and 148.35 MHz.
Transmit Options
The parallel input data from the pd_in port is used word-for-word for transmission in most cases. If the input is HD,
there is an option for the IP core to compute CRC for each input data line and insert that in appropriate places in
the transmitted data stream. If the CRC Insert option is disabled (Off), then it is assumed that the incoming data
comes with appropriate CRC words in it. There is also an option to dynamically control the insertion or bypass of
the CRC fields using an input port.
If it is required to insert line numbers in the format required by the SMPTE 292 standard, the IP core can be set to
encode the raw line number information at the input port to the two line number words in the stream. The value at
ln_in is read into a register whenever the signal ln_set is high. The line number value at the register is read
when XYZ word is presented at pd_in, encoded and inserted after the XYZ word in the transmitted stream. When
the dynamic LN insert option is selected, the LN is inserted only if lni_en is high during the time when XYZ word
is at the input. If the LN insert is on and CRC insert is off, it is the user’s responsibility to make sure the CRC check
words take into account the encoded LN words also.
If CRC and LN insert functions are not enabled, the trs_in signal is not used. For SD inputs, trs_in is never
used. The SD input data width can be either 8 bits or 10 bits and the parameter SD Data Width determines the
width. If the data width is 8 bits, they are read from the part input bus pd_in[9:2].
Signal Descriptions
A description of the I/O ports for the Multi-Rate SDI PHY IP Core is provided in Table . The top-level interface diagrams for the IP core are shown in Figures 1 and 2.
Table 3. Top-Level I/O Interface
Port
Bits
I/O
Description
SERDES Interface (SERDES Inside the IP Core)
sdi_inp
1
I
High-speed SDI serial input - positive differential input. This is the serial SDI video stream
coming in from the video source or cable equalizer.
sdi_inn
1
I
High-speed SDI serial input - negative differential input. This is the serial SDI video stream
coming in from the video source or cable equalizer.
11
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Table 3. Top-Level I/O Interface (Continued)
Port
Bits
I/O
Description
sdi_outp
1
O
High-speed SDI serial output - positive differential output. This is the serial SDI video stream
going out to a display or video sink.
sdi_outn
1
O
High-speed SDI serial output - negative differential output. This is the serial SDI video
stream going out to a display or video sink.
ref_clkp
1
I
Reference clock to the SERDES auxiliary channel - positive differential input. This port is
available if either of the parameters Tx Reference Clk or Rx Reference Clk is set to
“REFCLK”.
ref_clkn
1
I
Reference clock to the SERDES auxiliary channel - negative differential input. This port is
available if either of the parameters Tx Reference Clk or Rx Reference Clk is set to
“REFCLK”.
SERDES Interface (SERDES Outside the IP Core)
ff_rxdata
20
I
Parallel receive data from the SERDES Rx channel.
ff_txdata
20
O
Parallel transmit data to the SERDES Tx channel.
ff_txfullclk
1
I
Transmit full clock from the SERDES.
ff_txhalfclk
1
I
Transmit half clock from the SERDES.
ff_txiclk
1
O
Clock synchronous with ff_txdata.
ff_rxiclk
1
O
Clock that is used to read out the parallel data from SERDES, ff_rxdata.
ff_ebrd_clk
1
O
Clock input for the elastic buffer read-out of SERDES Rx data.
ff_rxfullclk
1
I
Recovered full clock from the SERDES receive channel CDR.
ff_rxhalfclk
1
I
Recovered half clock from the SERDES receive channel CDR.
ffc_quad_rst
1
O
SERDES quad reset signal.
scisel
1
O
scien
1
O
sciwritedata
8
O
sciaddress
6
O
scienaux
1
O
sciselaux
1
O
scird
1
O
sciwstn
1
O
scireaddata
8
I
tx_cref_clk
1
I
Single-ended transmit reference clock to the SERDES. This port is available only if the
parameter Tx Reference Clk is set to “CORE_TXREFCLK”.
rx_cref_clk
1
I
Single-ended receive reference clock to the SERDES. This port is available only if the
parameter Rx Reference Clk is set to “CORE_RXREFCLK”.
rx_hd_sdn
1
O
HD or SD signal sent out to the Rx reference clock generation logic to supply the proper
clock for the receiver. If the value is ‘0’, an SD reference clock is requested and if it is ‘1’, a
HD reference clock is requested.
wd_clk
1
I
This is a static clock used for watchdog functionality. This clock is primarily used for SCI programming.
rstn
1
I
System-wide asynchronous active-low reset signal. This signal resets the total IP core
including the SERDES/PCS Quad.
ce
1
I
Optional clock enable signal. This freezes all the switching operations in the IP core and it is
useful for keeping the IP core in a power save mode.
pd_out
20
O
Parallel data output. This is the parallel video data output from the receiver. For SD, only the
lower 10 bits are valid.
pdo_clk
1
O
Clock output synchronous with the parallel output data, pd_out.
SERDES Client Interface (SCI) ports. Please refer to LatticeECP2M Family Data Sheet for
details.
Common Interface
Rx Interface
12
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Table 3. Top-Level I/O Interface (Continued)
Port
Bits
I/O
Description
vidactive
1
O
Video active signal. This output signal is high if the receiver is locked to a valid video stream
at the input. When the input rxscan_dis goes high, the vidactive signal is frozen at its
current state.
vidstd
4
O
Video standard output. This output bus gives out the video source format standard that is
identified by the receiver. This signal is valid only when vidactive is high. The video
source formats associated with different values of this signal are given in Table 4.
hd_sdn_out
1
O
HD/SD output. This signal indicates if the current output data corresponds to a HD or a SD
stream.
trs_out
1
O
Timing reference sequence output. This output is high during the start of the TRS sequence,
i.e., during the time 3FFh or FFFFFh is available on pd_out.
field
1
O
Field number. This is the field number information available in the XYZ word. This output
transitions immediately after the XYZ word output.
vblank
1
O
Vertical blanking signal. This output transitions immediately after the XYZ word output.
hblank
1
O
Horizontal blanking signal. This output transitions immediately after the XYZ word output.
ln_out
11
O
Line number output. This gives out the line number corresponding to the current parallel
data output. This output is valid for HD video only. This output transitions immediately after
LN1 word output.
crc_error
1
O
This signal indicates a CRC error has been detected for the current line. This output is valid
for HD video only. This output transitions one cycle after CR1 word output.
rxscan_dis
1
I
Rx scan disable input. This signal, when high, disables the receive scanning functionality.
rx_rate
2
I
This input command specifies which rates are scanned for by the receiver. The functionality
for different input values are as below:00: multi-rate. Receiver scans for both SD and HD 01
or 10: HD only 11: SD only
pd_in
20
I
Parallel data input. This is the parallel video stream data for transmission. For SD input, only
the lower 10 bits are read in.
pdi_clk_out
1
O
Output clock from the IP core that can be used to clock in the parallel data at pd_in. This is
the same clock that is used for the internal transmit logic.
Tx Interface
trs_in
1
I
Timing Reference Signal for the input video stream. This is a one-clock cycle wide pulse that
identifies the first word of the TRS in the parallel input data. The trs_in signal is used for
the computation of CRC as well as to determine CRC and LN insert instants. This signal is
not used for SD or if CRC and LN insertion are disabled for HD.
hd_sdn_in
1
I
HD/SD input. This signal identifies the current input data as a HD or a SD video stream. A
transition at this input triggers a reprogramming of the SERDES.
sd8b_mode
1
I
SD 8-bit mode. If this input is high, the incoming data is considered to be 8 bits wide. Only
the most significant 8 bits are read from the port. The least significant 2 bits are set to zero
for all data except the leading TRS sequence (or ANC identifier). When the 8 most significant 8 bits are 1’s, then the least significant 2 bits are made equal to ‘11’.
ln_in
11
I
Line number input. This input is read in HD mode only. The line number is read when
ln_set is high.
ln_set
1
I
Line number set signal. This signal is used as a strobe to read the value at the ln_in port.
The line number must be set during or before the LN0 word at the input pd_in.
lni_en
1
I
Line number insert enable. This signal enables insertion of internally encoded line number
words after the TRS. If this signal is low during LN0 and LN1 time instants, the line number
information contained in the parallel input stream is used unchanged.
crci_en
1
I
CRC insert enable. This signal enables the insertion of the internally computed CRC words
after the LN words in the parallel input stream. If this signal is low during CR0 or CR1
instants, the CRC information contained in the parallel input stream is used unchanged.
txpgm_busy
1
O
Transmitter is being programmed and busy. This signal indicates that the transmitter is being
programmed and that is not ready to accept input data for transmission. A transmitter programming happens whenever the input hd_sdn_in toggles or at system reset.
tx_plol
1
O
Tx PLL loss-of-lock output from the SERDES. This output is available only when SERDES in
inside the IP.
13
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Interfacing with Multi-Rate SDI PHY IP Core
SERDES Inside the IP Core
The ports available in the generated IP core depend on whether the check box “Include SERDES inside the IP” in
the IP GUI was checked. If this box was checked, the SERDES is instantiated inside the IP core and several ports
of the SERDES are internally connected to the Rx/Tx logic of the IP core. The Tx and Rx reference clocks are
brought out as input ports of the IP core. Depending on the selections on Tx Reference Clock and Rx Reference Clock in the IP GUI, only some of the following ports are available: ref_clkp, ref_clkn, tx_cref_clk
and rx_cref_clk. When the SERDES is inside the IP core, the serial inputs and outputs are directly available
from the IP core.
SERDES Outside the IP Core
If the SERDES is chosen to be outside the IP core, the user must generate SERDES using IPexpress, choosing the
SMPTE-292 protocol option and with SCI ports enabled. The SERDES parallel data I/Os, reset, clocks, control and
SCI ports need to be connected with the corresponding ports in the IP core.
Common Interface
The reference clock input ports on the IP core depend on the selections made in the IP GUI. The most common
scenario is to use REFCLK for Tx and RX_CREFCLK for Rx. In this case, the rx_cref_clk input of the IP core is
fed from the receive reference clock source. The receiver clock source, whether a programmable video clock generator or clock multiplexer with multiple clock inputs, is controlled by the clock request command rx_hd_sdn from
the IP core. If rx_hd_sdn is high, a HD clock (148.5 or 148.35 MHz) is requested. If it is low, an SD clock (27 MHz)
is requested. An independent clock that does not stop or vary during rate changes is required to be connected to
the wd_clk input port. The frequency of this clock is not very important, as long as it is not higher than 100 MHz.
This clock is primarily used to program the SERDES using the SCI interface.
Rx Interface
The parallel output, pd_out from the IP core is synchronous with the output clock, pdo_clk. The output bus vidstd provides the video standard and source format detected by the receiver. The standards for different values of
this signal are given in Table 4.
Table 4. Detected Video Standards
Value on
vidstd Port
Reference
SMPTE
Standard
Format1
Lines per
frame
Words per
Active Line2
0
1
Total Active
Lines
Words per
Total Line2
Frame Rate
(Hz)
Fields per
Frame
Data Rate
Divisor
2200
30 or 30/M
2
1 or M
Undefined
260M
A or B
1125
1920
1035
2
Reserved
3
295M
C
1250
1920
1080
2376
25
2
1
4
274M
D or E
1125
1920
1080
2200
30 or 30/M
2
1 or M
6
274M
F
1125
1920
1080
2640
25
2
1
7
274M
G or H
1125
1920
1080
2200
30 or 30/M
1
1 or M
5
Reserved
8
Reserved
9
274M
I
1125
1920
1080
2640
25
1
1
10
274M
J or K
1125
1920
1080
2750
24 or 24/M
1
1 or M
296M
L or M
750
1280
1650
60 or 60/M
1
1 or M
14
125M
SD525i
525
1440
486
1716
30
2
1
15
125M
SD625i
625
1440
576
1728
25
2
1
11
12
Reserved
720
13
Reserved
1. As described in SMPTE 292M.
2. Each channel Y Cb/Cr.
14
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
As shown in Table 4, the receiver detects both the integer and the fractional frame rates as the same standard. The
outputs field, hblank and vblank change state during the time when XYZ word of the TRS sequence is given at
the output and they remain in the same state until the next XYZ word instant. The line number output is available
only for HD rates. The value at the ln_out output is refreshed when LN1 is at the output and remains the same
until the next LN1 instant. The receiver determines the CRC words for Y and C channels from the received data
and compares with the corresponding words from the received stream. If there is a mismatch, the signal
crc_error is asserted high one cycle after YCR1 is at the output. This signal remains in the same state until the
next YCR1 word. The signal rxscan_dis freezes the receiver scanning functionality. The receiver remains set at
the same receive rate as long as this signal remains high. The receive scan disable can be used to temporarily disable scanning while the transmitter rate is being changed. The input rx_rate can be used to specify whether the
receiver scans for both SD and HD rates or only for one of these rates.
Tx Interface
The parallel data for the transmitter is read at the rising edge of pdi_clk_out. The input trs_in is used for the
computation of CRC and for the insertion of CRC and LN, if enabled. If CRC and LN are both disabled, or if the
input data is SD, the input trs_in is not used.
The output txpgm_busy goes high whenever there is a transmit rate change and remains high until the transmitter
programming is completed and it starts transmitting. When this signal is high, it is recommended to disable receiver
scanning functionality. This can be achieved by connecting txpgm_busy to the rxscan_dis input. By doing this,
the receiver settings are not disturbed during transmit rate change and when transmitter programming is complete,
both receiver and transmitter function normally. It must be noted that whenever the transmitter or the receiver is
programmed (when the receiver scans for input rate or when the transmit rate is changed), the SERDES is reset,
affecting both receive and transmit functionalities.
Timing Specifications
The top-level timing diagrams for the transmit and receive processes and interface signals are given in the following
figures.
Figure 8. Receive-Side Rate Scan and Lock Scheme
Rx input
stream
rx_hd_sdn
hd_sdn_out
SD
HD
HD
SD
HD
HD
SD
SD
HD
HD
SD
SD
HD
SD
HD
vidactive
15
SD
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Figure 9. Receive-Side Interface Signals
pdo_clk
Rx input
stream
x
3FF
000
000
XYZ
LN0
LN1
CR0
CR1
d1
d2
d3
XYZ
LN0
LN1
CR0
CR1
d1
Latency is around 15 cycles
pd_out
x
3FF
000
000
trs_out
ln_out
current line number
previous line number
field
hblank
vblank
crc_error
Figure 10. Transmit-Side Rate Changes
hd_sdn_in
txpgm_busy
pd_in
hd data
x
16
sd data
d2
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Figure 11. Transmit-Side Interface Signals
pdi_clk
_out
ln_set
ln_in
x
ln
x
3FF
x
x
trs_in
pd_in
lni_en
000
000
XYZ
LN0
LN1
x
CR0
CR1
Cx1/Y1
x
crci_en
000
x
x
x
3FF
EAV
x
SAV
IPexpress User-Configurable IP Core
The Multi-Rate SDI PHY IP core is an IPexpress User Configurable IP core, which allows designers to configure
the IP core and generate netlists and simulation files for use in designs. The IPexpress flow also supports a hardware evaluation capability, making it possible to create versions of the IP core that operate in hardware for a limited
period of time without requiring the purchase on an IP core license.
To download a full evaluation version of the Multi-Rate SDI PHY IP Core, please go to the Lattice IP Server tab in
the ispLEVER IPexpress GUI window. All ispLeverCORE™ IP cores available for download are visible on this tab.
Also, refer to the Readme file to find out more about hardware evaluation.
To find out more about the IPexpress User Configurable IP cores, please see the Lattice IPexpress Quick Start
Guide.
References
1. SMPTE 259M-2006- SDTV Digital Signal/Data- Serial Digital Interface.
2. SMPTE 292M-1998 Television- Bit-Serial Digital Interface for high-Definition Television Systems.
3. SMPTE 125M-1995 Television- Component Video Signal 4:2:2- Bit-Parallel Digital Interface.
4. ANSI/SMPTE 267M-1995 Television- Bit-Parallel Digital Interface- Component Video Signal 4:2:2 16x9 Aspect
Ratio.
5. SMPTE 260M-1999 Television- 1125/60 High-Definition Production System- Digital Representation and Bit-Parallel Interface.
6. SMPTE 274M-2003 Television- 1920 x 1080 Image Sample Structure, Digital Representation and Digital Timing
Reference Sequences for Multiple Picture Rates.
7. SMPTE 295M-1997 Television- 1920 x 1080 50 Hz- Scanning and Interface.
8. SMPTE 296M-2001 Television- 1280 x 720 Progressive Image Sample Structure- Analog and Digital Representation and Analog Interface.
9. LatticeECP2/M Family Data Sheet
10.Lattice technical note TN1124, LatticeECP2/M SERDES/PCS Usage Guide
17
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Technical Support Assistance
Hotline: 1-800-LATTICE (North America)
+1-503-268-8001 (Outside North America)
e-mail:
[email protected]
Internet: www.latticesemi.com
Revision History
Date
Version
Change Summary
October 2007
01.0
Initial release.
July 2008
01.1
Updated Appendix for LatticeECP2M Devices.
January 2012
01.2
Top-Level I/O Interface table – Fixed reference to Table 4 in the description for the vidstd port.
18
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Appendix A. Source Format Parameters for SMPTE 292 Interface Standard
(extracted from SMPTE 292M [2])
Table 5. Source Format Parameters for SMPTE 292 Interface Standard
Reference SMPTE
Standard
260M
Format
295M
274M
296M
A
B
C
D
E
F
G
H
I
J
K
L
M
Lines per frame
1125
1125
1250
1125
1125
1125
1125
1125
1125
1125
1125
750
750
Words per active
line1
1920
1920
1920
1920
1920
1920
1920
1920
1920
1920
1920
1280
1280
Total active lines
1035
1035
1080
1080
1080
1080
1080
1080
1080
1080
1080
720
720
Words per total line1
2200
2200
2376
2200
2200
2640
2200
2200
2640
2750
2750
1650
1650
Frame rate (Hz)
30
30/M
25
30
30/M
25
30
30/M
25
24
24/M
60
60/M
Fields per frame
2
2
2
2
2
2
1
1
1
1
1
1
1
Data rate divisor
1
M
1
1
M
1
1
M
1
1
M
1
M
1. Each channel Y Cb/Cr.
19
Multi-Rate Serial Data Interface Physical Layer
IP Core User’s Guide
Lattice Semiconductor
Appendix for LatticeECP2M Devices
Table 6. Performance and Resource Utilization1
IPexpress
User-Configurable Mode
Slices
LUTs
Registers
Tx Clock
fMAX (MHz)
Rx Clock
fMAX (MHz)
1
497
987
646
202
152
2
122
224
229
227
N/A
3
439
867
506
N/A
148
1. Performance and utilization characteristics are generated using LFE2M-35E-5F672C, with Lattice’s ispLEVER 7.1 software. When using
this IP core in a different density, speed, or grade within the LatticeECP2M family, performance and utilization may vary.
Table 7. Parameter Settings for Standard Configurations1, 2
Core Configuration
1
2
3
PHY Function
Parameter Name
Both
Tx
Rx
Include SERDES Inside the IP
Yes
Yes
Yes
3
3
3
Tx Reference Clock
SERDES Channel
REFCLK
REFCLK
N/A
Rx Reference Clock
CORE_RXREFCLK
N/A
CORE_RXREFCLK
SD Data Width
10 bits
10 bits
N/A
LN Insert
Off
Off
N/A
CRC Insert
Off
Off
N/A
Clock Enable Port
No
No
No
Connect Reset Port to GSR
Yes
Yes
Yes
1. Example configurations shown above.
2. The Multi-Rate Serial Digital Interface (SDI) Physical Layer IP Core is an IPexpress user-configurable core and can be used to generate
any allowable configuration.
Ordering Part Number
The Ordering Part Number (OPN) for all configurations of the Multi-Rate SDI PHY Layer targeting LatticeECP2M
devices is MR-SDI-PHY-PM-U1.
You can use the IPexpress software tool to help generate new configurations of this IP core. IPexpress is the Lattice
IP configuration utility, and is included as a standard feature of the ispLEVER design tools. Details regarding the
usage of IPexpress can be found in the IPexpress and ispLEVER help system. For more information on the ispLEVER design tools, visit the Lattice web site at: www.latticesemi.com/software.
20