Lattice Semiconductor Functional Description
IPUG82_01.5, December 2011 10 Tri-Rate SDI PHY IP User’s Guide
video stream and asserts the vid_active signal. On the other hand, if the TRS instances are not consistent with the
source formats that are expected for the current scanned rate, the receiver advances to scan the next rate.
The rate detection state machine is set to scan for the HD rate first, followed by 3G and SD rates and then to go
back to scan HD to start the sequence over. The state machine advances to scan the next rate only if that rate is
enabled by the dynamic input signal rx_rate. For each scan rate, the state machine goes through three states-
“Program”, “Check” and “Lock”. The state advances are based on the number of TRS matches, TRS mismatches
and time-out errors. A time-out error occurs when a TRS is not received in a reasonably long duration of time. Dur-
ing the “Program” state, the external clock sources are set to provide the relevant clocks and/or the SERDES divid-
ers are set to receive the relevant rate. If a TRS is received or if the number of time-out errors is more than the
value set using “3G (HD/SD) Programming time” parameter, the state machine advances to the “Check” state.
While in the “Check” state, if the number of TRS matches reaches the value set for “Lock match threshold” param-
eter, the state machine advances to “Lock” state. On the other hand, if the number of TRS mismatches and time-
out errors exceeds the “Unlock error threshold” value, the state machine advances to the “Check” state for the next
rate. While in the “Lock” state, the state machine continues to be in that state as long the number of time-out and
TRS mismatch errors are within “Unlock error threshold” value. When the number of errors exceeds the threshold
while in the “Lock” state, the state machine advances to the “Check” state for the next rate.
SMPTE 292M and SMPTE 424M also define a fractional frame rate video stream compliant with the North Ameri-
can standards. Thus SMPTE 292M includes a 1.4835 Gbps data rate in addition to the 1.485 Gbps rate and
SMPTE 424M includes a 2.967 Gbps data rate in addition to the 2.97 Gbps rate. This IP core supports both the
integer and fractional frame rates, as long as the data and clock inputs to the IP core are consistent with the corre-
sponding rates. While the IP core can receive both integer and fractional frame rate standards, it will not be able to
distinguish between the two. However, integer or fractional frame rate standards can be easily determined by con-
structing a small logic circuit outside the IP to compare the frequency of the receive recovered clock with that of
another clock of known frequency (like the receive reference clock or the 100 MHz clock available on the
LatticeECP3 Video Protocol Board).
Format Detection
This module determines the source format of the input video stream. The format is based on the number of active
words, number of total words and whether the video is interlaced. The format is provided through the vid_format
and frame_format output ports. For 3G Level-B video (3G-b), the stream 1 video data is used for format detection.
CRC Checker
The CRC checker computes the CRC values for each of the video streams and components and compares those
with the CRC values available in CR0 and CR1 words of the received video. In HD and 3G Level-A video (3G-a)
streams, there are two CRC words per line that contain the CRC value for the previous line. The CRC checker com-
putes the CRC for each line, compares with the received CRC and flags an error if there is a mismatch. For 3G-b,
there are four CRC words, one each for the Y and C components of each stream. Errors are flagged separately for
each of the four CRC comparisons.
XYZ Word Decoder
This block decodes the “XYZ” word that follows the TRS in the video stream. By decoding 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.
LN Decoder
In HD and 3G video formats, the line number is encoded as a two-word sequence and inserted after the XYZ word
of the EAV sequence. The LN decoder block decodes the line number from the LN double words and gives out the
line number value on the ln1_out port. For 3G-b, the line numbers for stream 1 and stream 2 video are separately
given out on ln1_out and ln2_out ports respectively.