The AHA4210, referred to as the RSVP, is a
single-chip Forward Error Correction LSI device
combining a Viterbi decoder, a Reed-Solomon
decoder, a descrambler (energy dispersal) and a
deinterleav er. The de vice c onforms to the MPEG-II
transport layer protocol specified by ISO/IEC
standard and FEC requirements of Digital Video
Broadcasting (DVB) DT/8622/DVB and DT/8610/
III-B specif ication. These documen ts are referr ed to
as the DVB specification.
The Viterbi decoder supports selectable code
rates of 1/2, 2/3, 3/4, 5/6, 6/7 or 7/8 using industry
standard puncturing algorithms. Viterbi decoded
data rate is up to 62 Mbits/second at all code rates.
The chip also performs byte alignment and block/
packet synchron ization detecti ng sync bytes use d in
transmission. The descrambling function is
selectable with a programmable seed or performed
externally. Each fun ctional block may be bypassed
giving more flexibility to a system designer.
Block size programmability, several code rate
choices and programmable RS error correction
capability allows flexibility to a digital
communications system designer incorporating
Forward Error Correction into a receiver. Intel
80C188 multiplexed parallel or serial I
interface allows the system microprocessor to
program internal registers and monitor channel
performance.
This document contains ke y featu re s,
correction terms, functional description, signal
functions, Related Technical Publications, DC and
AC characteristics, pinout, package dimension and
ordering information.
1.1APPLICATIONS
• Satellite communications/VSAT
• DBS
• Military Communications
1.2FEATURES
GENERAL:
• Conforms to the ISO/IEC-CD 13818-1 MPEG-II
transport layer protocol and Digital Video
Broadcasting (DVB)FEC specification
• Viterbi decoded data rates up to 62 Mbits/sec at
any code rate
• Programmable block size from 34 to 255 bytes
• Multiplexed parallel Intel 80C188 or serial I
protocol microprocessor interface
• Byte or serial data output
• On-Chip err or rate monitor
2
C protocol
2
C
• Programmable bypass modes for each of the
major blocks
• Configured to DVB mode of operation on
power-up
• 68 pin PLCC
VITERBI DECODER:
• Selectable decoder rates 1/2, 2/3, 3/4, 5/6, 6/7
and 7/8 or automatic acquire mode
• 3-Bit soft-decision decoder inputs
• Constraint length k=7
SYNCHRONIZATION CONTROL:
• Automatic synchronization capability for QPSK
based demodulator
• Up to one sync byte per block
• Responds to inverted sync byte
REED-SOLOMON:
• t=1 through 8 in increments of 0.5
• Correction capability of up to 8 bytes
• Internal FIFOs
DEINTERLEAVER:
• Programmable convolutional deinterleaving
(Ramsey II, Ramsey II modified or Forney) to
depth I=16
• No externa l RAM required
ENERGY DISPERSAL:
• Selectable on-chip DVB specification Energy
Dispersal
• Optional bypass mode
• Programmable seed
1.3CONVENTIONS AND NOTATIONS
- Cert ain signals are logically true at a voltage
defined as “low” in the data sheet. All such
signals have an “N” appended to the end of the
signal name. For example, RSTN and RDYON.
- “Signal assertion” means the signal is logically true.
- Hex values are defined with a prefix of “0x”,
such as “0x10”.
- A range of signal names is denoted by a set of
colons between the numbe rs . Most signi f ican t b it
is always shown first, followed by least
significant bit. For example, ERRSTAT[6:0]
represents number of bytes corrected by the
Reed-Solomon decoder.
- A product of two variables is expressed with an
“x”, for example, BLKLEN2 x JDEPTH
represents Block Length mu ltip lied b y Int erle a ve
Depth.
- Megabytes per second is referred to as MBytes/
sec or MB/sec. Megabit s per second i s referred as
Mbits/sec or Mb/sec.
- Frequency of a clock signal is referred to as
F(name). For example, F(VCLK) specifies
frequency of VCLK.
PS4210-1099Page 1 of 30
Advanced Hardware Architectures, Inc.
1.4DEFINITION OF TERMS AND PROGRAMMABILITY
VITERBI
TERM
kConstraint Length
NAME
(other references)
Number of input bits over which convolutional
code is computed.
Length of path through the trellis over which the
Traceback Depth
Viterbi decoder computes the likelihood of a
decoded bit value.
Puncturing
Puncture Pattern
Convolutional Code
Rate (Puncture Rate)
Process of deriving a higher rate code from a basic
rate code.
Mapping between 1/2 rate encoded bits and new
higher rate encoded bits.
Ratio of input to output bits for convolutional
code.
DEINTERLEAVER
TERM
Ramsey or ForneyConvolutional interleave techniques.N/A
JInterleave DepthMinimum separation in th e interleaved stream.1 through 16
NAME
(other references)
DEFINITIONRANGE
7
minimum=115
N/A
N/A
1/2, 2/3, 3/4, 5/6, 6/
7, 7/8
DEFINITIONRANGE
TERM
K
R
N
Message Length (user
data or message bytes)
Check symbols
(parity or redundancy)
Codeword Length
(block length)
NAME
(other references)
tError Corrections
eNumber of Errors
RS Code RateRatio of message to block length, .0.67 through 0.99
TERM
NAME
(other references)
Bypass
Block
PacketMPEG-II transport layer packet size.
REED-SOLOMON
DEFINITIONRANGE
Number of user data symbols in one message
block. Size of a symbol in AHA4210 is 8-bits.
Message length is .
KNR–=
Symbols appended to the user data to detect and
correct errors. The number of check symbols
required in a sys te m is . Every 2 ch ec k bytes
R 2e≥
correct 1 error byte.
Sum of message and check symbols. .
NKR+=
Maximum number of error corrections performed
by the device. The value is t=Integer .
NK–
-------------2
An error is defined as an erroneous byte whose
correct value and position within the message
block are both unknown.
K
--- -
GENERAL
DEFINITIONRANGE
Processing data either through or around a
functional block.
An entity of both message and Reed-Solomon check
bytes. The number of message bytes is equal to the
length of the MPEG-II packet for a DVB system.
32 thru 253 bytes
(32, 33, 34 . . . 253)
2 thru 16 bytes in
increments of 1
(2, 3, 4 . . . 16)
34 thru 255 bytes
(34, 35, 36 . . . 255)
1 thru 8 bytes in
increments of 0.5
(1, 1.5, 2, 2.5 . . . 8)
minimum 0
N/A
(34, 35, . . . 255)
bytes
188 including one
sync mark byte
Page 2 of 30PS4210-1099
Advanced Hardware Architectures, Inc.
2.0FUNCTIONAL DESCRIPTION
This section presents an architectural overview of the chip and its many functions, features and
operating modes. Block diagram of the chip shows the Viterbi and Reed-Solomon decoder modules.
Figure 1:AHA4210 Block Diagram
BYTE[1:0]
MUX
I[2:0]
IQSTRB
Q[2:0]
SCLK
DATAFLUSH
INPUT
INTERFACE
DEPUNCTURING
LOGIC
VITERBI
DECODER
DEINTERLEAVER
&
RAM
REED-SOLOMON
DECODER
&
ENGERY DISPERSAL
(DESCRAMBLER)
BLKNEW
DO[7:0]
RDYON
BLKERR
MD[7:0]
SYNC CONTRO L
MAL
MCSN
RSTN
MICROPROCESSOR INTERFACE
DECODER CONTROL
SCL
SDA
MRDN
MWRN
2.1SYNCHRONIZATION
This module synchronizes data received from
Viterbi to byte and packet boundaries. The
synchronization alg ori thm is summarized below.
Bit-to-byte mapping is performed while
looking for sync marks specified in register
VSYNCP . Ev ery bit posit ion is examine d for a sync
mark byte. If no sync mark is d etected af ter looking
for a minimum of two block lengths, then the phase
is incremented and the process is repeated. Carrier
and depuncture phases are cycled through
searching for sync marks. This process terminates
when sync is achieved.
After a sync mark is detected, additional sync
marks as specified in SYNCON[2:0] are searched.
Detection of additional sync completes the block
sync process and da ta is out put on th e ne xt in v er ted
sync (or regular sync if VCON[7] = 0). Once the
output data flow starts, cons ecu tive sync marks are
required if enabled by the VCON[6] to remain in
sync. In this case if SYNCOFF[2:0] consecutive
sync marks are missed, then the block goes out of
the sync condition.
The block may also go out of sync if the ReedSolomon uncorrectable blocks threshold is
exceeded over a programmable number of blocks.
This feature is enabled by VCON [5]. Total Block
Count and Threshold are programmed by
VRSSIZE and VRSTH registers.
DECODER
CLOCK CONTR OL
VCLK
READY
BCLK
2.1.1EXPLANATION OF CLOCKING SCHEMES
The Viterbi block has two clock inputs: SCLK
and VCLK. VCLK runs the actual Viterbi decoder
block while SCLK simply d riv es the in put stage for
V iterbi. The data inp uts I[2:0], Q[2:0] and IQSTRB
are synchronous to SCLK.
There are two approaches to using this
interface. Approa ch one involves tying IQSTRB to
VDD (active) and assuring that:
VCLK
Frequency SCLK()Frequency
≤
Where CR is defined as the code ra te. Note that
this is a strict requi re me nt and the chi p will enter a
state requiring a hard reset if this is not met.
One advantage to this approach is that in some
designs SCLK is already available and I and Q are
already synchronous to this signal.
The other method is to tie SCLK and VCLK
together and throttle the data with IQSTRB. For
X
any given code rate , where Y is even, IQSTRB
would be held high (clocking in I[2:0] and Q[2:0]
---
Y
on that cycle) for no more than out of every X
clocks. If Y is odd then IQSTRB woul d be held high
for no more than Y out of every 2X clocks and no
Y 1+
more than in every X clock cycles.
In the final approach it is not necessary to
-----------2
supply a separate clock (SCLK), however, the
customer must supply the circuitry to drive
IQSTRB appropriately.
---------------- -
2 CR×
Y
-- 2
PS4210-1099Page 3 of 30
Advanced Hardware Architectures, Inc.
F SCLK()
F VCLK()
2 CR×
------------------------
≤
The Viterbi decoder can be set up to cycle
through all convolutional code rates. In this case,
use convolutional code rate ≥ 7/8 in the equation:
2.2VITERBI DECODER
The Viterbi decoder takes the data from an I
and a Q channel and decode s these using a 3 bit sof t
decision. The V i terbi d ecoder is bas ed on a 1/2 rate
code, but also sup ports punctu red cod es with ra tes:
2/3, 3/4, 5/6, 6/7 and 7/8.
The generator polynomials are:
g1171(octal) and g2133(octal)==
The minimum trace back depth is 115.
The output of the Viterbi decoder is converted
to 8 bit bytes, sync bytes are det ected and after
which the data is run through the deinterleaver to
restore the ECC blocks.
The V iterbi deco der can be bypass ed by bit 2 of
the IOCNTRL and disabled by bit 4 of the VCON
register.
The latency of th e Viterbi block is measured in
two ways. First, there is a latency associated with
“synching” to the incoming signal. Assuming that
there is no valid sync byte patterns in the data the
worst case sync time is given by:
8 block length384+×()4# of puncture phases()512+××
This assumes that SCLK runs fast enough to
keep the data pi peline full. Once the V iterbi block is
synched up, the maximum latency from input to
output is 258 VCLK cycles.
2.2.1DEPUNCTURE
The Viterbi module can be programmed to
depuncture according to a specified code rate or
automatically find the code rate used in the channel.
Follo wing i s a lis t of punc ture p att erns a nd number
of phases that are cycled through in an attempt to
align the puncture phase.
RATEPATTERN: X:Y# OF PHASES
1/2
2/3
3/4
5/6
6/7
7/8
X
Y
X
Y
X
Y
X
Y
X
Y
X
Y
1000101
1111010
10
11
101
110
10101
11010
100101
111010
1
1
1
3
2
3
7
4
During the encoding process, X and Y are
mapped into I and Q b y taking the nond eleted terms
in order of X1, Y1, X2, Y2, etc. Deleted terms are
simply skipped. The decodi ng process is si mply the
reverse of this procedure. Erasures are inserted on
the pattern locations with zeroes. For example, the
rate 5/6 I and Q have values:
I = X1, Y2, Y4, X1, Y2, Y4, . . .
Q = Y1, X3, X5, Y1, X3, X5, . . .
The chip is capable of supporting a limited
number of depuncture codes not included in this
specification. The procedure for supporting these
codes are beyond the scope of this specification.
Please contact AHA Applications Engineering for
these codes.
The Viterbi core can be configured to self
synchronize to the appropriate depuncture pattern
phase and correct for phase ambiguity. If
VRSSIZE[6] is set, Viterbi sync does not cycle
pi
---- 2
through carrier phases. If the code rate is not
known, the core can also be con figured to cycle
through 1/2, 2/3, 3/4, 5/6, 6/7 and 7/8 code rates
looking for a valid pattern.
A Ramsey type II interlea ver is spe cified in J .L.
Ramsey, “Realization of Optimal Interleavers,”
IEEE Transaction on Information Theory, May
1970, pp. 338-345. A F orne y/Ramse y ty pe III int erleaver is specified in DVB DT/8622/DVB
specifica tion. The interleave dept h is programmable
up to 16 packets and the bl ock size is programmable
up to 255 bytes. However, the product of the interleave depth and block length cannot be larger than
2688 bytes. In a ddi ti on t o t hi s, t he following co ndi tions must be satisfied for various applications.
APP INTERLEAVECONSTRAINT
Forney/
DVB
Ramsey III
Ramsey II
Ramsey II
modified
Maximum processing latency =
8NJM[3:0] & NJL[7:0]()×VCLKS
Note that the “&” is a concatenation symbol.
BLKLEN2/JDEPTH[3:0]
must be an integer
BLKLEN a nd JD EPTH [3:0 ]
must be relati vely prime
Same as Ramsey II
WITHOUT
VITERBI
Page 4 of 30PS4210-1099
Advanced Hardware Architectures, Inc.
px() x8x4x3x21++++=
α1primitive element=
2.4RS DECODER
The RS block performs the ou ter decoding. The
Reed-Solomon decoder conforms to the DVB
specificati on. Th e RS bl ock can be programmed to
decode t=1, 1.5, 2, . . . 7.5, 8.
2t 1–
gx()x α0+()x α1+(). . . x α
The block length of the code is programmable
up to 255 bytes. Block length is 204 with 16 check
bytes and a correction power of 8 bytes per block
for the DVB specification. Maximum latency
through the RS Decoder Block is:
N 1–()81202RN2.67×+++×
()
+()=
2.5DERANDOMIZE/ENERGY
DISPERSAL
The derandomizer is specified in the DVB
specification. It is built as a 15 stage pseudorandom binary sequence generator with
initialization sequence specified by RSEED0 and
RSEED1 registers. The randomization occurs over
8 blocks of MGSBYTES2 (188 bytes for DVB
specification). Randomization does not occur over
Reed-Solomon parity bytes nor sync bytes.
However, the pseudo-random binary sequence
generator continue s to run during non-in verted sync
bytes. Maximum latency = 10 VCLKs.
2.6MODES OF OPERATION
The FEC decoder has been designed with a
modular approach so that each of the four major
functions: Viterbi deco ding, deinterle aving, RS
decoding and derandomization can be individually
enabled or disabled. Five operating modes are
supported by the device. These are:
1) Normal mode. All functions enabled. Inputs
clocked with SCLK.
2) Byte Input mode. All functions except Viterbi
enabled. Inputs clocked with VCLK. Tie
SCLK to VCLK. Use Byte [1:0], I[2:0] and
Q[2:0] as byte wide data path. Bytes must
arrive on packet boundaries.
3) Viterbi decode mode. Inputs clocked with
SCLK.
4) Reed-Solomon decode mode. Same input
constraints as byte input mode.
5) Deinterleave mode. Same input constraints as
byte input mode.
These modes may be operated with or without
the derandomizer enabled.
Table 1:Various Modes Supported by the AHA4210 Device
FUNCTIONAL BLOCK
MODE
VITERBIDEINTERLEAVERRS DECODERDERANDOMIZER
1) NormalEnabledEnabledEnabledEither
2) Byte InputDisabledEnabledEnabledEither
3) Viterbi DecodeEnabledDisabledDisabledEither
4) RS DecodeDisabledDisabledEnabledEither
5) DeinterleaverDisabledEnabledDisabledEither
Ta ble 2:Register Settings for Functional Block Bypass