Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
Xcell Journal: The authoritative journal for programmable ... - Xilinx
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
DIGITAL SIGNAL PROCESSING<br />
only requirement is <strong>for</strong> you to specify the<br />
parameters; the multiple instantiations of<br />
the basic footprints and the required connections<br />
between them are automatically<br />
generated, leaving you with a core design<br />
tailored to those exact specifications.<br />
Usage<br />
<strong>The</strong> <strong>Xilinx</strong> J.83 modulator implementation<br />
is available as a module that plugs into<br />
<strong>Xilinx</strong> System Generator <strong>for</strong> DSP, or as a<br />
netlist that may be directly referenced by<br />
another design. <strong>The</strong> design of the J.83 core<br />
in System Generator allows <strong>for</strong> generation<br />
with a simple push button solution.<br />
Through a GUI constructed in the familiar<br />
Simulink environment, the core provides<br />
you with a convenient means of supplying<br />
design specifics such as the granularity<br />
desired, the number of channels required,<br />
and clock rates, as shown in Figure 7.<br />
Figure 7 – J.83 Annex B<br />
generator GUI screenshot<br />
During parameterization and generation,<br />
the core is automatically configured to the<br />
specifications and deposited into the target<br />
directory. Along with the netlist, the core<br />
also includes behavioral and timing simulation<br />
script files (.do) <strong>for</strong> Mentor Graphics ®<br />
ModelSim and an ISE Project Navigator<br />
project file (.npl). From this point on, you<br />
can bring the core into the ISE Project<br />
Navigator environment <strong>for</strong> synthesis, place<br />
and route, and bitstream generation.<br />
Resource Sharing<br />
<strong>The</strong> <strong>Xilinx</strong> FPGA implementation of the<br />
J.83 modulator specification capitalizes<br />
on a particular architectural feature to<br />
construct efficient multi-channel implementations:<br />
the shift register logic 16<br />
(SRL16) primitive, found in Virtex-II,<br />
Virtex-II Pro, and Spartan-3 devices.<br />
You can think of SRL16 as a series concatenation<br />
of 16 flip-flops with a <strong>programmable</strong><br />
tap point. This unique aspect<br />
of <strong>Xilinx</strong> FPGAs is extremely powerful <strong>for</strong><br />
building very efficient time-division multiplexed<br />
(TDM) hardware that you can<br />
use, <strong>for</strong> example, to process multiple<br />
channels of data.<br />
Because they run the design at a faster<br />
rate, TDM processing structures save<br />
resources. This has been notably exploited<br />
during the design of an optimized multichannel<br />
group of modulators. For example,<br />
in the design of the optimized<br />
four-channel granularity of a group, all<br />
channels share a common control structure<br />
in the MPEG framer, RS encoder,<br />
interleaver, randomizer, and TCM. As the<br />
interleaver controls are shared, the data<br />
path into and out of the interleaver effectively<br />
becomes wider.<br />
Number<br />
of Channels<br />
Resource Utilization<br />
Using the resource sharing techniques<br />
we’ve described thus far, you can realize significant<br />
savings in the implementation of<br />
modulators constructed out of optimized<br />
four-channel granularity designs compared<br />
to the equivalent constructed out of singlechannel<br />
granularity designs.<br />
Table 1 and Table 2 show a comparison<br />
of the resources used in the design of various<br />
sizes of J.83 modulators using single- and<br />
four-channel granularity footprints. <strong>The</strong>y<br />
also show the resources used to implement 4,<br />
8, and 12 channels of J.83 Annex B and J.83<br />
Annex A/C solutions on a Spartan-3 device.<br />
Although Table 1 details the resources<br />
on an implementation that does not contain<br />
the optional root-raised cosine filter,<br />
the details in Table 2 are specific to an<br />
implementation that contains the option.<br />
Using the 12-channel case as an example,<br />
the scales are favorably tipped towards a<br />
four-channel granularity implementation<br />
of the J.83 Annex B and J.83 Annex A/C,<br />
as the savings achieved are significant.<br />
J.83 Annex B J.83 Annex A/C<br />
Slices/BRAM/External Memory Slices/BRAM<br />
One Channel Four Channel One Channel Four Channel<br />
Granularity Granularity Granularity Granularity<br />
4 3372/8/1 1866/2/1 1574/4 1049/3<br />
8 6764/16/2 3644/4/1 3130/8 2088/6<br />
12 10049/24/2 5405/6/1 4683/12 3304/9<br />
Number<br />
of Channels<br />
Table 1 – Resource utilization comparison between one- and four-channel granularity<br />
J.83 Annex A/B/C designs without RRC (Spartan-3 FPGAs)<br />
J.83 Annex B J.83 Annex A/C<br />
Slices/BRAM/External Memory Slices/BRAM<br />
One Channel Four Channel One Channel Four Channel<br />
Granularity Granularity Granularity Granularity<br />
4 8014/20/1 3748/7/1 4829/8 2444/4<br />
8 16024/40/2 7402/14/1 9661/16 4877/8<br />
12 23924/60/2 11057/21/1 14449/24 7483/12<br />
Table 2 – Resource utilization comparison between one- and four-channel granularity<br />
J.83 annex A/B/C designs with RRC (Spartan-3 FPGAs)<br />
54 <strong>Xcell</strong> <strong>Journal</strong> Winter 2004