Xilinx UG181 Welder User Manual


 
72 www.xilinx.com SPI-4.2 Lite v4.3 User Guide
UG181 June 27, 2008
Chapter 4: Designing with the Core
R
Sync Data
In the Sync Data state, normal core operation is enabled.
In this state, the Sink core continuously checks DIP-4 parity, stores data received on
RDat[15:0] into the Sink FIFO, and sends FIFO Channel status on RStat. The core is In
Frame in this state.
Sync Train
The Sink core enters the Sync Train state when a training pattern is detected on
RDat[15:0]. The Sink core stops storing data to the Sink FIFO while in this state. The core
remains in this state while training is received on RDat.
In this state, the Sink core continuously checks DIP-4 parity, and sends FIFO Channel
status on RStat. The core is In Frame in this state.
In-Frame and Out-of-Frame Behavior
There are a number of conditions that must be met before the Sink core deasserts SnkOof
and starts accepting data. Data will be written to the FIFO when the following conditions
are met:
Reset_n is deasserted
SnkFifoReset_n is deasserted
SnkEn is asserted
SnkOof is deasserted (NumTrainSequences consecutive training patterns received)
First valid SOP-to-data transition detected (after SnkOof or SnkFifoReset_n
deasserted)
Three conditions will cause the Sink core to lose synchronization and assert SnkOof. The
core stops writing data to the FIFO when any of these conditions occur.
SnkEn is deasserted
SnkAlmostFull_n asserted and SnkFifoAFMode = Send Framing Patterns ("00")
NumDip4Errors consecutive DIP4 errors are detected
Error Handling
This section describes how the Sink core handles receiving non-compliant SPI-4.2 data and
subsequent error handling in a number of common scenarios. This section also provides
information on the Sink core error status signals.
Short Packet Support (less than 16-byte packet support)
Though the SPI-4.2 specification requires that successive start-of-packets must occur not
less than eight cycles apart, there is no restriction on payload control words—which are not
SOPs. The Sink core automatically handles any size packets, including multiple SOP that
are less than eight cycles apart. If SOPs are less than eight cycles apart, the data will be
passed through the core correctly, but the status output SnkBusErr will be flagged to
indicate a protocol violation.