The TQ9303 ENDEC (ENcoder/DECoder) implements 8b/10b encoding
and decoding, ordered set encoding and decoding, and parity checking
and generation as defined in the Fibre Channel Physical Signaling
Interface Standard (FC-PH). The ENDEC fully implements the FC-1 layer
of the Fibre Channel Standard. Implemented in a 0.8-micron CMOS
process, the ENDEC also performs 32-bit CRC checking and generation
as defined in the FC-2 layer of the Fibre Channel specification.
TQ9303
Fibre Channel
Encoder/Decoder
Features
• Compliant with ANSI X3T11
Fibre Channel Standard
• Full implementation of
Fibre Channel’s FC-1 layer
• Interfaces directly with
TriQuint’s GA9101/GA9102
and TQ9501/TQ9502 FC-0
Fibre Channel chipsets
• Suitable for proprietary serial
links (virtual ribbon cable)
• Implements 8b/10b encoding
and decoding
• Implements ordered set
encoding and decoding
DATACOM
PRODUCTS
The TQ9303 ENDEC interfaces directly to TriQuint’s FC-0 layer Fibre Channel
Transmitter (Tx) and Receiver (Rx) chipsets at the speeds shown below:
Triquint’s Transmitter and Receiver devices are designed with TriQuint’s
proprietary 0.7-micron GaAs process. The Tx and Rx interface directly to
copper-based electrical media or to a fiber-optic module. The Transmitter
performs parallel-to-serial conversion on the encoded data and generates
the internal high-speed clock for the serial output data stream. The Receiver
recovers the clock and data from the input serial stream, performs serialto-parallel conversion, and detects and aligns on the K28.5 character.
For additional information and latest specifications, see our website: www.triquint.com
• Checks and generates 32-bit
CRC and parity
•
10-bit TTL-compatible interface
to Transmitter and Receiver
• 32-bit interface to the host
• Fully synchronous operation
• 160-pin PQFP
1
TQ9303
Fibre Channel provides a transport vehicle for Intelligent
Peripheral Interface (IPI) and Small Computer System
Interface (SCSI) upper layer command sets, HighPerformance Parallel Interface (HIPPI) data link layer,
and other user-defined command sets. Fibre Channel
replaces the SCSI, IPI, and HIPPI physical interfaces
with a protocol-efficient alternative that provides
performance improvements over distance and speed.
Fibre Channel is optimized for predictable transfers of
large blocks of data such as those used in file transfers
between processors (such as super computers, mainframes, and super minis), storage systems (such as disk
and tape drives), communications devices, and outputonly devices (such as laser printers and raster scan
Figure 2. TQ9303 ENDEC Block Diagram
CTXD0..31
CTXC0,
CTXC1,
CTXP0..3,
CTXRAWA,
CTXRAWB
CTXRAW,
CTXPENN,
CTXPMODE
CTXPERR
CTXCERR
CTXCLK
CTXWREF
RESETN
RXERROR
CRXD0..31
CRXP0..3,
CRXS0,
CRXS2..4
RAW Rx,
RXPMODE
CRXS1
CRXS5
WRDSYNC
RXCKPH0,1
CRXCLK
32
17
Shifter
20
Ordered Set
Encoder
32-BIT CRC
Generator/
Checker
40
17
Parity
Checker/
Generator
Word-to-
Half-Word
40
Register
8
3
Register
ENCODER SECTION
DECODER SECTION
1
Mux
20
16
16
1
3
Line State
Decoder
32
Half-Word-
40
36
4
Parity
Generator
2
to-Word
Shifter
Register
8
2
Register
20
graphics terminals). The Fibre Channel protocol is
implemented in hardware, making it simple, efficient,
and robust.
The lower level physical interface is decoupled from the
higher level protocol, allowing Fibre Channel to be configured with various topologies. Point-to-point, multi-drop
bus, ring, and cross-point switch topologies are permitted in Fibre Channel, optimizing it for specific applications.
Fibre Channel supports distances up to 10␣ Km at baud
rates of 132.8125␣ Mbaud to 1.0625␣ Gbaud. Coax and
STP (Shielded Twisted Pair) are used at lower data
rates and shorter distances, while fiber-optic cables are
used for higher data rates and longer distances.
Mux
32-Bit CRC
Checker
17
8b/10b
Encoder
Ordered Set
Decoder
Word Sync
Detector
20
Word
Clk
Clock Generator
10b/8b
Decoder
Mux
Half Word
Clk
20
Word
Clk
Clock Generator
Half-Word-
to-Byte
Shifter
Byte
Clk
Byte-to-
Half-Word
Shifter
Half Word
Clk
10
Byte
Clk
10
Register
10
Register
BTXD0..9
BTXCKIN
BTXCKOUT
BRXD0..9
BRXCLK
BRXSYNC
2
For additional information and latest specifications, see our website: www.triquint.com
Functional Description
TQ9303
The TQ9303 may be divided into two independent
functional sections: the Encoder and Decoder, as
shown in Figure 2. The Encoder section describes the
flow of data from the host to the transmitter.
Conversely, the Decoder section describes the flow of
data from the receiver to the host. Designed for fullduplex operation, the Encoder and Decoder will
transmit and receive one at a time or simultaneously.
The Encoder performs 8b/10b encoding of information
from the host to the transmitter. The Decoder performs
10b/8b decoding of information from the receiver to
the host. The host interface is denoted by a letter C (as
in
CTXP), and the transmit/receive interface is denoted
by a letter B (as in
section are denoted with the letters TX (as in C
and pins within the Decoder section are denoted with
RX (as in C
has a 32-bit transmit data bus and a 32-bit receive data
bus, each with 4-bit parity and 8-bit control. The
transmitter and receiver interfaces to the TQ9303 are
10-bit data buses. Table␣ 5 includes all the pin
descriptions. Detailed descriptions of the Encoder and
Decoder sections follow.
RXS1). At the host interface, the TQ9303
BTXD0). Pins within the Encoder
TXP),
Encoder Section
The Encoder has several functional blocks:
Parity Check, 32-Bit CRC, Ordered Set generator,
8b/10b Encoder, and Clock Generator. The Encoder
section has two modes of operation: Normal mode and
Raw mode. In the Normal mode, the Encoder section
receives a word from the host interface, checks parity,
calculates CRC, divides the word into bytes, encodes
them using 8b/10b, and generates a 10-bit output, as
illustrated in Figure 2. In the Raw mode, the Encoder
section receives a word from the host interface without
parity check, CRC check, or 8b/10b encoding.
The following is the encode sequence data flow:
1. Word input
2. Parity check
3. Word–to–half-word conversion
4. Ordered set encoding
5. 32-bit CRC check or generate
6. Muxing between ordered set, 32-bit CRC, and
unchanged input
7. 8b/10b encoding
8. Muxing between unchanged input and
encoded word
9. Half-word–to–byte conversion
10. Byte output
Parity Check Block
Parity check depends on the TXPENN (Transmit Parity
ENable Not) input. TXPENN high ignores parity, while
TXPENN low checks parity for each byte on the data
bus, CTXD0..31. There are four parity bits (CTXP0..3),
each bit corresponding to a byte of data, as follows:
CTXP0 to CTXD0..7, CTXP1 to CTXD8..15, CTXP2 to
CTXD16..23, and CTXP3 to CTXD24..31. Control bit
TXPMODE (Transmit Parity MODE) alters the normal
meaning of CTXP3. TXPMODE low is the normal mode,
where CTXP3 checks for parity for CTXD24..31. With
TXPMODE high, CTXP3 checks for parity for
CTXD24..31 and CTXC0. CTXC0 is a control input
which indicates whether CTXD0..31 is data or an
ordered set. An ordered set is a Fibre Channel word
where the most significant byte is composed of a valid
special character, K28.5, as defined in the standard.
Appendix A includes a table of valid special characters.
The parity bits follow odd parity convention, where it is
high if the number of ones is even and low if the
number of ones is odd.
DATACOM
PRODUCTS
For additional information and latest specifications, see our website: www.triquint.com
3
TQ9303
CTXPERR (Transmit Parity ERRor) is driven high
when an error is detected in the parity check mode.
When parity checking is disabled, CTXPERR is driven
low. In Raw Mode transmit, where the data
flow
bypasses the parity check, 32-bit CRC, 8b/10b encoder,
and ordered set encoder, CTXPERR is driven low.
32-Bit CRC Block
32-bit Cyclic Redundancy Checking (CRC) generates
or checks CRC, depending on CTXC1. CTXC1 high
generates CRC, while CTXC1 low checks CRC for the
incoming frame. The CRC used in Fibre Channel is the
same as FDDI's frame check sequence, where a 32bit CRC is computed for every frame, starting after
SOF (Start Of Frame) and ending a byte before EOF
(End Of Frame). The resulting 32-bit CRC is
automatically inserted into the frame before EOF.
In the check CRC mode, CTXCERR (Transmit Crc
ERRor) is driven high when a CRC error is detected.
In the generate CRC mode, CTXCERR is driven low. In
Raw Mode transmit where the data flow bypasses the
parity check, 32-bit CRC, 8b/10b encoder, and ordered
set encoder, CTXCERR is driven low.
The Generate CRC mode timing diagrams are shown in
Figure 3. CTXC1 is high for the entire frame, when
generating CRC. CTXC0 is high only for the duration of
SOF, indicating that the input word (CTXD0..31) is an
ordered set. Similarly, CTXC0 is high for the duration of
EOF, which is another ordered set. The 32-bit CRC
block computes the CRC for data after SOF and before
EOF. The resulting CRC is inserted between the last
data word and EOF at the output (BTXD0..9).
The Check CRC mode timing diagrams are shown in
Figure 4. CTXC1 is low for the whole frame when
checking CRC. CTXC0 is high only for the duration of
SOF, indicating that the input word (CTXD0..31) is an
ordered set. Similarly, CTXC0 is high for the duration of
EOF, another ordered set. 32-bit CRC begins after SOF
Figure 3. Generate CRC Mode TIming
CTXD0..31
CTXC1
CTXC0
BTXD0..9
4
SOF
For additional information and latest specifications, see our website: www.triquint.com
D0
4 Bytes
SOF
CRC Computation
D1
D0
Dn
Dn-1
EOF
Dn
"d"
CRC
Idle
EOF
Figure 4. Check CRC Mode TIming
TQ9303
CRC Computation
CTXD0..31
CTXC1
CTXC0
CTCXERR
BTXD0..9
SOF
D0
4 Bytes
SOF
D1
D0
and ends before EOF. CTXCERR remains low if the
computed CRC matches the CRC input on CTXD0..31.
CTXCERR is driven high for one word cycle after the
end of EOF.
If CTXC1␣ is␣ high (generate CRC) then the ENDEC will
add one word (the CRC) to the user’s data frame before
encoding the EOF. In this situation, when the user
commands the ENDEC to encode an EOF, it is latched
for one CTXCLK cycle while the ENDEC inserts the
generated CRC in the data stream. Then the requested
EOF is encoded. During the encoding of the EOF (that
is, the one that was latched for encoding after the CRC
was inserted) the ENDEC ignores the CTX inputs.
Ordered Set Generator Block
An ordered set is a Fibre Channel word in which the
first byte is a K28.5 special character, followed by valid
data characters. Appendix B contains tables for the
ordered set coding scheme. When CTXC0 is high, the
ordered set generator generates an ordered set from
Dn
Dn-1
CRC
Dn
EOF
CRC
Idle
EOF
the most significant byte of the input data, CTXD24..31.
Although only the most significant byte of the input
word is required for generating an ordered set, and
lower order bits CTXD0..23 are “don’t cares” for
encoding the ordered set, parity checking is performed
on the word. Valid word parity must be maintained to
prevent parity errors.
If a parity or CRC error is detected within a frame,
some EOF ordered sets are modified, indicating an
invalid frame. Ordered sets EOF
EOF
(EOF Terminate) are modified to EOFNI (EOF
T
(EOF Normal) and
N
Normal–Invalid).
Any ordered set can be sent or received. If the ordered
set desired is not in the predefined set of Fibre Channel
ordered sets, the user can create it using the “special”
ordered set commands (see Appendix B). For instance,
to send “K28.5, D0.0, D31.7, D0.0,” the user would
send 8500FF00h on CTXD0..31 while holding CTXC0
high. When receiving this same “special” ordered set
DATACOM
PRODUCTS
For additional information and latest specifications, see our website: www.triquint.com
5
TQ9303
(which does not correspond to any predefined Fibre
Channel ordered set) the ENDEC will send the user the
same value, 8500FF00h, while holding CRXS0 high. It
is up the the user to examine the second, third, and
fourth bytes of “special” ordered sets to identify them.
8b/10b Encoder Block
The 8b/10b Encoder encodes 8-bit-wide data to 10-bitwide data to improve its transmission characteristics.
The 8b/10b coding scheme maintains the signal DC
balance by keeping the same number of ones and zeros
for easier receiver designs, provides good transition
density for improved clock recovery, and improves
error checking. It also forces the correct running
disparity when encoding line states, idles, or receiverready ordered sets. Appendix A contains the lookup
tables for the 8b/10b coding scheme.
Clock Generator Block
The Clock Generator generates word, half-word, and
byte clocks required by other blocks in the Encoder. It
uses BTXCKIN (a byte clock) from the transmitter as a
reference clock. For example, using Fibre Channel data
rates, BTXCKIN runs at 106.25␣ MHz using FC1063,
53.125␣ MHz using FC531, and 26.5625␣ MHz using
FC266. The Clock Generator generates BTXCKOUT for
clocking BTXD0..9. It also generates CTXWREF, a word
clock used by the host to generate CTXCLK, which
clocks the host I/O registers.
25.5625␣ MHz using FC1063,
CTXCLK runs at
13.28125␣ MHz using
FC531, and 6.640625␣ MHz using FC266.
Raw Mode Transmit
In Raw Mode Transmit where TXRAW is high for the
whole frame, the input data word bypasses the parity
check, ordered set generator, CRC, and 8b/10b, and is
directly converted to bytes of data. The word-to-byte
mapping of input to output is listed in Table␣ 1. Note that
in raw mode, a “raw” word may be inserted into the
data flow at any time, although running disparity will be
forced negative and the word sync detector state
machine will reset.
Proprietary Link Mode
The PL_IDLE (Proprietary Link IDLE) input can be used
to simplify designs that do not have to conform to Fibre
Channel standards. In such designs the CTXC0 input is
driven low (that is, grounded) and the PL_IDLE pin is
used to distinguish data from nondata. The PL_IDLE
pin controls a bit logic in front of the input registers of
the CTXC0 and CTXD24..31 inputs. It was added to
make it easier for users who aren’t concerned with the
Fibre Channel protocol, but simply want to control the
transmission of data without habing to mux control
information into their data paths in order to control the
CTXD24..31 pins for ordered set control.
On the rising edge of CTXCLK on the first cycle of
PL_IDLE going high, the input registers for CTXC0 and
CTXD24..31 are “jammed” with the value that would
make the ENDEC encode an EOFa. As long as PL_IDLE
is held high, these input registers are jammed with the
value that would make the ENDEC encode an IDLE
ordered set. If CTXC1 is low (check mode) CTXERR will
properly reflect the validity of CRC contained in the
user’s data (assuming the user’s data contains CRC), or
it can be ignored if no CRC is used. If CTXC1 is high
(generate mode), the ENDEC will insert CRC before
encoding the EOFa followed by IDLEs. This creates a
situation in which the user’s data will begin as soon as
PL_IDLE is dropped (with no preceding SOF); but it
does not present a problem for the ENDEC, because the
CRC blocks in both Rx and Tx halves are initialized by
any ordered set. Thus, the IDLE ordered set that
preceeds the user’s data is sufficient to ensure proper
CRC calculation.
6
For additional information and latest specifications, see our website: www.triquint.com
For additional information and latest specifications, see our website: www.triquint.com
7
TQ9303
Proprietary Link Mode (continued)
When PL_IDLE is driven low, data words on CTXD0..31
are encoded just as in Fibre Channel operation. When
PL_IDLE is driven high, the TQ9303 encodes one EOFa
ordered set followed by IDLE ordered sets for as long
as PL_IDLE remains high.
The EOFa ordered set is used to ensure proper running
disparity. When using the PL_IDLE signal, IDLE
ordered sets do not force proper running disparity. It is
therefore necessary to transmit at least one word with
PL_IDLE low followed by at least one word with
PL_IDLE high in order to guarantee proper running
disparity.
Without proper running disparity, the receiver portion
of the TQ9303 may flag the IDLE ordered sets as
errors and prevent the word sync state machine from
reaching the synchronized state as long as the running
disparity is incorrect.
Without proper running disparity, the receiver portion
of the TQ9303 may flag the IDLE ordered sets as errors
and prevent the word sync state machine from
reaching the synchronized state as long as the running
disparity is incorrect.
The contents and parity of CTXD0..31 and CTXP0..3 are
ignored during the word cycles when PL_IDLE is held
high. If CTXC1 is low, then CRC checking will occur,
which may cause the TXCERR signal to indicate an
error, which can be ignored in proprietary designs. If
CTXC1 is driven high, then the TQ9303 will generate a
32-bit CRC word during the first word cycle of PL_IDLE
high. During the second word cycle of PL_IDLE high,
the EOFa will be encoded followed by IDLE ordered
sets. Therefore, at least two word cycles of PL_IDLE
high between data bursts must be provided when using
CRC generation (that is, CTXC1␣ high). When using CRC
generation, the CRXS1 signal is used to indicate CRC
errors. When not using the CRC, CRXS1 should be
ignored. For non-Fibre Channel designs making use of
the PL_IDLE input, the CRXSO output can be used to
distinguish received data from idle time.
Decoder Section
The Decoder has several functional blocks:
10b/8b Decoder, Ordered Set Decoder, Word Sync
Detector, Line State Decoder, 32-bit CRC Checker,
Parity Generator, and Clock Generator.
The Decoder section has two modes of operation: the
Normal mode and Raw mode. In the Normal mode, the
Decoder section takes 10 bits of data from the Receiver
output, decodes it using 10b/8b, decodes ordered sets,
checks CRC, combines four bytes into a single word
output, and generates parity. In the Raw mode, the
Decoder section directly combines the bytes into
words, bypassing 10b/8b decoding, ordered set
decoding, CRC checking, and parity generation.
The following is the decode sequence data flow:
1. Byte Input
2. Byte–to–Half-Word Conversion
3. 10b/8b Decoding
4. Ordered Set Decoding
5. Line State Decoding
6. Word Sync Generation
7. 32-Bit CRC Checking
8. Muxing between Ordered Set, Unchanged Input,
10b/8b Decoded Input, and Status Bits
9. Half-Word–to–Word Conversion
10. Parity Generation
11. Word Output
8
For additional information and latest specifications, see our website: www.triquint.com
Loading...
+ 17 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.