|
The increased capability and capacity of
video, audio, data, and interactive services
through cable distribution has spurred
much interest. Applications such as video-on-demand and cable telephony are natural
extensions of these services.
The ITU-T (International Telecommunications
Union – Telecommunication
Standardization Sector) has established the
J.83 specification to standardize the physical
layer transmission of audio, video, and data
services over cable networks. These cable
transmission networks as they apply to
Europe, North America, and Japan are
detailed in Annex A, B, and C of this standard,
respectively.
Xilinx addresses this interest with the
J.83 Cable Modulator IP, a flexible, scalable,
and cost-effective solution. In this
article, we’ll discuss the use of Xilinx J.83
cores in the downstream modulator at the
head-end (Figure 1), while focusing on
the physical layer implementation.
The Xilinx J.83 IP solution provides
flexibility to parameterize the modulator;
scalability to allow you to select any number
of channels on a single FPGA; and ease
of use in the System Generator for DSP
visual programming environment as the
design and delivery mechanism.
System Generator for DSP
The Xilinx System Generator tool suite
was employed to implement a majority of
the J.83 modulator design. System
Generator is a visual dataflow design
environment based on The MathWorks
Simulink® visual modeling tool set. This
programming interface allows you to
work at a suitable level of abstraction
from the target hardware platform and
use the same model – not only for simulation
and verification but also for FPGA
implementation.
System Generator blocks are bit- and
cycle-true behavioral models of FPGA intellectual property components, or
library elements. A library-based approach
results in design cycle compression in
addition to generating area-efficient highperformance
circuits. Together with
model features such as data-type propagation
and the extensive virtual instruments
that are part of the Simulink libraries, the
environment facilitates rapid design space
exploration, together with powerful
mechanisms for model debugging.
MATLAB® scripts from The
MathWorks programmatically generate
custom VHDL and project files based on
user-defined parameters.
J.83 in System Generator for DSP
The J.83 specification defines the forward
error correction (FEC) and baseband modulation
with pulse-shaping characteristics. The
J.83 Annex B FEC section (Figure 2) uses a
concatenated coding technique with four
processing layers, comprising an RS encoder,
convolutional interleaver, randomizer followed
by a frame sync insertion block, and
trellis-coded modulation (TCM). The J.83
Annex A and Annex C (Figure 3) have identical
FEC processing stages, comprising an
RS encoder, convolutional interleaver, and a
byte-to-symbol differential encoder, followed
by a symbol mapper.
The System Generator Xilinx library, or
block set, is abundantly populated with IP
that enables rapid design and simulation of
such a system. The tokens required to construct
the J.83 FEC section – as well as the
filter blocks required to construct pulseshaping
filters – are available within the
library browser. The underlying circuit of
each of these tokens is optimized in area and
speed to suit the Xilinx family of devices.
Each of these elements is conveniently
customizable to be compatible with the
precise specification of the J.83 standard. It
is then a simple matter of using these customized
library elements to build out the
circuit required.
For example, you can obtain the
(204,188) RS encoder required for J.83
Annex A/C by using the Xilinx Reed
Solomon encoder block, with the Code
Specification parameter set to DVB.
Similarly, the Xilinx interleaver deinterleaver
block is directly used in the design,
with the mode set to Interleaver and the
Number of Branches and Length of
Branches set to 12 and 17, respectively.
This results in an exact match to the
requirements of the interleaver in the J.83
A/C specification. Using the visual graphic
means of design entry in System Generator,
these blocks are easily connected to each
other and to the control circuitry that is
part of the design.
IP Simulation in Simulink
It takes a lot of time to simulate and test
the functionality of a complex system. You
can use the same J.83 circuit built in
System Generator for simulation and verification,
as well as the FPGA implementation.
Within the same environment, using
Simulink for simulation, the design is stimulated
with MPEG transport packets and
the appropriate QAM, reset, synchronization,
and other control inputs.
As shown in Figure 4, this stimulus is
shown in the block labeled “Stimuli.” The
source, inter-packet gap, and burst nature
of the MPEG transport packet may be
chosen at random at the top level, allowing
a test of the full suite of possibilities.
Figure 4 also shows a discrete time scatter
plot of the output of the baseband section
of the modulator.
Simulation of this complex system in an
HDL simulator for a meaningful number of
clock cycles (such that several frames of data
may be processed) imposes a huge penalty in
the time taken to complete a simulation.
This makes it an impractical choice, but
sometimes it is the only option when the
design source is in an HDL format.
This simulation time is drastically
reduced when simulating the model in
Simulink. What might take days to simulate
in a gate-level simulator could be
accomplished in a matter of hours. This
savings in time is highly valuable – not only
do you benefit from superior simulation
speed in Simulink but you
also reap the benefits of a shortened
design cycle, allowing for
overall rapid IP delivery.
Single and Multi-Channel Designs
The modulator is constructed out
of two primary footprints or granularity:
a single-channel implementation
and a four-channel
implementation. A block diagram
of the four-channel granularity
Annex B and A/C are shown in
Figure 5 and Figure 6, respectively.
Each instance of the single-channel
footprint provides for
exactly one independent channel;
the four-channel footprint, however,
is optimized to efficiently support
four channels at a time, using resource-sharing
techniques. You select the granularity,
and with that selection, make a
trade-off between resource utilization and
individual channel control.
The trade-off is essentially in the area
(resource) utilization; the optimized four-channel
group solution results in a very
efficient and compact design requiring
fewer FPGA resources. However, it imposes
the restriction that the four channels
must share the same controls. The single-channel
solution imposes no such restriction;
the trade-off here is the linearly
increasing FPGA resources used, which is
directly proportional to the number of
channels required.
Multi-channel modulators are automatically
constructed through the use of multiple
copies (also referred to as groups) of
the single- or four-channel implementation.
For example, a four-channel modulator
may be constructed with four copies of
single-channel granularity or a single copy
of the optimized 4-channel granularity
design. Similarly, a 12-channel modulator
may comprise 12 copies of the single-channel
granularity design or three copies of the
optimized 4-channel design.
The ease of use is evident in that the
only requirement is for you to specify the
parameters; the multiple instantiations of
the basic footprints and the required connections
between them are automatically
generated, leaving you with a core design
tailored to those exact specifications.
Usage
The Xilinx J.83 modulator implementation
is available as a module that plugs into
Xilinx System Generator for DSP, or as a
netlist that may be directly referenced by
another design. The design of the J.83 core
in System Generator allows for generation
with a simple push button solution.
Through a GUI constructed in the familiar
Simulink environment, the core provides
you with a convenient means of supplying
design specifics such as the granularity
desired, the number of channels required,
and clock rates, as shown in Figure 7.
During parameterization and generation,
the core is automatically configured to the
specifications and deposited into the target
directory. Along with the netlist, the core
also includes behavioral and timing simulation
script files (.do) for Mentor Graphics®
ModelSim™ and an ISE Project Navigator
project file (.npl). From this point on, you
can bring the core into the ISE Project
Navigator environment for synthesis, place
and route, and bitstream generation.
Resource Sharing
The Xilinx FPGA implementation of the
J.83 modulator specification capitalizes
on a particular architectural feature to
construct efficient multi-channel implementations:
the shift register logic 16
(SRL16) primitive, found in Virtex-II™,
Virtex-II Pro™, and Spartan-3™ devices.
You can think of SRL16 as a series concatenation
of 16 flip-flops with a programmable
tap point. This unique aspect
of Xilinx FPGAs is extremely powerful for
building very efficient time-division multiplexed
(TDM) hardware that you can
use, for example, to process multiple
channels of data.
Because they run the design at a faster
rate, TDM processing structures save
resources. This has been notably exploited
during the design of an optimized multichannel
group of modulators. For example,
in the design of the optimized
four-channel granularity of a group, all
channels share a common control structure
in the MPEG framer, RS encoder,
interleaver, randomizer, and TCM. As the
interleaver controls are shared, the data
path into and out of the interleaver effectively
becomes wider.
Resource Utilization
Using the resource sharing techniques
we’ve described thus far, you can realize significant
savings in the implementation of
modulators constructed out of optimized
four-channel granularity designs compared
to the equivalent constructed out of singlechannel
granularity designs.
Table 1 and Table 2 show a comparison
of the resources used in the design of various
sizes of J.83 modulators using single- and
four-channel granularity footprints. They
also show the resources used to implement 4,
8, and 12 channels of J.83 Annex B and J.83
Annex A/C solutions on a Spartan-3 device.
Although Table 1 details the resources
on an implementation that does not contain
the optional root-raised cosine filter,
the details in Table 2 are specific to an
implementation that contains the option.
Using the 12-channel case as an example,
the scales are favorably tipped towards a
four-channel granularity implementation
of the J.83 Annex B and J.83 Annex A/C,
as the savings achieved are significant.
Table 1 – Resource utilization comparison between one- and four-channel granularity
J.83 Annex A/B/C designs without RRC (Spartan-3 FPGAs)
|
Number of Channels | J.83 Annex B |
J.83 Annex A/C |
| Slices/BRAM/External Memory | Slices/BRAM |
| One Channel Granularity | One Channel Granularity | One Channel Granularity | One Channel Granularity |
| 4 | 3372/8/1 | 1866/2/1 | 1574/4 | 1049/3 |
| 8 | 6764/16/2 | 3644/4/1 | 3130/8 | 2088/6 |
| 12 | 10049/24/2 | 5405/6/1 | 4683/12 | 3304/9 |
Table 2 – Resource utilization comparison between one- and four-channel granularity
J.83 annex A/B/C designs with RRC (Spartan-3 FPGAs)
|
Number of Channels | J.83 Annex B |
J.83 Annex A/C |
| Slices/BRAM/External Memory | Slices/BRAM |
| One Channel Granularity | One Channel Granularity | One Channel Granularity | One Channel Granularity |
| 4 | 8014/20/1 | 3748/7/1 | 4829/8 | 2444/4 |
| 8 | 16024/40/2 | 7402/14/1 | 9661/16 | 4877/8 |
| 12 | 23924/60/2 | 11057/21/1 | 14449/24 | 7483/12 |
Design Example Usage
The J.83 modulator design provides control
configuration that you can control using a
PowerPC™ or the MicroBlaze™ processor
in Virtex-II Pro FPGAs. The processor can
not only control the (J.83 Annex B) configurations
such as QAM, interleaver control
word, and interleaver level, but also the reset
sequence of the design. It may be shared to
control other user logic such as the MAC
layer implementation for cable communication
at the head end and baseband-to-IF digital
upconversion. The functional block
diagram in Figure 8 depicts how you can
leverage the capabilities of the Virtex-II Pro
architecture for the J.83 design.
Conclusion
Xilinx System Generator enables the rapid
development and simulation of high-performance
systems on Xilinx FPGAs.
SRL16s allow you to design a 16-channel
granularity modulator without using 16
times the resources of a 1-channel granularity
modulator or four times the resources of
a 4-channel granularity modulator.
You can build various standard-compliant
modulators for video broadcast for
transmission over terrestrial links (DVB-T)
via satellite (DVB-S2) or to handheld
devices (DVB-H) quickly and efficiently
using System Generator for DSP and various
library blocks available from Xilinx.
SRL16s in Xilinx FPGAs allow efficient
time-multiplexed dataflow structures,
offering significant resource savings.
For more information about the Xilinx
J.83 Modulator IP, visit www.xilinx.com/ipcenter/j83_mod/.
Printable PDF version of this article with graphics. (10/15/04) 592 KB |